ci: add manual workflow to sync Docker images to remote server
Pulls all :latest images from the Gitea registry and pipes them via `docker save | ssh docker load` to the APP_HOST server. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
51
.gitea/workflows/sync-images.yml
Normal file
51
.gitea/workflows/sync-images.yml
Normal file
@@ -0,0 +1,51 @@
|
||||
name: Sync Images to Server
|
||||
|
||||
on:
|
||||
workflow_dispatch:
|
||||
|
||||
jobs:
|
||||
sync:
|
||||
runs-on: ubuntu-latest
|
||||
container:
|
||||
image: gitea.siegeln.net/cameleer/cameleer-docker-builder:1
|
||||
credentials:
|
||||
username: cameleer
|
||||
password: ${{ secrets.REGISTRY_TOKEN }}
|
||||
steps:
|
||||
- name: Install SSH client
|
||||
run: |
|
||||
if command -v apk >/dev/null 2>&1; then
|
||||
apk add --no-cache openssh-client
|
||||
elif command -v apt-get >/dev/null 2>&1; then
|
||||
apt-get update && apt-get install -y openssh-client
|
||||
fi
|
||||
|
||||
- name: Login to Gitea registry
|
||||
run: echo "${{ secrets.REGISTRY_TOKEN }}" | docker login gitea.siegeln.net -u cameleer --password-stdin
|
||||
|
||||
- name: Set up SSH key
|
||||
run: |
|
||||
mkdir -p ~/.ssh
|
||||
echo "${{ secrets.PRIVATE_SSH_KEY }}" > ~/.ssh/deploy_key
|
||||
chmod 600 ~/.ssh/deploy_key
|
||||
ssh-keyscan -p 22 "${{ secrets.APP_HOST }}" >> ~/.ssh/known_hosts 2>/dev/null
|
||||
|
||||
- name: Sync images to server
|
||||
run: |
|
||||
SSH_CMD="ssh -i ~/.ssh/deploy_key -p 22 root@${{ secrets.APP_HOST }}"
|
||||
|
||||
IMAGES=(
|
||||
gitea.siegeln.net/cameleer/cameleer-saas:latest
|
||||
gitea.siegeln.net/cameleer/cameleer-logto:latest
|
||||
gitea.siegeln.net/cameleer/cameleer-traefik:latest
|
||||
gitea.siegeln.net/cameleer/cameleer-postgres:latest
|
||||
gitea.siegeln.net/cameleer/cameleer-clickhouse:latest
|
||||
gitea.siegeln.net/cameleer/cameleer-runtime-base:latest
|
||||
)
|
||||
|
||||
for IMAGE in "${IMAGES[@]}"; do
|
||||
echo "::group::Syncing $IMAGE"
|
||||
docker pull "$IMAGE"
|
||||
docker save "$IMAGE" | $SSH_CMD "docker load"
|
||||
echo "::endgroup::"
|
||||
done
|
||||
Reference in New Issue
Block a user