1. 程式人生 > >docker Swarm 中如何在docker-compose使用變數

docker Swarm 中如何在docker-compose使用變數

先看一個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命令,