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/jre

export PATH=$JAVA_HOME/bin:$PATH:$MAVEN_HOME/bin:$JRE_HOME
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar

echo ""
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" ];then
    if [ ! -d "$gitPath/$gitName" ];then
    	cd /$gitPath
      	echo "-------clone this package git-------"
      	git clone $gitHttp
        cd $gitName
    else
    	cd $gitPath/$gitName
    fi
    chmod -R 777 $gitPath/$gitName
    git reset --hard origin/develop
    #git clean -f
    git pull origin develop
    if [ $? -ne 0 ]; then
        echo "-------pull failed-------"
    else
        echo "-------pull succeed-------"
    fi
    
    set -e
    mvn clean package -Dmaven.test.skip=true
    if [ $? -ne 0 ]; then
        echo "-------build failed-------"
    else
        echo "-------build succeed-------"
    fi
    
    echo "-------close docker container-------"
    pid=`docker ps -aqf name=$gitName_service-gateway_1`
    docker stop $pid
    
    pid1=`docker ps -aqf name=$gitName_service-customer_1`
    docker stop $pid1
    
    pid2=`docker ps -aqf name=$gitName_service-management_1`
    docker stop $pid2
        
    echo "-------close docker container successed-------"
    
    echo "-------start gateway--------"
    docker-compose -f docker-compose.yml up -d
    if [$? -ne 0]; then 
        echo "-------gateway faild-------"
    else
        echo "-------gateway successed-------"
    fi
    
    echo "-------start services--------"
    docker-compose -f docker-compose-server.yml up -d
     if [$? -ne 0]; then 
        echo "-------services faild-------"
    else
        echo "-------services successed-------"
    fi
    echo "-------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-gateway
    restart: 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博客

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值