电商类网站开发定制,包头球形网架公司,网页布局的类型有哪些,outlook企业邮箱注册申请Github Actions实现Spring Boot自动化部署#xff08;第二弹#xff09;
前言
今天就来讲述一下如何使用GitHub结合Actions实现Spring Boot程序从提交代码到打包、容器化、部署全过程自动化。首先咱们得现有一个能够在本地运行的Spring Boot程序#xff0c;并且在Githu…Github Actions实现Spring Boot自动化部署第二弹
前言
今天就来讲述一下如何使用GitHub结合Actions实现Spring Boot程序从提交代码到打包、容器化、部署全过程自动化。首先咱们得现有一个能够在本地运行的Spring Boot程序并且在Github上拥有一个仓库。
一、自动化部署
1.1 提交代码到Github 1.2 设置服务器密钥、GitHub私钥、DockerHub账号
secretvalueremarkDOCKER_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/checkoutv2- name: Set up JDK 21uses: actions/setup-javav2with:java-version: 21distribution: adopt# maven缓存不加的话每次都会去重新拉取会影响速度- name: Dependies Cacheuses: actions/cachev2with:path: ~/.m2/repositorykey: ${{ runner.os }}-maven-${{ hashFiles(**/pom.xml) }}restore-keys: |${{ runner.os }}-maven-# 编译打包- name: Build with Mavenrun: |mvn package -Dmaven.test.skiptrue# 登录Docker Hub- name: Login to Docker Hubuses: docker/login-actionv1with:username: ${{ secrets.DOCKER_HUB_USERNAME }}password: ${{ secrets.DOCKER_HUB_ACCESS_TOKEN }}- name: Set up Docker Buildxid: buildxuses: docker/setup-buildx-actionv1#build镜像并push到中央仓库中- name: Build and pushid: docker_builduses: docker/build-push-actionv2with:context: ./file: ./Dockerfilepush: truetags: ${{secrets.DOCKER_HUB_USERNAME}}/back:latest#push后用ssh连接服务器执行脚本- name: SSH
# uses: fifsky/ssh-actionmasteruses: appleboy/ssh-actionmasterwith:
# 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.org/mirrors.aliyun.com/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 ux /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】❤️❤️❤️我将会给你带来巨大的【收获与惊喜】