首页 > 解决方案 > 如何在 gitlab.com 上使用 .gitlab-ci.yml 从 Dockerfile 构建并将工件从 Dockerfile 复制到 GitLab 公共目录?

问题描述

虽然我可以成功地写一个传递.gitlab-ci.ymltogitlab.comartifactpublic/

image: ruby:2.3

pages:
  script:
  - bundle install
  - bundle exec jekyll build -d public
  artifacts:
    paths:
    - public

我希望.gitlab-ci.yml(基于 docker 映像(#2)的容器(#1))改为使用 aDockerfile来构建不同的映像(#3)来创建,artifact并再次将artifact#3 传递给它,container#1/public/因此它是公开的可在网络上访问。

# Dockerfile
FROM ruby:2.3
...

这样做的理由是,我可能会与了解 Dockerfiles 但对使用 GitLab 或.gitlab-ci.yml. 因此,我想.gitlab-ci.yml将其Dockerfile用于我的目的,我的同事可以Dockerfile以最适合他们Dockerfile的方式使用——这是制作artifact.

看来我可以在 GitLab CI/CD 中构建 Docker 映像,但我不确定我是否可以这样做,gitlab.com而不是自托管 GitLab。然后,这将允许我将图像推送到注册表并在稍后阶段(包括artifact)使用注册表中的图像。虽然我不确定如何提取它?

docker build -t myimagename .在 GitLab CI/CD 上不起作用gitlab.com(除非我添加了一些services.gitlab-ci.yml)。即使是这样,我如何将容器中的内容提取artifactmyimagenameGitLab CI/CD“容器”中?

标签: dockerdockerfilegitlab-ciartifact

解决方案


推荐阅读