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

相关文章

微信公众号脚本-获取热搜自动新建草稿并发布文章

《微信公众号脚本-获取热搜自动新建草稿并发布文章》本来想写一个自动化发布微信公众号的小绿书的脚本,但是微信公众号官网没有小绿书的接口,那就写一个获取热搜微信普通文章的脚本吧,:本文主要介绍微信公众... 目录介绍思路前期准备环境要求获取接口token获取热搜获取热搜数据下载热搜图片给图片加上标题文字上传图片

SpringBoot中封装Cors自动配置方式

《SpringBoot中封装Cors自动配置方式》:本文主要介绍SpringBoot中封装Cors自动配置方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录SpringBoot封装Cors自动配置背景实现步骤1. 创建 GlobalCorsProperties

idea中创建新类时自动添加注释的实现

《idea中创建新类时自动添加注释的实现》在每次使用idea创建一个新类时,过了一段时间发现看不懂这个类是用来干嘛的,为了解决这个问题,我们可以设置在创建一个新类时自动添加注释,帮助我们理解这个类的用... 目录前言:详细操作:步骤一:点击上方的 文件(File),点击&nbmyHIgsp;设置(Setti

tomcat多实例部署的项目实践

《tomcat多实例部署的项目实践》Tomcat多实例是指在一台设备上运行多个Tomcat服务,这些Tomcat相互独立,本文主要介绍了tomcat多实例部署的项目实践,具有一定的参考价值,感兴趣的可... 目录1.创建项目目录,测试文China编程件2js.创建实例的安装目录3.准备实例的配置文件4.编辑实例的

SpringBoot配置Ollama实现本地部署DeepSeek

《SpringBoot配置Ollama实现本地部署DeepSeek》本文主要介绍了在本地环境中使用Ollama配置DeepSeek模型,并在IntelliJIDEA中创建一个Sprin... 目录前言详细步骤一、本地配置DeepSeek二、SpringBoot项目调用本地DeepSeek前言随着人工智能技

Docker镜像pull失败两种解决办法小结

《Docker镜像pull失败两种解决办法小结》有时候我们在拉取Docker镜像的过程中会遇到一些问题,:本文主要介绍Docker镜像pull失败两种解决办法的相关资料,文中通过代码介绍的非常详细... 目录docker 镜像 pull 失败解决办法1DrQwWCocker 镜像 pull 失败解决方法2总

通过Docker Compose部署MySQL的详细教程

《通过DockerCompose部署MySQL的详细教程》DockerCompose作为Docker官方的容器编排工具,为MySQL数据库部署带来了显著优势,下面小编就来为大家详细介绍一... 目录一、docker Compose 部署 mysql 的优势二、环境准备与基础配置2.1 项目目录结构2.2 基

CentOS 7部署主域名服务器 DNS的方法

《CentOS7部署主域名服务器DNS的方法》文章详细介绍了在CentOS7上部署主域名服务器DNS的步骤,包括安装BIND服务、配置DNS服务、添加域名区域、创建区域文件、配置反向解析、检查配置... 目录1. 安装 BIND 服务和工具2.  配置 BIND 服务3 . 添加你的域名区域配置4.创建区域

一文详解SQL Server如何跟踪自动统计信息更新

《一文详解SQLServer如何跟踪自动统计信息更新》SQLServer数据库中,我们都清楚统计信息对于优化器来说非常重要,所以本文就来和大家简单聊一聊SQLServer如何跟踪自动统计信息更新吧... SQL Server数据库中,我们都清楚统计信息对于优化器来说非常重要。一般情况下,我们会开启"自动更新

关于Docker Desktop的WSL报错问题解决办法

《关于DockerDesktop的WSL报错问题解决办法》:本文主要介绍关于DockerDesktop的WSL报错问题解决办法的相关资料,排查发现是因清理%temp%文件夹误删关键WSL文件,... 目录发现问题排查过程:解决方法其实很简单:重装之后再看就能够查到了:最后分享几个排查这类问题的小www.cp