【问题标题】:Docker-compose setup script to set environment variables from within containerDocker-compose 设置脚本从容器内设置环境变量
【发布时间】:2017-12-13 05:15:19
【问题描述】:

我有一个 docker-compose 文件,它将启动 6 个不同的微服务。我们的 docker-repository 的设置方式阻止了“最新”标签的使用,所以我正在寻找一种在 docker-compose 拉取微服务图像之前运行脚本的方法,这将在 docker-compose 的范围内设置环境变量.yml 文件。

version: '3'
services:
  #Service 1
  svc1:
    image: some-snapshot.docker.privaterepo.com/some-service:${LATEST_SVC_TAG}
    container_name: service1
    ports:
      - "8080:8080"
  #Service 2
  svc2:
    image: some-snapshot.docker.privaterepo.com/some-service2:${LATEST_SVC2_TAG}
    container_name: service2
    ports:
      - "8081:8081"

【问题讨论】:

    标签: docker docker-compose


    【解决方案1】:

    我不确定您是否真的需要“脚本”。你可以运行类似的东西:

    LATEST_SVC_TAG=1.1 LATEST_SVC2_TAG=2.5 docker-compose up -d
    

    或者,您可以将它们放入本地的 .env 文件中:

    cat > .env <<EOF
    LATEST_SVC_TAG=1.1
    LATEST_SVC2_TAG=2.3
    EOF
    
    docker-compose up -d
    

    【讨论】:

    • 对不起,我不清楚,我需要能够不对版本号进行硬编码,并让它在 CI 服务器上运行。即在新推送到 master 时,拉下其他服务的所有最新图像并针对它们运行一些测试。
    • 如果您需要在 CI 服务器上运行它,只需为您的 CI 作业设置版本参数并将它们公开到 CI 环境中。或者您是否正在寻找一个能够列出图像的所有可用版本、检查标签并找出哪个是最新版本并使用那个的脚本
    猜你喜欢
    • 1970-01-01
    • 2022-11-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多