Use docker save/load for cross-build deploy from M1 to NAS
This commit is contained in:
@@ -19,7 +19,10 @@ jobs:
|
||||
- name: Checkout
|
||||
uses: actions/checkout@v4
|
||||
|
||||
- name: Pull and Deploy
|
||||
- name: Sync Dashboard Config
|
||||
run: |
|
||||
cp dashboard/docker-compose.yml /nas-dashboard/docker-compose.yml
|
||||
|
||||
- name: Deploy
|
||||
run: |
|
||||
docker compose -f /nas-dashboard/docker-compose.yml pull
|
||||
docker compose -f /nas-dashboard/docker-compose.yml up -d
|
||||
|
||||
+6
-7
@@ -1,19 +1,18 @@
|
||||
#!/bin/bash
|
||||
set -e
|
||||
|
||||
REGISTRY="100.78.131.124:3300"
|
||||
IMAGE="$REGISTRY/jimmy/nas-dashboard"
|
||||
IMAGE="nas-dashboard"
|
||||
TAG="${1:-latest}"
|
||||
DIR="$(cd "$(dirname "$0")" && pwd)"
|
||||
NAS="zjgump@100.78.131.124"
|
||||
|
||||
echo "Building linux/amd64 image..."
|
||||
docker buildx build --platform linux/amd64 -t "$IMAGE:$TAG" -t "$IMAGE:latest" "$DIR"
|
||||
docker buildx build --platform linux/amd64 -t "$IMAGE:$TAG" --load "$DIR"
|
||||
|
||||
echo "Pushing to registry..."
|
||||
docker push "$IMAGE:$TAG"
|
||||
[ "$TAG" != "latest" ] && docker push "$IMAGE:latest"
|
||||
echo "Transferring to NAS..."
|
||||
docker save "$IMAGE:$TAG" | ssh "$NAS" "export PATH=/usr/local/bin:\$PATH && docker load"
|
||||
|
||||
echo "Deploying on NAS..."
|
||||
ssh zjgump@100.78.131.124 "cd /volume1/docker/nas-dashboard && docker compose pull && docker compose up -d"
|
||||
ssh "$NAS" "export PATH=/usr/local/bin:\$PATH && cd /volume1/docker/nas-dashboard && docker compose up -d"
|
||||
|
||||
echo "Done."
|
||||
|
||||
@@ -20,7 +20,7 @@ services:
|
||||
|
||||
dashboard:
|
||||
# build: .
|
||||
image: 100.78.131.124:3300/jimmy/nas-dashboard:latest
|
||||
image: nas-dashboard:latest
|
||||
container_name: nas-dashboard
|
||||
restart: unless-stopped
|
||||
ports:
|
||||
|
||||
Reference in New Issue
Block a user