如何通过 dockerfile 将文件从 gitlab runner 复制到 docker 图像
How to copy file from gitlab runner into docker image through dockerfile
我需要能够通过 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
下面是我的docker文件配置:
# 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 构建上下文中。可以想出几种方法将它们带入 docker 上下文
在Dockerfile所在文件夹与文件所在目录创建符号链接
物理复制文件到Dockerfile所在文件夹之前运行docker构建命令
我需要能够通过 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
下面是我的docker文件配置:
# 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 构建上下文中。可以想出几种方法将它们带入 docker 上下文
在Dockerfile所在文件夹与文件所在目录创建符号链接
物理复制文件到Dockerfile所在文件夹之前运行docker构建命令