docker-compose+Dockerfile+gitee+宝塔WebHook自动部署

2024-03-06 02:32

本文主要是介绍docker-compose+Dockerfile+gitee+宝塔WebHook自动部署,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

一、配置宝塔及gitee互通

1.安装宝塔WebHook

 安装地址:宝塔

2.配置项目的公钥

        a.linux生成对应的SSH公钥,邮箱为git的邮箱

ssh-keygen -t rsa -C "xxxxx@xxxxx.com"

        b.生成后查看对应的public key公钥信息

cat ~/.ssh/id_rsa.pub

在这里插入图片描述

         c.在码云中添加自己服务器的公钥

   

3.配置WebHooks

        a.通过宝塔页面创建一个WebHook

         根据自己的需求进行修改

#!/bin/bash
export MAVEN_HOME=/home/tools/apache-maven-3.6.3
export JAVA_HOME=/home/tools/jdk1.8.0_301
export JRE_HOME=$JAVA_HOME/jreexport PATH=$JAVA_HOME/bin:$PATH:$MAVEN_HOME/bin:$JRE_HOME
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jarecho ""
date --date='0 days ago' "+%Y-%m-%d %H:%M:%S"
echo "-------start-------"
gitPath="/www/wwwroot"
gitName="takeaway-java"
gitHttp="git@********.******.git"
echo "git path:$gitPath"
if [ ! -d ".git" ];thenif [ ! -d "$gitPath/$gitName" ];thencd /$gitPathecho "-------clone this package git-------"git clone $gitHttpcd $gitNameelsecd $gitPath/$gitNamefichmod -R 777 $gitPath/$gitNamegit reset --hard origin/develop#git clean -fgit pull origin developif [ $? -ne 0 ]; thenecho "-------pull failed-------"elseecho "-------pull succeed-------"fiset -emvn clean package -Dmaven.test.skip=trueif [ $? -ne 0 ]; thenecho "-------build failed-------"elseecho "-------build succeed-------"fiecho "-------close docker container-------"pid=`docker ps -aqf name=$gitName_service-gateway_1`docker stop $pidpid1=`docker ps -aqf name=$gitName_service-customer_1`docker stop $pid1pid2=`docker ps -aqf name=$gitName_service-management_1`docker stop $pid2echo "-------close docker container successed-------"echo "-------start gateway--------"docker-compose -f docker-compose.yml up -dif [$? -ne 0]; then echo "-------gateway faild-------"elseecho "-------gateway successed-------"fiecho "-------start services--------"docker-compose -f docker-compose-server.yml up -dif [$? -ne 0]; then echo "-------services faild-------"elseecho "-------services successed-------"fiecho "-------end--------"
fi
exit

        b.查看秘钥,并配置gitee的WebHooks

二、docker相关安装及设置

        官网地址: Docker Documentation | Docker Documentation

1.安装docker

        传送门:CentOS Docker 安装 | 菜鸟教程

2.安装docker-compose

        传送门:Docker Compose | 菜鸟教程

3.网络配置

        a.创建网络

# --gateway 网关
# --subnet  子网掩码    192.168.0.0/16  从192.168.0.2开始~192.168.255.255
# --driver  连接方式    bridge 桥接
docker network create --driver bridge --subnet 192.168.0.0/16 --gateway 192.168.0.1 mynet

        b.查看自己创建的网络

docker network insepct mynet

        到此docker相关配置已完成,接下来编排docker相关内容

二、springboot配置docker相关

1.编排Dockerfile

# 基础镜像
FROM java:8
# VOLUME 指定了临时文件目录为/tmp。
VOLUME /tmp
RUN echo "Asia/shanghai" > /etc/timezone
# Ubuntu
RUN cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
# 将jar包添加到容器中并更名为app.jar
ADD ./target/service-customer-1.0.0-SNAPSHOT.jar app.jar
# 运行jar包
ENV JAVA_OPTS=""
ENTRYPOINT exec java $JAVA_OPTS -Djava.security.egd=file:/dev/./urandom -jar /app.jar
EXPOSE 5001

 2.编排docker-compose.yml

version: '3'
# 自己的服务
services:service-gateway:build: system/service-gatewayrestart: always# 端口映射ports:- 80:80# 运行参数environment:- JAVA_OPTS=-Xmx512m -Xms512m -XX:MaxPermSize=512m# 卷挂载volumes:- ./system/service-gateway/target/service-gateway-1.0.0-SNAPSHOT.jar:/app.jar- ./log:/log/# 使用哪个网络networks:- service-net
# 网络配置
networks:service-net:external:name: nacos-net    # 加入到对应服务网络中

        其中会遇到宿主机与docker容器的时差相差8小时问题,可以参考如下链接:docker容器与宿主机相差8小时_咻pur慢-CSDN博客

这篇关于docker-compose+Dockerfile+gitee+宝塔WebHook自动部署的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/778596

相关文章

深入浅出Spring中的@Autowired自动注入的工作原理及实践应用

《深入浅出Spring中的@Autowired自动注入的工作原理及实践应用》在Spring框架的学习旅程中,@Autowired无疑是一个高频出现却又让初学者头疼的注解,它看似简单,却蕴含着Sprin... 目录深入浅出Spring中的@Autowired:自动注入的奥秘什么是依赖注入?@Autowired

redis-sentinel基础概念及部署流程

《redis-sentinel基础概念及部署流程》RedisSentinel是Redis的高可用解决方案,通过监控主从节点、自动故障转移、通知机制及配置提供,实现集群故障恢复与服务持续可用,核心组件包... 目录一. 引言二. 核心功能三. 核心组件四. 故障转移流程五. 服务部署六. sentinel部署

基于Redis自动过期的流处理暂停机制

《基于Redis自动过期的流处理暂停机制》基于Redis自动过期的流处理暂停机制是一种高效、可靠且易于实现的解决方案,防止延时过大的数据影响实时处理自动恢复处理,以避免积压的数据影响实时性,下面就来详... 目录核心思路代码实现1. 初始化Redis连接和键前缀2. 接收数据时检查暂停状态3. 检测到延时过

Linux部署中的文件大小写问题的解决方案

《Linux部署中的文件大小写问题的解决方案》在本地开发环境(Windows/macOS)一切正常,但部署到Linux服务器后出现模块加载错误,核心原因是Linux文件系统严格区分大小写,所以本文给大... 目录问题背景解决方案配置要求问题背景在本地开发环境(Windows/MACOS)一切正常,但部署到

SpringBoot实现RSA+AES自动接口解密的实战指南

《SpringBoot实现RSA+AES自动接口解密的实战指南》在当今数据泄露频发的网络环境中,接口安全已成为开发者不可忽视的核心议题,RSA+AES混合加密方案因其安全性高、性能优越而被广泛采用,本... 目录一、项目依赖与环境准备1.1 Maven依赖配置1.2 密钥生成与配置二、加密工具类实现2.1

Python使用Tenacity一行代码实现自动重试详解

《Python使用Tenacity一行代码实现自动重试详解》tenacity是一个专为Python设计的通用重试库,它的核心理念就是用简单、清晰的方式,为任何可能失败的操作添加重试能力,下面我们就来看... 目录一切始于一个简单的 API 调用Tenacity 入门:一行代码实现优雅重试精细控制:让重试按我

SQL Server跟踪自动统计信息更新实战指南

《SQLServer跟踪自动统计信息更新实战指南》本文详解SQLServer自动统计信息更新的跟踪方法,推荐使用扩展事件实时捕获更新操作及详细信息,同时结合系统视图快速检查统计信息状态,重点强调修... 目录SQL Server 如何跟踪自动统计信息更新:深入解析与实战指南 核心跟踪方法1️⃣ 利用系统目录

使用IDEA部署Docker应用指南分享

《使用IDEA部署Docker应用指南分享》本文介绍了使用IDEA部署Docker应用的四步流程:创建Dockerfile、配置IDEADocker连接、设置运行调试环境、构建运行镜像,并强调需准备本... 目录一、创建 dockerfile 配置文件二、配置 IDEA 的 Docker 连接三、配置 Do

Spring Security 单点登录与自动登录机制的实现原理

《SpringSecurity单点登录与自动登录机制的实现原理》本文探讨SpringSecurity实现单点登录(SSO)与自动登录机制,涵盖JWT跨系统认证、RememberMe持久化Token... 目录一、核心概念解析1.1 单点登录(SSO)1.2 自动登录(Remember Me)二、代码分析三、

MyBatis-Plus 自动赋值实体字段最佳实践指南

《MyBatis-Plus自动赋值实体字段最佳实践指南》MyBatis-Plus通过@TableField注解与填充策略,实现时间戳、用户信息、逻辑删除等字段的自动填充,减少手动赋值,提升开发效率与... 目录1. MyBATis-Plus 自动赋值概述1.1 适用场景1.2 自动填充的原理1.3 填充策略