1、jenkins 一定要配置 docker服务器中 git的地址,不然拉不到代码。
2、docker 一定要把 jenkins添加到组中 不然没有 docker权限。还要配置docker的
sudo gpasswd -a jenkins docker
sudo service jenkins restart
3.jenkins 中 sell的配置(太长 放最后了)
4.一般来说做.net项目 都会发有自己的服务器。 必须必须 把jenkins nuget地址改变了。 在找不到路径 就用查找办法
find / -name '*nuget*'
出来会有很多个 最接近正确的 是 安装目录 这个目录 /var/lib/jenkins/ 。这个坑啊 坑。
这里只有 微软管方的。nuget.org。所以官方的dll可以拉下来。 自己nuget的就不行。
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<packageSources>
<add key="nuget.org" value="https://api.nuget.org/v3/index.json" protocolVersion="3" />
<add key="mynuget" value="http://192.168.0.253/nuget" />
</packageSources>
</configuration>
加一行
echo "=====准备开始发布==========="
#要构建的解决方案名称
solutionName=Electricity.AttenceService
#.sln文件全路径
solutionDir=${solutionName}.sln
#.csproj文件全路径
csprojDir=Electricity.AttenceService.Api/Electricity.AttenceService.Api.csproj
#制定run的端口
port=7030
#项目发布的目录
webDir=/home/service
#静像名称
imageName=attenceapi
#dotnet restore ${JENKINS_HOME}/workspace/${JOB_NAME}
echo "===========正在编译程序=============="
#发布网站到webDir
dotnet publish ${JENKINS_HOME}/workspace/${JOB_NAME}/${csprojDir} -c Release -o ${webDir}/${JOB_NAME} /p:Version=1.0.${BUILD_NUMBER}
echo "=====正在操作Docker==========="
containerps=$(docker ps -a -f name=${imageName} -q)
for alpha in "$containerps";do
if [ "${alpha}" == "" ];then
echo "不存指定容器!"
else
docker stop ${alpha}
docker rm ${alpha}
fi
done
dockerlist=$(docker images ${imageName} -q)
for alpha2 in "${dockerlist}";do
if [ "${alpha2}" == "" ];then
echo "不存在指定镜像!"
else
docker rmi ${alpha2}
fi
done
echo "===========正在构建镜像=============="
#通过Dockerfile重新构建镜像
cd ${webDir}/${JOB_NAME}
docker build -t ${imageName} .
#docker run容器并绑定到端口
docker run -e TZ="Asia/Shanghai" --name ${imageName} -p ${port}:${port} -d ${imageName}
echo "===========发布成功=============="
#选择从什么镜像基础上创建我们的镜像,相当于选择我们依赖的环境
FROM microsoft/dotnet:2.2.0-aspnetcore-runtime
#把当前目录复制到镜像的 app目录
COPY . /app
#指定工作目录
WORKDIR /app
#暴露的端口 是之前准备asp.net core应用设置的端口一致 UseUrls(“http://*:6001”)
EXPOSE 5030
#最后设置启动的dll
ENTRYPOINT ["dotnet", "Electricity.FileService.Api.dll"]