之前用jenkins自动部署.net core之后,发现服务器内存占用非常高,4G内存基本占用了60%意思上,大概率是jenkins轮训或者原本就占用高。
而且之间出现一次git密码失效,需要重新设置的问题,所以考虑还是试下azure自带。
一:注册azure devops 账号
https://azure.microsoft.com/zh-cn/services/devops/
免费开始使用,随便注册个账号。
二:基础设置
new organization新建一个组织。
new project 新建一个项目。
进入后repos新建一个存储库。
将.net core项目上传,比如.net 5项目。
三:新建部署组
Pipelines 下面的 Deployment groups ,new一个组,命名任意。
点击新建完成组,点击进入,里面details里面命名任意,Type of target to register 下面选择linux,Use a personal access token in the script for authentication选中,然后将命令复制到linux服务的命令行执行,会有报错,但是基本是路径或者权限问题,百度都能解决。
四:新建Docker Registry
后面需要将镜像推送
https://hub.docker.com/ 注册账号,任意设置,新建一个私有仓库。
azure devops中点击左下方的Project Settings,再点击右上角,New service connection。输入docker,选择Docker Registry。 Registry type选择docker hub。填写docker仓库名和密码,验证通过,其他的必填任意取名,保存。
五:新建pipelines
左侧pipelines,点击new,选择Azure Repos git,再选择对应代码库。
最终,azure-pipelines.yml
trigger: - master resources: - repo: self variables: tag: '$(Build.BuildId)' stages: - stage: Build displayName: Build image jobs: - job: Build displayName: Build pool: vmImage: ubuntu-latest steps: - task: Docker@2 inputs: containerRegistry: 'containername' repository:'docker hub的仓库 格式 A/B' command: 'buildAndPush' Dockerfile: '**/Dockerfile' tags: '任意取'
保存并运行,然后成功后去看docker hub是否已经推送成功
六:发布
Release 点击new,点击empty job,或者任意,最终点击Stages下面的 a job,b task这里,把里面东西都删除,保证显示0 job, 0 task。
点击0 job进入,点击stage 1 右侧的三点,点击 Deployment group job。
红色框 Deployment group表示必填,下拉里面选择在第三部建的部署组。
点击+, 添加4个comman line
分别命名
remove container
remove image
pull image
run
或者随意命名,分别是删除容器,删除镜像,拉取镜像,部署
命令分别是
#判断是否存在containername容器 docker ps | grep containername&> /dev/null #若是存在,则Remove if [ $? -ne 0 ] then echo "good containernamenot exist continue.. " else echo "remove containernamecontainer" docker stop containername docker rm containername-f fi
#判断是否存在name镜像 docker images | grep name&> /dev/null #若是不存在,则跳出 if [ $? -ne 0 ] then echo "name does not exist , continue..." else echo "name exists !!! remove it" docker rmi --force name fi
docker login --username=用户型 --password=密码 docker pull 镜像名:latest
docker run --restart always -p 88888:80 --name 自定义-d 镜像名
保存
点击tasks左侧的pipline,点击Artifacts 下面的框,选择Source type 下的build,将下方两个选择框选择自己的仓库。
保存后运行,服务器只要开启了对应的端口,域名解析后,可以直接打开。
用docker images 查看镜像是否存在。
还没有评论,来说两句吧...