【问题标题】:How to copy file from gitlab runner into docker image through dockerfile如何通过dockerfile将文件从gitlab runner复制到docker镜像中
【发布时间】:2019-08-20 10:42:58
【问题描述】:

我需要能够通过 gitlab ci/cd 将私有 gitlab 服务器内的 ssl 文件复制到 docker 映像中。

下面是我的 gitlab runner 的配置。我已经映射了 /root/server-ssl 目录的卷,因此可以通过 ci/cd 读取文件

[runners.docker]
    tls_verify = false
    image = "docker.myserver.com/gitlab-base-image"
    privileged = true
    disable_entrypoint_overwrite = false
    oom_kill_disable = false
    disable_cache = true
    volumes = ["/var/run/docker.sock:/var/run/docker.sock",
 "/root/.docker/config.json:/root/.docker/config.json",
 "/cache",
 "/root/server-ssl:/root/server-ssl"]
    extra_hosts = ["gitlab.myserver.com:<some_ip>"]
    shm_size = 0

以下是我的 dockerfile 配置:

# 1 - Build environment
FROM node:10.16 as react-build
WORKDIR /usr/src/app
COPY package.json yarn.lock ./
RUN yarn
COPY . ./
RUN yarn build

# 2 - Production environment
FROM nginx:alpine
RUN mkdir -p /root/server-ssl
COPY /root/server-ssl/ssl.chained.crt /root/server-ssl/
COPY /root/server-ssl/ssl.key /root/server-ssl/
COPY nginx.staging.conf /etc/nginx/conf.d/default.conf
EXPOSE 80 443
CMD ["nginx", "-g", "daemon off;"]

但是我总是得到 gitlab ci/cd runner 的以下错误:

Step 5/18 : COPY /root/server-ssl/ssl.chained.crt /root/server-ssl/
COPY failed: stat /var/lib/docker/tmp/docker-builder528505413/root/server-ssl/ssl.chained.crt: no such file or directory

谁能帮我复制这些文件?

【问题讨论】:

    标签: docker dockerfile gitlab-ci devops gitlab-ci-runner


    【解决方案1】:

    文件不在 docker build 上下文中。可以想出几种方法将它们带入 docker 上下文中

    • 在Dockerfile所在的文件夹和文件所在的目录下创建符号链接

    • 在运行 docker build 命令之前将文件物理复制到 Dockerfile 所在的文件夹

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-10-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-08-09
      • 2021-03-04
      • 1970-01-01
      • 2019-06-27
      相关资源
      最近更新 更多