我正在尝试在通过 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) 我已经使用 Docker 大约两个月了,在 Windows/WSL 上工作。前几天我需要重新启动我的机器,一旦它重新启动,我尝试再次设置我的 docker 容器,但遇到了我以前遇到的问题。我上次使用的所有解决方案都不起作用,谷歌上也没有。
我已经尝试了很多事情,互联网上的每一种可能性我都可以解决,而且我已经坚持了至少 8 个小时,希望不再浪费时间。我将列出一些我已经尝试过但不起作用的:
sudo usermod -aG docker $USER
sudo ln -s /mnt/c/Program\ Files/Docker/Docker/resources/bin/docker.exe /usr/bin/docker
我们的 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) 我有一个 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 从系统绝对路径复制文件。
谢谢