小编bel*_*ckn的帖子

从 docker-compose 替换 NGINX 配置中的环境变量

我正在尝试在通过 docker-compose 配置的 docker 容器中启动 NGINX 服务器。然而,问题是我想替换 http 部分内的环境变量,特别是在“上游”块内。

让它工作会很棒,因为我还有其他几个容器都是通过环境变量配置的,并且我有大约 5 个环境需要在任何给定时间运行。我曾尝试使用“envsubst”(如官方 NGINX 文档所建议的)、perl_set 和 set_by_lua,但是它们似乎都不起作用。

下面是 NGINX 配置,因为它是在我最近的试用之后

user  nginx;
worker_processes  1;
env NGINXPROXY;

load_module modules/ngx_http_perl_module.so;

error_log  /var/log/nginx/error.log warn;
pid        /var/run/nginx.pid;


events {
    worker_connections  1024;
}

http {
    perl_set $nginxproxy 'sub { return $ENV{"NGINXPROXY"}; }';

    upstream api-upstream {
        server ${nginxproxy};
    }

    include       /etc/nginx/mime.types;
    default_type  application/octet-stream;

    log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '
                      '$status $body_bytes_sent "$http_referer" '
                      '"$http_user_agent" "$http_x_forwarded_for"';

    access_log  /var/log/nginx/access.log  main;

    sendfile        off;
    #tcp_nopush     on;

    keepalive_timeout  65;

    #gzip …
Run Code Online (Sandbox Code Playgroud)

nginx environment-variables docker docker-compose

11
推荐指数
4
解决办法
2万
查看次数

错误:无法在 http+docker://localhost 连接到 Docker 守护进程 - 它正在运行吗?适用于 Linux 的 Windows 子系统

我已经使用 Docker 大约两个月了,在 Windows/WSL 上工作。前几天我需要重新启动我的机器,一旦它重新启动,我尝试再次设置我的 docker 容器,但遇到了我以前遇到的问题。我上次使用的所有解决方案都不起作用,谷歌上也没有。

我已经尝试了很多事情,互联网上的每一种可能性我都可以解决,而且我已经坚持了至少 8 个小时,希望不再浪费时间。我将列出一些我已经尝试过但不起作用的:

  1. sudo usermod -aG docker $USER
  2. sudo ln -s /mnt/c/Program\ Files/Docker/Docker/resources/bin/docker.exe /usr/bin/docker
  3. 使用须藤
  4. 重新启动泊坞窗
  5. 重新安装 docker 桌面(Windows)

我们的 make 文件中的命令运行:

docker-compose up -d
Run Code Online (Sandbox Code Playgroud)

我们使用 MakeFile 在 docker 命令方面让我们的生活更轻松,所以通常我会运行这个命令,它应该只是启动容器并正常工作。但是我得到了这个:

ERROR: Couldn't connect to Docker daemon at http+docker://localhost - is it running?

If it's at a non-standard location, specify the URL with the DOCKER_HOST environment variable.
Makefile:13: recipe for target 'up' failed
make: *** [up] Error 1
Run Code Online (Sandbox Code Playgroud)

然后我被推荐尝试sudo dockerd,然后我得到这个错误,这解释了问题的一半,但我找不到关于如何解决我的问题的明确答案:

failed to …
Run Code Online (Sandbox Code Playgroud)

docker windows-subsystem-for-linux

7
推荐指数
2
解决办法
9184
查看次数

使用 Dockerfile 将具有绝对路径的文件复制到 Docker 容器

我有一个 Dockerfile 位于路径: /Users/userx/Library/Documents/dockerProject

我想将文件复制到容器中: /Users/userx/Library/temp/otherfiles/myFile.txt

我想从 Dockerfile 中执行此操作。我尝试使用COPY,但它只适用于项目的上下文。

有些人暗示我可以使用链接 bash 命令的命令来做到这一点,RUN但是当我使用时:

RUN 'cd /Users/userx/Library/temp/otherfiles/;pwd'

我收到错误returned a non-zero code

如何使用 Dockerfile 从系统绝对路径复制文件。

谢谢

docker

1
推荐指数
1
解决办法
1万
查看次数