docker-compose.yml内容
version: "3"
services:
nginx:
container_name: nginx
image: nginx
restart: always
volumes:
- ${LOCAL_PREFIX}/nginx.conf:${DOCKER_PREFIX}/nginx.conf
- ${LOCAL_PREFIX}/www/:${DOCKER_PREFIX}/www/
- ${LOCAL_PREFIX}/static/:${DOCKER_PREFIX}/static/
- ${LOCAL_PREFIX}/conf.d/:${DOCKER_PREFIX}/conf.d/
- ${LOCAL_PREFIX}/log/:${DOCKER_PREFIX}/log/
ports:
- "80:80"
- "8080:8080"
environment:
- LOCAL_PREFIX=/root/nginx
- DOCKER_PREFIX=/etc/nginx
docker-compose config输出
WARNING: The LOCAL_PREFIX variable is not set. Defaulting to a blank string.
WARNING: The DOCKER_PREFIX variable is not set. Defaulting to a blank string.
services:
nginx:
container_name: nginx
environment:
DOCKER_PREFIX: /etc/nginx
LOCAL_PREFIX: /root/nginx
image: nginx
ports:
- published: 80
target: 80
- published: 8080
target: 8080
restart: always
volumes:
- /nginx.conf:/nginx.conf:rw
- /www:/www:rw
- /static:/static:rw
- /conf.d:/conf.d:rw
- /log:/log:rw
version: '3'
两个警告,没太搜到和我这个相关的解决方法
问题是:环境变量没生效,取环境变量时用的是默认值 /
参考GPT和自己的思路:
根据你提供的信息,很明显是环境变量没有被正确设置。根据输出结果,可以看到有两个警告提示 LOCAL_PREFIX 和 DOCKER_PREFIX 变量没有被设置,因此采用了默认值。你需要确认环境变量是否正确设置。
在你的 docker-compose.yml 文件中,你定义了 LOCAL_PREFIX 和 DOCKER_PREFIX 两个环境变量,但是在输出结果中,没有看到这两个环境变量的值被正确设置。考虑到它们是被设置在 nginx 服务中的,你需要检查是否在正确的服务内配置了这些环境变量。
你可以采取以下步骤检查并排除问题:
如果以上步骤均无法帮助你解决问题,你可以考虑查看类似环境变量的配置示例,并参考其配置。另外,你也可以借助其他工具或技术,例如 Docker Compose 的调试命令或调试工具,来辅助你的调试。
你设置的环境变量是全局的么?重新启动系统看看呢