关于Jenkins+Docker+ASP.NET Core自动化部署的问题,可以分为以下几个步骤:
1. 安装Jenkins和Docker
在CentOS7系统下,可以通过如下命令安装Jenkins和Docker:
# 安装Jenkins
sudo yum install -y java-1.8.0-openjdk
sudo wget -O /etc/yum.repos.d/jenkins.repo https://pkg.jenkins.io/redhat-stable/jenkins.repo
sudo rpm --import https://pkg.jenkins.io/redhat-stable/jenkins.io.key
sudo yum install -y jenkins
# 安装Docker
sudo yum install -y docker-ce
sudo systemctl start docker
sudo systemctl enable docker
2. 建立ASP.NET Core项目
在本地,可以通过使用Visual Studio、Visual Studio Code或者dotnet CLI等方式建立ASP.NET Core项目。建立好项目之后,可以通过如下命令进行项目的构建,生成可执行文件:
dotnet publish -c Release
3. 编写Jenkins脚本
在Jenkins控制台中,新建一个Jenkins任务,并在任务的配置页面中选择源码管理器为git,配置好git仓库地址和分支。此外,需要在Jenkins的全局工具配置中,配置好dotnet CLI的路径。
在该任务中,可以编写一个Jenkins脚本pipeline,对ASP.NET Core项目进行构建、打包、部署操作。一个简单的pipeline示例如下所示:
pipeline {
agent {
docker {
image "microsoft/dotnet:2-sdk"
args "-v /var/run/docker.sock:/var/run/docker.sock"
}
}
stages {
stage('prepare') {
steps {
sh "git clone https://github.com/user/project.git"
sh "cd project && dotnet restore"
}
}
stage('build') {
steps {
sh "cd project && dotnet publish -c Release -o ../publish"
}
}
stage('deploy') {
steps {
sh "cd publish && docker build --tag myapp ."
sh "docker run --publish 80:5000 --detach --name myapp myapp"
}
}
}
}
该脚本pipeline分为三个阶段:
- 第一阶段,从git仓库中拉取代码,并进行dotnet restore操作。
- 第二阶段,进行项目的编译发布操作,生成可执行文件。
- 第三阶段,使用Docker打包可执行文件,并启动容器进行部署。
4. 示例说明
- 示例一:本地构建项目,并上传到Docker Hub,然后在容器中运行
在本地,使用如下命令构建项目:
dotnet publish -c Release
生成可执行文件后,使用Docker打包并上传到Docker Hub:
docker build -t myapp .
docker tag myapp yourname/myapp:latest
docker push yourname/myapp:latest
然后,在线上服务器上,使用如下命令启动容器:
docker run -p 80:5000 -d --name myapp yourname/myapp:latest
- 示例二:使用Jenkins进行自动化部署
在Jenkins的控制台中,新建一个任务,并在任务配置页中选择源码管理器为git,配置好git仓库地址和分支。然后,在任务的配置页面中,添加一个pipeline脚本,根据之前的示例脚本进行编写。最后,在任务的Build Now页面中,点击“执行”按钮,即可开始自动化部署。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:关于Jenkins + Docker + ASP.NET Core自动化部署的问题(避免踩坑) - Python技术站