From 1c27b689654ac3887b81b930c0dedda0f3005c70 Mon Sep 17 00:00:00 2001 From: sokol Date: Fri, 20 Feb 2026 10:33:17 +0300 Subject: [PATCH] feat: build Docker image locally without pushing to registry --- .gitea/workflows/README.md | 28 ++++++---------------- .gitea/workflows/docker-build.yml | 40 +++++++++++++------------------ 2 files changed, 23 insertions(+), 45 deletions(-) diff --git a/.gitea/workflows/README.md b/.gitea/workflows/README.md index b69ddd3..274b1aa 100644 --- a/.gitea/workflows/README.md +++ b/.gitea/workflows/README.md @@ -20,15 +20,13 @@ **Jobs:** - Build React application -- Build Docker image -- Push to Docker registry +- Build Docker image locally +- Save image as tarball artifact +- Upload artifact for download (30 days retention) -**Required Secrets:** -- `DOCKER_USERNAME` - Docker registry username -- `DOCKER_PASSWORD` - Docker registry password/token - -**Optional Variables:** -- `DOCKER_REGISTRY` - Registry URL (default: `docker.io`) +**Output:** +- Docker image artifact: `configucci.tar` +- Can be downloaded and loaded with: `docker load -i configucci.tar` ### 3. Deploy (`deploy.yml`) **Triggers:** Push to `main` branch @@ -59,12 +57,6 @@ ENABLED = true ### 2. Configure Secrets Go to your repository → Settings → Secrets and add: -**For Docker Build:** -``` -DOCKER_USERNAME=your-username -DOCKER_PASSWORD=your-password-or-token -``` - **For Deployment:** ``` DEPLOY_HOST=your-server.com @@ -73,12 +65,7 @@ DEPLOY_KEY= DEPLOY_PORT=22 ``` -### 3. Configure Variables (Optional) -Go to your repository → Settings → Variables and add: - -``` -DOCKER_REGISTRY=registry.example.com -``` +**No Docker secrets needed** - images are built locally and downloaded as artifacts! ## Workflow Files Location `.gitea/workflows/` @@ -107,6 +94,5 @@ Add these to your README.md: ```markdown [![CI](https://git.six83.ru/ssa/configucci/actions/workflows/ci.yml/badge.svg)](https://git.six83.ru/ssa/configucci/actions/workflows/ci.yml) -[![Docker Build](https://git.six83.ru/ssa/configucci/actions/workflows/docker-build.yml/badge.svg)](https://git.six83.ru/ssa/configucci/actions/workflows/docker-build.yml) [![Deploy](https://git.six83.ru/ssa/configucci/actions/workflows/deploy.yml/badge.svg)](https://git.six83.ru/ssa/configucci/actions/workflows/deploy.yml) ``` diff --git a/.gitea/workflows/docker-build.yml b/.gitea/workflows/docker-build.yml index ab7594b..2284bcf 100644 --- a/.gitea/workflows/docker-build.yml +++ b/.gitea/workflows/docker-build.yml @@ -1,4 +1,4 @@ -name: Build and Push Docker Image +name: Build Docker Image on: push: @@ -8,7 +8,7 @@ on: - main jobs: - build-and-push: + build: runs-on: ubuntu-latest steps: @@ -30,30 +30,22 @@ jobs: - name: Set up Docker Buildx uses: docker/setup-buildx-action@v3 - - name: Login to Docker Registry - uses: docker/login-action@v3 - with: - registry: ${{ vars.DOCKER_REGISTRY || 'docker.io' }} - username: ${{ secrets.DOCKER_USERNAME }} - password: ${{ secrets.DOCKER_PASSWORD }} - - - name: Extract metadata - id: meta - uses: docker/metadata-action@v5 - with: - images: ${{ vars.DOCKER_REGISTRY }}/${{ github.repository }} - tags: | - type=ref,event=branch - type=semver,pattern={{version}} - type=semver,pattern={{major}}.{{minor}} - type=sha,prefix=sha- - - - name: Build and push Docker image + - name: Build Docker image uses: docker/build-push-action@v5 with: context: . - push: true - tags: ${{ steps.meta.outputs.tags }} - labels: ${{ steps.meta.outputs.labels }} + push: false + load: true + tags: configucci:latest cache-from: type=gha cache-to: type=gha,mode=max + + - name: Save Docker image as tarball + run: docker save configucci:latest -o configucci.tar + + - name: Upload Docker image artifact + uses: actions/upload-artifact@v4 + with: + name: docker-image + path: configucci.tar + retention-days: 30