rob*_*liv 13 gitlab docker gitlab-ci dockerfile devops
GitLab CI 允许向项目添加自定义变量。
它允许使用类型的秘密变量,file其中我指定了一个作为变量名称的密钥和作为文件内容的值(例如证书的内容)
然后在管道执行期间,内容将保存为临时文件,调用变量名称将返回创建文件的路径。
最终,我需要将此文件复制到构建项目时创建的 Docker 容器中。(docker build ...在yml中)
当如果变量作品测试,我想echo $VARIABLE在.gitlab-ci.yml和它的作品,临时文件的路径返回。但是在RUN echo $VARIABLEin 中执行时Dockerfile,它是空的。因此我也不能使用ADD $VARIABLE /tmp/这是我的目标。
有没有办法解决这个问题并使这个文件可供Dockerfile? 我是 Docker 和 GitLab 的新手,不知道还能去哪里找。
rob*_*liv 10
必须使用 .yml 文件docker build参数--build-arg VARIABLE并在 Dockerfile 中使用,ARG VARIABLE因此 Dockerfile 知道它需要使用环境中的变量。
不幸的是,这是不可能的,因为 CI/CD 变量中的文件在构建时被复制到不在 docker 构建上下文中的 tmp 目录 ($CI_PROJECT_DIR.tmp)。然而,ADD由于需要的文件存在于构建上下文记录
解决方法可能是在 docker ${CI_PROJECT_DIR}build 命令之前复制当前目录中文件的内容(假设 Dockerfile 在 中):
cat $VARIABLE > ${CI_PROJECT_DIR}\mynewfile
Run Code Online (Sandbox Code Playgroud)
并引用 Dockerfile 中的文件:
ADD mynewfile /tmp/
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
8610 次 |
| 最近记录: |