gpt4 book ai didi

docker - 如何将变量从 .gitlab.ci.yml 传递到 Dockerfile

转载 作者:行者123 更新时间:2023-12-02 19:14:32 65 4
gpt4 key购买 nike

如何从 .gitlab-ci.yml 传递一个变量值至 Dockerfile ?
例如
.gitlab-ci.yml 包含:

variables:
var1: ex_variable_1
var2: ex_variable_1

stages:
- build

build:
stage: build
script:
- sudo docker build . -t ${CI_PROJECT_PATH_SLUG}
--build-arg var1
--build-arg var2
- sudo docker run -dit --name ${CI_PROJECT_PATH_SLUG} --cap-add=NET_ADMIN ${CI_PROJECT_PATH_SLUG}:latest
坞站文件 包含:
FROM centos:6.9

ENV var1 ${var1}
ENV var2 ${var2}

RUN echo "Print var1 $var1"
RUN echo "Print var2 $var2
所以我想要的是通过 var1 var2 来自 .gitlab-ci.ymlDockerfile .

最佳答案

.gitlab-ci.yml 传递环境变量到图像或容器:

  • 在构建时(如果 Dockerfile 使用该变量):
  • 使用 docker build --build-arg option :docker build --build-arg var1="$var1"
  • 像这样改变你的 Dockerfile:
      FROM centos:6.9
    ARG var1
    ARG var2

    RUN echo "Print var1 $var1"
    RUN echo "Print var2 $var2

    # The following is optional − only useful if you want to
    # keep the environment variables at runtime (docker run)
    ENV var1=${var1}
    ENV var2=${var2}
    注:the ARG instruction也可以采用默认值:
      ARG var1="default value if var1 was not passed using --build-arg"

  • 在运行时(如果该变量被容器使用,即被 ENTRYPOINT / CMD 指定的程序使用):
  • 使用 docker run -e CLI option :docker run -e var1="$var1" .

  • 关于docker - 如何将变量从 .gitlab.ci.yml 传递到 Dockerfile,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64248391/

    65 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com