

📣读完这篇文章里你能收获到


在现代软件开发中,自动化部署是提高效率和可靠性的关键。本文将带你深入探索如何使用Jenkins和Harbor实现.NET Core项目的自动化部署。我们将一步步指导如何配置Jenkins、Harbor和Docker环境,以及使用最佳实践来简化部署流程。
$ vi /etc/docker/daemon.json
{
"registry-mirrors": ["https://k728i8z5.mirror.aliyuncs.com"],
"insecure-registries":["harborip:port"]//添加harbor地址
}
systemctl daemon-reload
systemctl restart docker
docker login harborip:port
# 退出登陆则为:docker logout harborip:port

#2. 把.docker复制到/var/lib/jenkins目录下
cp -r /root/.docker/ /var/lib/jenkins/
#3. 修改文件夹权限
cd /var/lib/jenkins/
chown -R jenkins.jenkins .docker






export pVersion=${pVersionPrefix}_${GIT_COMMIT:0:8}_`date +%Y%m%d%H%M`
export container=${IMG}${pName}:${pVersion}
# 到Dockerfile文件所在目录
# cd src
# 使用Docker构建镜像
docker build -t ${container} .
# 推送至Harbor仓库
docker push ${container}
# 检查容器是否存在
if docker inspect --type=container ${pName} >/dev/null 2>&1; then
# 停止容器
docker stop ${pName}
# 删除容器
docker rm ${pName}
fi
# 运行新的容器
docker run -d -p ${port}:80 --name ${pName} ${container}

Jenkins 将开始监测代码仓库并自动构建和部署 .NET Core 项目




这是因为jenkins在推送镜像的时候使用的是jenkins的伪用户,那么既然要推送就要登录,那么首先在当前用户生成config.json
unauthorized: unauthorized to access repository: ocp/eureka-server, action: push: unauthorized to access repository: ocp/eureka-server, action: push
#1. 当前用户使用docker login生成config.json
docker login http://ip:port

#2. 把.docker复制到/var/lib/jenkins目录下
cp -r /root/.docker/ /var/lib/jenkins/
#3. 修改文件夹权限
cd /var/lib/jenkins/
chown -R jenkins.jenkins .docker

