Commit 570beaf02d2e57850dc914a92f6da8861f059ac8
1 parent
443f5c34
feat: update
Showing
1 changed file
with
52 additions
and
15 deletions
deploy/prod2.sh
1 | +#!/bin/bash | ||
1 | # 变量定义 | 2 | # 变量定义 |
2 | -$LAST_TAG = "1.0.6" | ||
3 | -$TARGER_PATH="/web/canrud-outside-nuxt-front" | ||
4 | -$IMAGE_NAME = "canrud-outside-front" | ||
5 | -$TAG = "1.0.7" | ||
6 | -$TAR_FILE = "${TARGER_PATH}/${IMAGE_NAME}_${TAG}.tar" | 3 | +LAST_TAG="1.0.8" |
4 | +TAG="1.0.9" | ||
5 | +TARGET_PATH="/root/web/canrud-outside-nuxt-front" | ||
6 | +DOCKERFILE_PATH="/root/web/canrud-outside-nuxt-front/canrud-nuxt-front" | ||
7 | +IMAGE_NAME="canrud-outside-front" | ||
8 | +TAR_FILE="${TARGET_PATH}/${IMAGE_NAME}_${TAG}.tar" | ||
9 | +DOCKER_COMPOSE_FILE="${TARGET_PATH}/docker-compose.yml" | ||
7 | 10 | ||
11 | +# 定义错误处理函数 | ||
12 | +handle_error() { | ||
13 | + echo "Error occurred at step: $1. Exiting." | ||
14 | + exit 1 | ||
15 | +} | ||
16 | + | ||
17 | +# 步骤-1:修改 docker-compose.yml 文件 | ||
18 | +echo "Updating docker-compose.yml file..." | ||
19 | +cat > "$DOCKER_COMPOSE_FILE" <<EOL | ||
20 | +version: '3.8' | ||
21 | +services: | ||
22 | + canrud-outside-front: | ||
23 | + image: ${IMAGE_NAME}:${TAG} # 使用指定的镜像和标签 | ||
24 | + container_name: canrud-outside-front | ||
25 | + ports: | ||
26 | + - "3000:3000" # 映射端口 | ||
27 | + environment: | ||
28 | + - BASE_URL=http://47.89.254.121:8002/shop | ||
29 | + restart: unless-stopped # 如果容器退出,自动重启容器,除非是用户手动停止 | ||
30 | +EOL | ||
31 | + | ||
32 | +# 检查文件是否已更新 | ||
33 | +if [ $? -ne 0 ]; then | ||
34 | + handle_error "Update docker-compose.yml" | ||
35 | +fi | ||
36 | + | ||
37 | +# 步骤0:拉取代码 | ||
38 | +echo "Pulling latest code..." | ||
39 | +cd "${DOCKERFILE_PATH}" || handle_error "Change directory to ${DOCKERFILE_PATH}" | ||
40 | +git pull || handle_error "Git pull" | ||
8 | 41 | ||
9 | # 步骤1: 构建 Docker 镜像 | 42 | # 步骤1: 构建 Docker 镜像 |
10 | -Write-Output "Building Docker image..." | ||
11 | -docker build -t ${IMAGE_NAME}:${TAG} . | 43 | +echo "Building Docker image..." |
44 | +docker build -t ${IMAGE_NAME}:${TAG} . || handle_error "Docker build" | ||
12 | 45 | ||
13 | # 步骤2: 将 Docker 镜像导出为 tar 文件 | 46 | # 步骤2: 将 Docker 镜像导出为 tar 文件 |
14 | -Write-Output "Saving Docker image to tar file..." | ||
15 | -docker save -o ${TAR_FILE} ${IMAGE_NAME}:${TAG} | 47 | +echo "Saving Docker image to tar file..." |
48 | +docker save -o ${TAR_FILE} ${IMAGE_NAME}:${TAG} || handle_error "Docker save" | ||
16 | 49 | ||
17 | # 步骤3:加载镜像 | 50 | # 步骤3:加载镜像 |
18 | -docker load -i "$TAR_FILE" | 51 | +echo "Loading Docker image from tar file..." |
52 | +docker load -i "$TAR_FILE" || handle_error "Docker load" | ||
19 | 53 | ||
20 | # 步骤4:删除当前运行的容器 | 54 | # 步骤4:删除当前运行的容器 |
21 | -docker stop "canrud-outside-front:${LAST_TAG}" | ||
22 | -docker rm "canrud-outside-front:${LAST_TAG}" | 55 | +echo "Stopping and removing the current container..." |
56 | +docker stop canrud-outside-front || handle_error "Docker stop" | ||
57 | +docker rm canrud-outside-front || handle_error "Docker rm" | ||
23 | 58 | ||
24 | # 步骤5:运行当前镜像 | 59 | # 步骤5:运行当前镜像 |
25 | -cd "${TARGER_PATH}" | ||
26 | -docker-compose up -d | 60 | +echo "Starting container with the new image..." |
61 | +cd "${TARGET_PATH}" || handle_error "Change directory to ${TARGET_PATH}" | ||
62 | +docker-compose up -d || handle_error "Docker-compose up" | ||
63 | + | ||
64 | +echo "All tasks completed successfully!" | ||
27 | 65 | ||
28 | -Write-Output "All tasks completed!" | ||
29 | \ No newline at end of file | 66 | \ No newline at end of file |