diff --git a/.github/workflows/docker-ghcr.yml b/.github/workflows/docker-ghcr.yml index 49109a1..b1fa4db 100644 --- a/.github/workflows/docker-ghcr.yml +++ b/.github/workflows/docker-ghcr.yml @@ -14,9 +14,11 @@ jobs: runs-on: ubuntu-latest steps: + # Checkout code - name: Checkout code uses: actions/checkout@v4.2.2 + # Log in to GHCR - name: Log in to GitHub Container Registry uses: docker/login-action@v3.5.0 with: @@ -24,13 +26,22 @@ jobs: username: ${{ github.actor }} password: ${{ secrets.GITHUB_TOKEN }} + # Set up Docker Buildx (needed for ARM64 cross-build) - name: Set up Docker Buildx uses: docker/setup-buildx-action@v3.11.1 + # Build and push Docker image with caching - name: Build and push ARM64 image uses: docker/build-push-action@v6.18.0 with: context: . push: true platforms: linux/arm64 - tags: ghcr.io/stefbuwalda/cal_counter:arm64,ghcr.io/stefbuwalda/cal_counter:latest + tags: | + ghcr.io/stefbuwalda/cal_counter:arm64 + ghcr.io/stefbuwalda/cal_counter:latest + cache-from: type=registry,ref=ghcr.io/stefbuwalda/cal_counter:cache + cache-to: type=registry,ref=ghcr.io/stefbuwalda/cal_counter:cache,mode=max + build-args: | + PIP_NO_CACHE_DIR=1 + diff --git a/Dockerfile b/Dockerfile index 4f8bceb..58208d9 100644 --- a/Dockerfile +++ b/Dockerfile @@ -2,8 +2,13 @@ FROM python:3.12-slim # Everything will be done in /app (Not in the main OS Image) WORKDIR /app -COPY . . + +COPY requirements.txt . + RUN pip install --no-cache-dir -r requirements.txt + +COPY . . + RUN chmod +x ./entrypoint.sh ENV FLASK_APP=app.py