Tri*_*nci 8 variables gitlab docker gitlab-ci dockerfile
如何将一个变量值从.gitlab-ci.yml
to传递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
Run Code Online (Sandbox Code Playgroud)
文档文件包含:
FROM centos:6.9
ENV var1 ${var1}
ENV var2 ${var2}
RUN echo "Print var1 $var1"
RUN echo "Print var2 $var2
Run Code Online (Sandbox Code Playgroud)
所以我想要的是将var1和var2从.gitlab-ci.yml
to传递Dockerfile
。
Eri*_*kMD 11
要将环境变量传递.gitlab-ci.yml
到图像或容器:
在构建时(如果 Dockerfile 使用该变量):
\n使用docker build --build-arg
选项:docker build --build-arg var1="$var1"
并像这样更改你的 Dockerfile:
\n FROM centos:6.9\n ARG var1\n ARG var2\n\n RUN echo "Print var1 $var1"\n RUN echo "Print var2 $var2\n\n # The following is optional \xe2\x88\x92 only useful if you want to\n # keep the environment variables at runtime (docker run)\n ENV var1=${var1}\n ENV var2=${var2}\n
Run Code Online (Sandbox Code Playgroud)\n注:该ARG
指令也可以取默认值:
ARG var1="default value if var1 was not passed using --build-arg"\n
Run Code Online (Sandbox Code Playgroud)\n在运行时(如果该变量由容器使用,即由ENTRYPOINT / CMD
指定的程序使用):
docker run -e
CLI 选项:docker run -e var1="$var1"
. 归档时间: |
|
查看次数: |
11146 次 |
最近记录: |