Github Actions实现Spring Boot自动化部署(第二弹)

编程入门 行业动态 更新时间:2024-10-18 14:23:33

Github <a href=https://www.elefans.com/category/jswz/34/1759645.html style=Actions实现Spring Boot自动化部署(第二弹)"/>

Github Actions实现Spring Boot自动化部署(第二弹)

Github Actions实现Spring Boot自动化部署(第二弹)

前言

​ 今天就来讲述一下如何使用GitHub结合Actions实现Spring Boot程序从提交代码到打包、容器化、部署全过程自动化。首先咱们得现有一个能够在本地运行的Spring Boot程序,并且在Github上拥有一个仓库。

一、自动化部署

1.1 提交代码到Github

1.2 设置服务器密钥、GitHub私钥、DockerHub账号

secretvalueremark
DOCKER_HUB_ACCESS_TOKEN1234567890dockerhub账号私钥
DOCKER_HUB_USERNAMEbubaiwantongdockerhub账号
SERVER_HOST127.0.0.1服务器IP地址
SERVER_PASSWORD1234567890服务器密码
SERVER_PORT22服务器开放端口
SERVER_PRIVATE_KEY1234567890服务器私钥
SERVER_USERNAMEroot服务器账号
TOKEN1234567890Github的Token
1.2.1 设置服务器密钥

1.2.2 设置Github私钥

1.2.3 设置DockerHub账号

1.3 新增工作流文件

maven.yml文件

name: Deploy with dockeron:push:# 分支branches: [ "master" ]pull_request:branches: [ "master" ]jobs:compile:runs-on: ubuntu-lateststeps:- uses: actions/checkout@v2- name: Set up JDK 21uses: actions/setup-java@v2with:java-version: '21'distribution: 'adopt'# maven缓存,不加的话每次都会去重新拉取,会影响速度- name: Dependies Cacheuses: actions/cache@v2with:path: ~/.m2/repositorykey: ${{ runner.os }}-maven-${{ hashFiles('**/pom.xml') }}restore-keys: |${{ runner.os }}-maven-# 编译打包- name: Build with Mavenrun: |mvn package -Dmaven.test.skip=true# 登录Docker Hub- name: Login to Docker Hubuses: docker/login-action@v1with:username: ${{ secrets.DOCKER_HUB_USERNAME }}password: ${{ secrets.DOCKER_HUB_ACCESS_TOKEN }}- name: Set up Docker Buildxid: buildxuses: docker/setup-buildx-action@v1#build镜像并push到中央仓库中- name: Build and pushid: docker_builduses: docker/build-push-action@v2with:context: ./file: ./Dockerfilepush: truetags: ${{secrets.DOCKER_HUB_USERNAME}}/back:latest#push后,用ssh连接服务器执行脚本- name: SSH
#        uses: fifsky/ssh-action@masteruses: appleboy/ssh-action@masterwith:
#          command: |
#            cd /develop/work/education-back-server
#            sh start.shhost: ${{secrets.SERVER_HOST}}username: ${{secrets.SERVER_USERNAME}}port: ${{secrets.SERVER_PORT }}
#          key: ${{secrets.SERVER_PRIVATE_KEY}}password: ${{secrets.SERVER_PASSWORD}}script:sh /develop/work/education-back-server/start.sh
#            sh start.sh

1.4 新增Dockerfile文件

Dockerfile文件

#基础镜像
FROM bubaiwantong/openjdk:21-jdk-alpine#安装字体
RUN sed -i 's/dl-cdn.alpinelinux/mirrors.aliyun/g' /etc/apk/repositories && apk add --update ttf-dejavu fontconfig && rm -rf /var/cache/apk/* && mkfontscale && mkfontdir && fc-cache
RUN apk add --update ttf-dejavu fontconfig && rm -rf /var/cache/apk/*#添加文件
ADD education-back/target/back-0.0.1-SNAPSHOT.jar /usr/local
RUN chmod u+x /usr/local/back-0.0.1-SNAPSHOT.jar#设置时区
RUN rm -f /etc/localtime \
&& ln -sv /usr/share/zoneinfo/Asia/Shanghai /etc/localtime \
&& echo "Asia/Shanghai" > /etc/timezone#挂载目录到容器
#VOLUME ["/data"]
#环境变量设置
#ENV #开放端口
EXPOSE 8088
#启动时执行的命令
CMD ["/bin/bash"]
#启动时执行的命令
ENTRYPOINT ["java","-jar","/usr/local/back-0.0.1-SNAPSHOT.jar"]

1.5 编写服务器启动脚本

start.sh文件

#!/bin/bash
docker pull bubaiwantong/back:latestdocker tag docker.io/bubaiwantong/back:latest back:latestdocker stop backdocker rm backdocker run --name back -p 8088:8088 -d back:latestdocker image prune -

2.7 开启自动化部署

提交代码到master,在GitHub中的Actions即可发现项目正在自动化部署

在浏览器地址栏打开网站首页 就可以发现自动化部署成功啦!

三、写在最后

如果这篇【文章】有帮助到你,希望可以给【JavaGPT】点个赞👍,创作不易,如果有对【后端技术】、【前端领域】感兴趣的小可爱,也欢迎关注❤️❤️❤️ 【JavaGPT】❤️❤️❤️,我将会给你带来巨大的【收获与惊喜】💝💝💝!

更多推荐

Github Actions实现Spring Boot自动化部署(第二弹)

本文发布于:2023-12-05 21:24:26,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1665349.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:Actions   Github   Boot   Spring

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!