From 1e9957de911490b16a14950009cc1cf51620f366 Mon Sep 17 00:00:00 2001 From: mohamad Date: Sun, 1 Jun 2025 16:00:55 +0200 Subject: [PATCH] refactor: Enhance deployment workflow for backend and frontend images --- .gitea/workflows/deploy-prod.yml | 40 ++++++++++++++++++-- be/.dockerignore | 65 +++++++++----------------------- 2 files changed, 53 insertions(+), 52 deletions(-) diff --git a/.gitea/workflows/deploy-prod.yml b/.gitea/workflows/deploy-prod.yml index 28c16ab..70c8b47 100644 --- a/.gitea/workflows/deploy-prod.yml +++ b/.gitea/workflows/deploy-prod.yml @@ -51,8 +51,24 @@ jobs: echo "Using ACTOR: $ACTOR" echo "Using REPO_NAME: $REPO_NAME" - docker build -t git.vinylnostalgia.com/$ACTOR/$REPO_NAME-backend:latest ./be -f ./be/Dockerfile.prod - docker push git.vinylnostalgia.com/$ACTOR/$REPO_NAME-backend:latest + # Build with compression + docker build --compress -t git.vinylnostalgia.com/$ACTOR/$REPO_NAME-backend:latest ./be -f ./be/Dockerfile.prod + + # Save image to tar file + docker save git.vinylnostalgia.com/$ACTOR/$REPO_NAME-backend:latest > backend.tar + + # Split the tar file into smaller chunks (100MB each) + split -b 100M backend.tar backend.tar.part_ + + # Push each chunk + for chunk in backend.tar.part_*; do + docker load < "$chunk" + docker push git.vinylnostalgia.com/$ACTOR/$REPO_NAME-backend:latest + sleep 5 # Add delay between pushes + done + + # Cleanup + rm backend.tar backend.tar.part_* - name: Build and push frontend image env: @@ -77,5 +93,21 @@ jobs: echo "Using ACTOR: $ACTOR" echo "Using REPO_NAME: $REPO_NAME" - docker build -t git.vinylnostalgia.com/$ACTOR/$REPO_NAME-frontend:latest ./fe -f ./fe/Dockerfile.prod - docker push git.vinylnostalgia.com/$ACTOR/$REPO_NAME-frontend:latest \ No newline at end of file + # Build with compression + docker build --compress -t git.vinylnostalgia.com/$ACTOR/$REPO_NAME-frontend:latest ./fe -f ./fe/Dockerfile.prod + + # Save image to tar file + docker save git.vinylnostalgia.com/$ACTOR/$REPO_NAME-frontend:latest > frontend.tar + + # Split the tar file into smaller chunks (100MB each) + split -b 100M frontend.tar frontend.tar.part_ + + # Push each chunk + for chunk in frontend.tar.part_*; do + docker load < "$chunk" + docker push git.vinylnostalgia.com/$ACTOR/$REPO_NAME-frontend:latest + sleep 5 # Add delay between pushes + done + + # Cleanup + rm frontend.tar frontend.tar.part_* \ No newline at end of file diff --git a/be/.dockerignore b/be/.dockerignore index 3f544e2..405b1e0 100644 --- a/be/.dockerignore +++ b/be/.dockerignore @@ -1,61 +1,30 @@ -# Git +# Git files .git .gitignore -# Python +# Virtual environment +.venv +venv/ +env/ +ENV/ +*.env # Ignore local .env files within the backend directory if any + +# Python cache __pycache__/ *.py[cod] *$py.class -*.so -.Python -env/ -build/ -develop-eggs/ -dist/ -downloads/ -eggs/ -.eggs/ -lib/ -lib64/ -parts/ -sdist/ -var/ -*.egg-info/ -.installed.cfg -*.egg -# Virtual Environment -venv/ -ENV/ - -# IDE +# IDE files .idea/ .vscode/ -*.swp -*.swo -# Logs -logs/ -*.log - -# Local development -.env -.env.local -.env.*.local - -# Docker -Dockerfile* -docker-compose* -.dockerignore - -# Tests -tests/ -test/ +# Test artifacts .pytest_cache/ -.coverage htmlcov/ +.coverage* -# Documentation -docs/ -*.md -!README.md \ No newline at end of file +# Other build/temp files +*.egg-info/ +dist/ +build/ +*.db # e.g., sqlite temp dbs \ No newline at end of file -- 2.45.2