使用gitlab-ci在docker中构build.NET Core项目
我想用gitlab-ci自动化我的部署过程。 我现在通过ssh手动完成。 步骤是:
build立:
- dotnet恢复
- dotnet发布
这使我的目录充满了.dll。 我想将这些部署到一个docker容器,所以我运行:
- dockerbuild设
- docker停止
- docker工人
- docker运行
但是,我很难find正确的方式来做在相同的.gitlab.ci.yml
文件。
我需要来自microsoft/dotnet:latest
的dotnet工具microsoft/dotnet:latest
的docker cli工具。
我尝试了基于这些图像的两个阶段,但输出不共享。 为了解决这个问题,我尝试使用artifact
,但是无法上传。
我在网上找不到任何这样的例子,所以我想知道我是否正在做一些不该做的事情。
不太清楚为什么你要在你的构buildpipe道中做docker run
,也不知道为什么artifact
不能工作。 我们正在做这个确切的事情与artifact
和dependencies
阶段。
为了适应您的需求,必须自定义构build图像是非常正常的。 对于你的构build图像,你似乎需要docker
和dotnet
一起。 创build一个您将用作构build映像的Dockerfile
,并让它从microsoft/dotnet
inheritance。 然后在该映像中安装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
你configurationGitLab在runnerconfiguration文件中挂载/var/run/docker.sock
,然后你可以在你的gitlab-ci.yml
使用新的图像。
- Docker:在CLI上运行dotnet发布-o / output会导致非零的错误
- Docker构build安装不必要的包,导致图像运行失败
- 如何从docker容器中的bash检查.net核心dll的版本
- 为什么这个dotnettesting只在Docker容器中运行崩溃?
- 如何使用docker在dotnet上正常closures?
- 如何在Mac上使用JetBrains Rider开发和debugging运行在Docker中的.NET Core应用程序
- Docker – 理解开始/运行
- 在Azure中的Docker中,一个带有swagger的asp.net核心Web API不起作用
- Linux Docker中的SQL Server实例string连接