使用 gitlab-ci 在 docker 中构建 .NET Core 项目
Using gitlab-ci to build .NET Core projects in docker
我想使用 gitlab-ci 自动化我的部署过程。我目前正在通过 ssh 手动执行此操作。步骤是:
建造:
- dotnet 恢复
- dotnet 发布
这给我留下了一个充满 .dll 的目录。我想将它们部署到 docker 容器中,所以我 运行:
- docker 建造
- docker停止
- docker rm
- docker 运行
但是,我很难找到在同一个 .gitlab.ci.yml
文件中执行这两项操作的正确方法。
我需要 microsoft/dotnet:latest
的 dotnet 工具和 docker:latest
的 docker cli 工具。
我尝试根据这些图像中的每一个设置两个阶段,但未共享输出。为了解决这个问题,我尝试使用 artifact
,但上传失败。
我在网上找不到这样的例子,所以我想我是不是在做一些不应该做的事情。
不太清楚为什么要在构建管道中执行 docker run
,也不太清楚为什么 artifact
不起作用。我们正在使用 artifact
和 dependencies
.
分阶段进行这件事
无论如何,必须自定义构建映像以满足您的需求是很正常的。对于您的构建映像,您似乎需要 docker
和 dotnet
。创建一个将用作构建映像的 Dockerfile
,并让它继承自 microsoft/dotnet
。然后在该映像中安装 docker
。记得在 /var/run/docker.sock
中挂载,以便容器可以使用 docker 守护进程。
您的新 Dockerfile
将如下所示:
FROM microsoft/dotnet
RUN echo deb http://apt.dockerproject.org/repo debian-jessie main > /etc/apt/sources.list.d/docker.list && \
apt-key adv --keyserver hkp://p80.pool.sks-keyservers.net:80 --recv-keys 58118E89F3A912897C070ADBF76221572C52609D && \
apt-get update && \
apt-get install -y docker-engine
到运行你电脑上的图片
docker run -it --rm -v /var/run/docker.sock:/var/run/docker.sock yournewimage
你在运行ner配置文件中配置GitLab挂载/var/run/docker.sock
,然后你就可以在你的gitlab-ci.yml
.
中使用新镜像了
我想使用 gitlab-ci 自动化我的部署过程。我目前正在通过 ssh 手动执行此操作。步骤是:
建造:
- dotnet 恢复
- dotnet 发布
这给我留下了一个充满 .dll 的目录。我想将它们部署到 docker 容器中,所以我 运行:
- docker 建造
- docker停止
- docker rm
- docker 运行
但是,我很难找到在同一个 .gitlab.ci.yml
文件中执行这两项操作的正确方法。
我需要 microsoft/dotnet:latest
的 dotnet 工具和 docker:latest
的 docker cli 工具。
我尝试根据这些图像中的每一个设置两个阶段,但未共享输出。为了解决这个问题,我尝试使用 artifact
,但上传失败。
我在网上找不到这样的例子,所以我想我是不是在做一些不应该做的事情。
不太清楚为什么要在构建管道中执行 docker run
,也不太清楚为什么 artifact
不起作用。我们正在使用 artifact
和 dependencies
.
无论如何,必须自定义构建映像以满足您的需求是很正常的。对于您的构建映像,您似乎需要 docker
和 dotnet
。创建一个将用作构建映像的 Dockerfile
,并让它继承自 microsoft/dotnet
。然后在该映像中安装 docker
。记得在 /var/run/docker.sock
中挂载,以便容器可以使用 docker 守护进程。
您的新 Dockerfile
将如下所示:
FROM microsoft/dotnet
RUN echo deb http://apt.dockerproject.org/repo debian-jessie main > /etc/apt/sources.list.d/docker.list && \
apt-key adv --keyserver hkp://p80.pool.sks-keyservers.net:80 --recv-keys 58118E89F3A912897C070ADBF76221572C52609D && \
apt-get update && \
apt-get install -y docker-engine
到运行你电脑上的图片
docker run -it --rm -v /var/run/docker.sock:/var/run/docker.sock yournewimage
你在运行ner配置文件中配置GitLab挂载/var/run/docker.sock
,然后你就可以在你的gitlab-ci.yml
.