feat: Add Gitea Actions CI/CD for Docker image build
Some checks failed
Build and Push Docker Image / build (push) Failing after 2m49s

- Add .gitea/workflows/build.yml for automated builds on tag push
- Update docker-compose.yml to pull from Gitea Registry
- Add docker-compose.build.yml for local development builds

Build triggers on tags matching 'v*' (e.g., v1.0.0)
Images pushed to gitea.likegears.com/likegears/material_texture

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
This commit is contained in:
likegears
2025-12-11 17:01:38 +08:00
parent 85ba15c564
commit e110b25f3c
3 changed files with 86 additions and 3 deletions

View File

@@ -0,0 +1,38 @@
name: Build and Push Docker Image
on:
push:
tags:
- 'v*'
jobs:
build:
runs-on: ubuntu-latest
container:
image: catthehacker/ubuntu:act-latest
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v3
- name: Login to Gitea Registry
uses: docker/login-action@v3
with:
registry: gitea.likegears.com
username: ${{ gitea.actor }}
password: ${{ secrets.REGISTRY_TOKEN }}
- name: Extract version from tag
id: version
run: echo "VERSION=${GITHUB_REF#refs/tags/v}" >> $GITHUB_OUTPUT
- name: Build and Push
uses: docker/build-push-action@v5
with:
context: .
push: true
tags: |
gitea.likegears.com/likegears/material_texture:${{ steps.version.outputs.VERSION }}
gitea.likegears.com/likegears/material_texture:latest

47
docker-compose.build.yml Normal file
View File

@@ -0,0 +1,47 @@
# 本地开发构建配置
# 使用方式: docker compose -f docker-compose.build.yml up -d --build
services:
app:
build:
context: .
dockerfile: Dockerfile
ports:
- "8081:8080"
environment:
- SERVER_PORT=8080
- DATABASE_URL=postgres://postgres:postgres@db:5432/material_db?sslmode=disable
- API_TOKEN=${API_TOKEN:-seatons3d}
depends_on:
db:
condition: service_healthy
restart: unless-stopped
networks:
- material-network
db:
image: postgres:15-alpine
environment:
- POSTGRES_USER=postgres
- POSTGRES_PASSWORD=postgres
- POSTGRES_DB=material_db
volumes:
- postgres_data:/var/lib/postgresql/data
- ./migrations:/docker-entrypoint-initdb.d:ro
ports:
- "5433:5432"
healthcheck:
test: ["CMD-SHELL", "pg_isready -U postgres"]
interval: 5s
timeout: 5s
retries: 5
restart: unless-stopped
networks:
- material-network
volumes:
postgres_data:
networks:
material-network:
driver: bridge

View File

@@ -1,8 +1,6 @@
services: services:
app: app:
build: image: gitea.likegears.com/likegears/material_texture:latest
context: .
dockerfile: Dockerfile
ports: ports:
- "8081:8080" - "8081:8080"
environment: environment: