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 | 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 | 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 | 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 | 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 | 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 | 66 | \ No newline at end of file | ... | ... |