如何将一个变量值从.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.yml
传递到Dockerfile
。
答案 0 :(得分:1)
要将环境变量从.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"
。