|
25 | 25 | script: | |
26 | 26 | IMAGE="${DOCKER_USERNAME}/docflow:latest" |
27 | 27 | |
| 28 | + # Configure Docker mirrors (only if not configured) |
| 29 | + if [ ! -f /etc/docker/daemon.json ] || ! grep -q "registry-mirrors" /etc/docker/daemon.json; then |
| 30 | + echo "⚙️ Configuring Docker mirrors..." |
| 31 | + sudo tee /etc/docker/daemon.json > /dev/null <<'EOF' |
| 32 | + { |
| 33 | + "registry-mirrors": [ |
| 34 | + "https://docker.m.daocloud.io", |
| 35 | + "https://docker.1panel.live", |
| 36 | + "https://hub.rat.dev" |
| 37 | + ] |
| 38 | + } |
| 39 | + EOF |
| 40 | + sudo systemctl daemon-reload |
| 41 | + sudo systemctl restart docker |
| 42 | + sleep 5 |
| 43 | + fi |
| 44 | + |
| 45 | + # Login to Docker Hub |
| 46 | + echo "🔐 Logging in to Docker Hub..." |
| 47 | + echo "${DOCKER_PASSWORD}" | docker login -u "${DOCKER_USERNAME}" --password-stdin || { |
| 48 | + echo "❌ Docker login failed" |
| 49 | + exit 1 |
| 50 | + } |
| 51 | + |
28 | 52 | # Get remote image digest |
29 | 53 | echo "🔍 Checking for updates..." |
30 | | - REMOTE_DIGEST=$(docker manifest inspect $IMAGE 2>/dev/null | grep -m1 '"digest"' | cut -d'"' -f4) |
| 54 | + REMOTE_DIGEST=$(docker manifest inspect "$IMAGE" 2>/dev/null | grep -m1 '"digest"' | cut -d'"' -f4) |
31 | 55 | |
32 | 56 | if [ -z "$REMOTE_DIGEST" ]; then |
33 | 57 | echo "❌ Failed to fetch remote image info" |
|
45 | 69 | |
46 | 70 | echo "🆕 New version available, deploying..." |
47 | 71 | |
48 | | - # Configure Docker mirrors (only if not configured) |
49 | | - if [ ! -f /etc/docker/daemon.json ] || ! grep -q "registry-mirrors" /etc/docker/daemon.json; then |
50 | | - sudo tee /etc/docker/daemon.json > /dev/null <<'EOF' |
51 | | - { |
52 | | - "registry-mirrors": [ |
53 | | - "https://docker.m.daocloud.io", |
54 | | - "https://docker.1panel.live", |
55 | | - "https://hub.rat.dev" |
56 | | - ] |
57 | | - } |
58 | | - EOF |
59 | | - sudo systemctl daemon-reload |
60 | | - sudo systemctl restart docker |
61 | | - sleep 5 |
62 | | - fi |
63 | | - |
64 | 72 | # Pull new image |
65 | | - docker pull $IMAGE || exit 1 |
| 73 | + docker pull "$IMAGE" || exit 1 |
66 | 74 | |
67 | 75 | # Stop and remove old container |
68 | 76 | docker stop docflow 2>/dev/null || true |
|
74 | 82 | --restart unless-stopped \ |
75 | 83 | -p 3000:3000 \ |
76 | 84 | -e NODE_ENV=production \ |
77 | | - $IMAGE) |
| 85 | + "$IMAGE") |
78 | 86 | |
79 | 87 | if [ -z "$CONTAINER_ID" ]; then |
80 | 88 | echo "❌ Failed to start container" |
|
0 commit comments