docker-compose环境与Docker -e不同

时间:2018-12-20 09:27:54

标签: docker docker-compose

我正在使用docker-compose文件,并想要向其中添加一些与Redis本身无关的ENV变量。

redis-master:   
    environment:
      - REDIS_REPLICATION_MODE=master
      - ALLOW_EMPTY_PASSWORD=yes
      # Domains
      - VIRTUAL_HOST=redis-master.xxx.com
      - VIRTUAL_PORT=6379
    ports:
      - '6379:6379'
    expose:
      - '6379'
    image: bitnami/redis:latest

但是问题是这两个ENV没有添加到Docker中: VIRTUAL_HOST和VIRTUAL_PORT

如果我喜欢的话

docker run -d -p 6379:6379 --name redis-master -e VIRTUAL_PORT=6379 --expose 6379 -e VIRTUAL_HOST=redis-master.xxx.com bitnami/redis:latest

然后我可以看到这两个ENV。为什么?有什么区别?

1 个答案:

答案 0 :(得分:0)

我使用了您的Compose文件,可以看到ENV:

➜  ~ docker-compose up -d
prometherion_redis-master_1 is up-to-date
➜  ~ docker-compose exec redis-master sh
$ env | grep -i virtual
VIRTUAL_HOST=redis-master.xxx.com
VIRTUAL_PORT=6379

如果要确保已注入ENV:docker inspect <container_id> | jq '.[0].Config.Env'(您需要安装jq