我正在使用docker-compose运行traefik容器。此容器的域应由环境文件设置,但是每次启动此服务时,它都会显示:
警告:未设置DOMAIN变量。默认为空字符串
我的撰写文件设置:
version: '3.5'
networks:
frontend:
name: frontend
backend:
name: backend
services:
Traefik:
image: traefik:latest
command: --api --docker --acme.email="test@test.de"
restart: always
container_name: Traefik
networks:
- backend
- frontend
env_file: ./env.env
volumes:
- /var/run/docker.sock:/var/run/docker.sock
- ./traefik/traefik.toml:/traefik.toml
- ./traefik/acme.json:/acme.json
ports:
- "80:80"
- "443:443"
labels:
- "traefik.docker.network=frontend"
- "traefik.enable=true"
- "traefik.frontend.rule=Host:traefik.${DOMAIN}"
- "traefik.port=8080"
- "traefik.protocol=http"
我的env.env文件设置:
DOMAIN=fiture.de
感谢您的帮助!
答案 0 :(得分:2)
Bus New_Price Rank_Order Rank_duplicates
0 abc1 335 1 2
1 abc2 338 2 1
2 abc3 141 3 3
3 abc4 335 4 2
未加载文件 env_file: ./env.env
来分析组成文件,而是已加载文件env.env
以在正在运行的容器内添加环境变量。在docker处理上述指令时,yaml文件已经加载,变量已扩展。
如果您使用docker-compose
在单个节点上部署容器,则可以重命名文件.env
,然后docker-compose将在解析组成文件之前从该文件加载变量。
如果使用docker stack deploy
进行部署,则需要将环境变量自己导入到Shell中。在bash中执行此操作的示例如下:
set -a && . ./env.env && set +a && docker stack deploy ...