本文主要是介绍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自动部署的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!