我试图通过docker-compose设置一个nginx容器。我有一个我想要使用的自定义配置。我在与容器共享的卷上使配置可用。
nginx:
volumes:
- shared:/shared
image: nginx
ports:
- "8080:80"
- "443:443"
command: /bin/bash -c ./shared/nginx_test.conf
以下是配置文件:
daemon off;
http {
server {
location / {
root /shared/data/www;
}
location /images/ {
root /data;
}
}
}
当我做一个docker-compose时,我在配置中的每一行都会收到错误,说明找不到该命令。例如./shared/nginx_test.conf: line 1: daemon: command not found
,./shared/nginx_test.conf: line 3: http: command not found
等等。
我尝试按照指南here进行操作。关于为什么nginx找不到命令的任何想法?
答案 0 :(得分:3)
您正在尝试使用bash -c
运行脚本文件,您看到了吗?那不是你想要的。 (错误消息表示不理解./shared/nginx_test.conf
的内容,Bash将其解释为终端命令。)
您可能希望运行类似nginx -g daemon off
的命令,并将配置文件作为参数附加:
nginx:
# ...
command: nginx -c ./shared/nginx_test.conf -g "daemon off;"
参考文献: