1.准备好需要准备的springboot项目,新建Dockerfile文件
#Dockerfile文件内容 FROM openjdk:8-jdk-alpine ADD ./target/wechart-0.0.1-SNAPSHOT.jar app.jar EXPOSE 8080 ENTRYPOINT ["java","-jar","/app.jar"]
com.spotify
dockerfile-maven-plugin
1.3.6
${project.artifactId}
2.新建阿里云镜像仓库
3.新建githup仓库,根据提示,推送代码
4.新建访问秘钥TOKEN
5.配置项目所需要的环境信息,找到项目下的setting设置,点击secrets,开始配置
TOKEN为刚新建的令牌
6.在.githubworkflows文件夹下新建yml文件
# This workflow will build a Java project with Maven
# For more information see: https://help.github.com/actions/language-and-framework-guides/building-and-testing-java-with-maven
name: Java CI with Maven
#在push本地main分支时启动action
on:
push:
branches: [ main ]
pull_request:
branches: [ main ]
jobs:
build:
#在ubuntu-latest下执行
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@master #下来master分支
- name: Set up JDK 8
uses: actions/setup-java@master
with:
java-version: '8'
distribution: 'adopt'
cache: maven
- name: Build with Maven #打包命令
run: mvn clean package --file pom.xml
- name: BuildDockerImage #使用dockerFile文件制作镜像,并且推送到阿里云镜像仓库
run: |
docker login --username=${{ secrets.YUN_USERNAME }} --password ${{ secrets.YUN_PASSWORD }} registry.cn-hangzhou.aliyuncs.com
docker build . -t ${{ secrets.REGISTRY }}:$GITHUB_RUN_NUMBER
docker push ${{ secrets.REGISTRY }}:$GITHUB_RUN_NUMBER
docker tag $(docker images ${{ secrets.REGISTRY }}:$GITHUB_RUN_NUMBER -q) ${{ secrets.REGISTRY }}:latest
docker push ${{ secrets.REGISTRY }}:latest
pull-docker: #登录外网服务器,拉取刚刚推送的镜像,然后启动镜像
needs: [build]
name: Pull Docker
runs-on: ubuntu-latest
steps:
- name: Deploy
uses: appleboy/ssh-action@master
with:
host: ${{ secrets.HOST }}
username: ${{ secrets.USERNAME }}
password: ${{ secrets.PASSWORD }}
port: ${{ secrets.PORT }}
script: |
docker stop $(docker ps -a | grep -w registry.cn-hangzhou.aliyuncs.com/bjiang123/git_action| awk '{print $1}')
docker rm -f $(docker ps -a | grep -w registry.cn-hangzhou.aliyuncs.com/bjiang123/git_action| awk '{print $1}')
docker rmi -f $(docker images registry.cn-hangzhou.aliyuncs.com/bjiang123/git_action:latest -q)
docker login --username=${{ secrets.YUN_USERNAME }} --password ${{ secrets.YUN_PASSWORD }} registry.cn-hangzhou.aliyuncs.com
docker pull registry.cn-hangzhou.aliyuncs.com/bjiang123/git_action:latest
docker run -d -p 8080:8080 registry.cn-hangzhou.aliyuncs.com/bjiang123/git_action:latest
7.点击提交,开始执行,点击action,查看执行过程,执行完成后,登录服务器,查看项目是否发布成功



