Skip to main content

qianwen

Qianwen

1.build.sh

#!/bin/bash

# 指定需要执行git pull操作的目录
DIRECTORY="/www/qianwen"
IMAGENAME="qianwen-server"
IMAGETAG="latest"
IMAGEREPO="registry.cn-beijing.aliyuncs.com/qianwenbj/"
IMAGEWEB="qianwen-web"

# 进入git仓库目录
cd "$DIRECTORY" || exit

# 输出执行git pull的信息
echo "执行git pull更新代码..."

# 执行git pull命令,并捕获输出
OUTPUT=$(git pull 2>&1)

# 输出git pull的结果
echo "$OUTPUT"

# 检查git pull是否成功
if echo "$OUTPUT" | grep -q 'Already up to date.'; then
echo "仓库已是最新,无需更新。"
elif echo "$OUTPUT" | grep -q 'fatal'; then
echo "git pull过程中出现错误,请检查。"
else
echo "代码更新成功。"
cd "server" || exit
pwd
# 构建Docker镜像并记录输出
docker build -f Dockerfile -t $IMAGENAME:$IMAGETAG . | tee buildserver.log
# 提取镜像ID
IMAGE_ID=$(grep "Successfully built" buildserver.log | awk '{print $3}')
echo "镜像ID: $IMAGE_ID tag: $IMAGEREPO$IMAGENAME:$IMAGETAG"
# 打tag
docker tag $IMAGE_ID $IMAGEREPO$IMAGENAME:$IMAGETAG
# push 仓库
docker push $IMAGEREPO$IMAGENAME:$IMAGETAG

cd "../web" || exit
pwd
# 构建Docker镜像并记录输出
docker build -f Dockerfile -t $IMAGEWEB:$IMAGETAG . | tee buildweb.log
# 提取镜像ID
WEB_IMAGE_ID=$(grep "Successfully built" buildweb.log | awk '{print $3}')
echo "镜像ID: $WEB_IMAGE_ID tag: $IMAGEREPO$IMAGEWEB:$IMAGETAG"
# 打tag
docker tag $WEB_IMAGE_ID $IMAGEREPO$IMAGEWEB:$IMAGETAG
# push 仓库
docker push $IMAGEREPO$IMAGEWEB:$IMAGETAG


# 清理没用的镜像
echo "y" | docker system prune
## docker build -f Dockerfile -t qianwen-server:latest . 2>&1
# 构建Docker镜像并获取镜像ID
## IMAGE_ID=$(docker build -f Dockerfile -t qianwen-server:latest . | grep "Successfully built" | awk '{print $3}')
# 输出镜像ID
## echo "Built image ID: ${IMAGE_ID}"
fi

ehco "success"

2.deploy.sh

#!/bin/bash

DIRECTORY="/www/wwwroot/qianwentest"
IMAGENAME="qianwen-server"
IMAGETAG="latest"
IMAGEWEB="qianwen-wed"
# 进入目录
cd "$DIRECTORY" || exit
pwd
# 停掉相关容器
docker-compose stop
# 列出docker镜像
docker images
# 获取server镜像ID
SERVER_IMAGE_ID=$(docker images | grep $IMAGENAME | awk '{print $3}')
# 获取web镜像ID
WEB_IMAGE_ID=$(docker images | grep $IMAGEWEB | awk '{print $3}')
# 输出获取到的镜像ID
echo "imageID $SERVER_IMAGE_ID $WEB_IMAGE_ID"
# 删除相关镜像
docker rmi -f $SERVER_IMAGE_ID $WEB_IMAGE_ID
# 再列出docker镜像
docker images
# 重新build并运行
docker-compose up --build -d

3.docker-compose

version: "3"

# 声明一个名为network的networks,subnet为network的子网地址,默认网关是177.7.0.1
networks:
qianwen.net:
driver: bridge

# 设置mysql,redis持久化保存
volumes:
mysql:
redis:

services:
web:
image: registry.cn-beijing.aliyuncs.com/qianwenbj/qianwen-wed:latest
container_name: qianwen-web
restart: always
ports:
- '9800:9800'
privileged: true
environment:
- TZ=Asia/Shanghai
volumes:
- ./my.conf:/etc/nginx/conf.d/my.conf
- ./nginx.conf:/etc/nginx/nginx.conf
depends_on:
- server
command: [ 'nginx-debug', '-g', 'daemon off;' ]
networks:
- qianwen.net


server:
image: registry.cn-beijing.aliyuncs.com/qianwenbj/qianwen-server:latest
container_name: qianwen-server
restart: always
ports:
- '9801:9801'
privileged: true
environment:
- TZ=Asia/Shanghai
volumes:
- ./config.docker.yaml:/go/src/github.com/flipped-aurora/gin-vue-admin/server/config.docker.yaml
- ./uploads/file:/go/src/github.com/flipped-aurora/gin-vue-admin/server/uploads/file
- ./log:/go/src/github.com/flipped-aurora/gin-vue-admin/server/log
- /etc/timezone:/etc/timezone
- /etc/localtime:/etc/localtime
depends_on:
- redis
links:
- redis
networks:
- qianwen.net

redis:
image: registry.cn-beijing.aliyuncs.com/qianwenbj/redis:latest
container_name: qianwen-redis # 容器名
restart: always
ports:
- '16379:6379'
privileged: true
environment:
- TZ=Asia/Shanghai
volumes:
- redis:/data
networks:
- qianwen.net