docker Swarm 中如何在docker-compose使用变量

纵然是瞬间 提交于 2019-11-29 08:28:40

先看一个docker-comose的yml文件

version: "3.2"
services:
  docker-test:
    hostname: docker-test
    image: '${DOCKER_REGISTRY_URL}/dockerteam/docker-test:1.0'
    ports:
      - "9118"
    env_file: .env
    deploy:
      replicas: 1
      restart_policy:
        condition: on-failure
      placement:
        constraints: [node.role== worker]
      resources:
        limits:
#          cpus: '1'
          memory: 1GB
        reservations:
#          cpus: '0.2'
          memory: 512M

如上文件中,env_file在docker-comose 命令里是支持的,只需要提供对应的.env文件,在.env文件中设置${DOCKER_REGISTRY_URL}变量即可。

但是如果线上在docker swarm 集群环境中docker-comose使用env_file是无效的,那这时候怎么办?这时候不能再去使用.env文件了,我尝试了一下把变量加入到宿主机的环境变量里:

 export DOCKER_REGISTRY_URL=docker.sifu.cn:12135

再次运行docker stack命令,服务部署成功。

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!