持续集成实践四.net Core 自动化部署docker
代码获取和触发器配置和之前的一样
构建操作
首先仍然时通过批处理先还原nuget包 或者 dotnet restore
拷贝部署文件到版本目录
在该目录先新建一个dockerfile文件 文件内容如下
# 基于microsoft/dotnet:latest构建Docker Image FROM microsoft/dotnet:latest # 进入docker中的/usr/local/src目录 RUN cd /usr/local/src # 创建DockerWebAPI目录 RUN mkdir pollapi # 设置工作路径 WORKDIR /usr/local/src/***名称*** # 将当前文件夹下的所有文件全部复制到工作目录 COPY . ./ # 设置时区 RUN ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime && echo 'Asia/Shanghai' >/etc/timezone # 向外界暴露6303端口 EXPOSE 6303 # 设置环境变量 ENV KEY VALUE # 执行dotnet DockerWebAPI.dll命令 CMD ["dotnet", "***执行的dll***.dll"]
然后执行部署到docker 的命令
cd d:/test d: docker build -t daxnet/docker-webapi . 通过当前目录下的dockerFile构建一个名为daxnet/docker-webapi 的镜像 "."表示当前目录 docker stop pollapi docker rm pollapi docker create --name=pollapi -p 6303:6303 daxnet/docker-webapi 基于镜像 创建一个 pollapi的容器 docker start pollapi 启动容器 docker logs pollapi exit 0
执行 docker build -t daxnet/docker-webapi . 首次执行会下载镜像 要很久(大概500M吧)
删除无用的镜像
Powershell.exe docker rmi $(docker images -f "dangling=true" -q)
触发测试任务 把版本号传过去