1.IDEA项目Commit
AzureDevOps(https://dev.azure.com/项目名称)新建Repos
右上角Clone复制网址在IDEA-Commit中粘贴->Commit
IDEA项目push:点击或Terminal-git push(能在Repos中看到项目就OK)
2.建Ubuntu虚拟机
Microsoft Azure官网->创建虚拟机
地区选Asia East其他全默认
查看+创建->连接CLI
ssh连接:ssh @<ip>
把项目pull到虚拟机/home:git clone Repos网址
3.虚拟机安装Java
用apt-get install安装到默认路径(具体过程CSDN搜)
4.虚拟机安装Maven
下载指定版本:wget 网址 -P 下载路径
解压并配置(具体过程CSDN搜)
5.虚拟机安装配置Docker
Ubuntu两行命令:
curl -fsSL https://test.docker.com -o test-docker.sh
sudo sh test-docker.sh
(其他系统见网址:https://www.runoob.com/docker/ubuntu-docker-install.html)
sudo apt install docker-compose
6.DockerHub
DockerHub官网注册账户并新建一个空的repository
AzureDevOps(https://dev.azure.com/项目名称)
左下角settings->Service connections->New->Docker Registry->Docker Hub
填刚刚注册的ID,密码->Verify,其他随便填->Verify and save
IDEA项目中根目录下新建文件Dockerfile并写入(根据自己项目):
# 使用包含JDK 1.17的基础镜像
FROM openjdk:17-jdk-slim
#打包项目,User-Service是项目名称
ARG JAR_FILE=target/User-Service-0.0.1-SNAPSHOT.jar
COPY ${JAR_FILE} app.jar
ENTRYPOINT ["java","-jar","/app.jar"]
7.虚拟机登录Docker
当前用户添加到Docker用户组(为了不用sudo就能用docker命令,具体过程CSDN搜)
docker login
8.代理运行到虚拟机上
https://dev.azure.com/项目名称
左下角settings->Agent pools->Add pool(self-hosted)
点进新建的Agent pool->New agent
按提示下载agent并配置运行(运行过程中'.env'权限拒绝:回到myagent的父文件->chomd -R 777 myagent)
9.配置pipline文件(根据自己项目)
# Maven
# Build your Java project and run tests with Apache Maven.
# Add steps that analyze code, save build artifacts, deploy, and more:
# https://docs.microsoft.com/azure/devops/pipelines/languages/java
trigger:
- master
#seetings - > Agent pool name
pool: 'GcxAgent'
steps:
- task: Maven@3
inputs:
mavenPomFile: 'pom.xml'
mavenOptions: '-Xmx1024m'
javaHomeOption: 'Path'
jdkDirectory: '/usr/lib/jvm/java-1.17.0-openjdk-amd64'
jdkVersionOption: '1.17'
jdkArchitectureOption: 'x64'
goals: 'package'
- task: Docker@2
inputs:
containerRegistry: 'DockerHubGcx'
repository: 'guochangxin/user-service'
command: 'buildAndPush'
Dockerfile: 'Dockerfile'
tags: 'latest'
- script: |
cd /home/e1221771/UserService.changxin.guo
displayName: 'Go to Docker Compose Directory'
- script: |
docker-compose down
displayName: 'Docker Compose Down'
- script: |
docker-compose up -d
displayName: 'Docker Compose Up'
10.run pipline
再commit并push一次