feat: add multi-environment deployment with Gitea Actions & Dokploy

- Update Gitea workflow to build dev/staging/main branches
- Create environment-specific docker-compose files
  - docker-compose.dev.yml (pulls dev image)
  - docker-compose.staging.yml (pulls staging image)
  - docker-compose.prod.yml (pulls latest image)
  - docker-compose.local.yml (builds locally for development)
- Remove generic docker-compose.yml (replaced by env-specific files)
- Update .dockerignore to exclude docs/ and .gitea/ from production images
- Add comprehensive deployment guide (docs/DOKPLOY_DEPLOYMENT.md)

Image Tags:
- dev branch → :dev
- staging branch → :staging
- main branch → :latest
- All branches → :{branch}-{sha}

Benefits:
- Separate deployments for dev/staging/prod
- Automated CI/CD via Gitea Actions + Dokploy webhooks
- Leaner production images (excludes dev tools/docs)
- Local development support (docker-compose.local.yml)
- Rollback support via SHA-tagged images
This commit is contained in:
Oussama Douhou
2026-01-13 11:51:48 +01:00
parent 55378f74e0
commit 10ed0e46d8
7 changed files with 531 additions and 6 deletions

View File

@@ -3,10 +3,14 @@ name: Build and Push Docker Image
on:
push:
branches:
- dev
- staging
- main
paths:
- 'src/**'
- 'client/**'
- 'Dockerfile'
- 'package.json'
- '.gitea/workflows/**'
workflow_dispatch:
@@ -41,8 +45,10 @@ jobs:
with:
images: ${{ env.REGISTRY }}/${{ env.IMAGE_NAME }}
tags: |
type=raw,value=latest,enable={{is_default_branch}}
type=sha,prefix=
type=raw,value=latest,enable=${{ github.ref == 'refs/heads/main' }}
type=raw,value=dev,enable=${{ github.ref == 'refs/heads/dev' }}
type=raw,value=staging,enable=${{ github.ref == 'refs/heads/staging' }}
type=sha,prefix={{branch}}-
- name: Build and push Docker image
uses: docker/build-push-action@v5