ci: central services images veröffentlichen
All checks were successful
Build and Push Docker Images / build-backend (push) Successful in 33s
Build and Push Docker Images / build-frontend (push) Successful in 18s
Build and Push Docker Images / build-website (push) Successful in 16s
Build and Push Docker Images / build-central-services-api (push) Successful in 38s
Build and Push Docker Images / build-central-services-admin (push) Successful in 1m0s
Build and Push Docker Images / build-docs (push) Successful in 17s

This commit is contained in:
2026-08-02 17:23:30 +02:00
parent 3755b4136a
commit 28c5e8511f
5 changed files with 80 additions and 8 deletions

View File

@@ -167,3 +167,67 @@ jobs:
push: true
tags: ${{ steps.meta-website.outputs.tags }}
labels: ${{ steps.meta-website.outputs.labels }}
build-central-services-api:
runs-on: ubuntu-latest
steps:
- name: Check out repository code
uses: actions/checkout@v3
- name: Log in to Docker Registry
uses: docker/login-action@v2
with:
registry: ${{ env.REGISTRY_HOST }}
username: ${{ env.ACTOR }}
password: ${{ vars.CI_TOKEN }}
- name: Extract metadata for Central Services API
id: meta-central-api
uses: docker/metadata-action@v4
with:
images: ${{ env.REGISTRY_HOST }}/${{ env.IMAGE_NAME }}/central-services-api
tags: |
type=ref,event=branch
type=ref,event=tag
type=raw,value=latest,enable=${{ github.ref == 'refs/heads/main' }}
- name: Build and push Central Services API
uses: docker/build-push-action@v4
with:
context: ./push-server
file: ./push-server/apps/api/Dockerfile
push: true
tags: ${{ steps.meta-central-api.outputs.tags }}
labels: ${{ steps.meta-central-api.outputs.labels }}
build-central-services-admin:
runs-on: ubuntu-latest
steps:
- name: Check out repository code
uses: actions/checkout@v3
- name: Log in to Docker Registry
uses: docker/login-action@v2
with:
registry: ${{ env.REGISTRY_HOST }}
username: ${{ env.ACTOR }}
password: ${{ vars.CI_TOKEN }}
- name: Extract metadata for Central Services Admin
id: meta-central-admin
uses: docker/metadata-action@v4
with:
images: ${{ env.REGISTRY_HOST }}/${{ env.IMAGE_NAME }}/central-services-admin
tags: |
type=ref,event=branch
type=ref,event=tag
type=raw,value=latest,enable=${{ github.ref == 'refs/heads/main' }}
- name: Build and push Central Services Admin
uses: docker/build-push-action@v4
with:
context: ./push-server
file: ./push-server/apps/admin/Dockerfile
push: true
tags: ${{ steps.meta-central-admin.outputs.tags }}
labels: ${{ steps.meta-central-admin.outputs.labels }}

View File

@@ -3,6 +3,7 @@ CENTRAL_API_DOMAIN=services.fedeo.de
CENTRAL_ADMIN_DOMAIN=services-admin.fedeo.de
CONTACT_EMAIL=admin@example.com
POSTGRES_PASSWORD=change-me-postgres-password
FEDEO_CENTRAL_TAG=dev
DATABASE_URL=postgres://fedeo_push:fedeo_push@localhost:5442/fedeo_push
API_HOST=0.0.0.0
API_PORT=4020

View File

@@ -55,11 +55,21 @@ GOCARDLESS_SECRET_KEY=...
Ein Neustart nach Änderungen erfolgt mit:
```bash
docker compose pull
docker compose up -d
docker compose ps
docker compose logs -f api
```
API und Admin werden als fertige Images aus der FEDEO-Registry geladen:
```text
git.federspiel.tech/flfeders/fedeo/central-services-api:dev
git.federspiel.tech/flfeders/fedeo/central-services-admin:dev
```
Über `FEDEO_CENTRAL_TAG` kann in `.env` ein anderer Branch- oder Release-Tag gewählt werden. Auf dem Zielserver findet kein lokaler Image-Build statt.
Traefik leitet HTTP automatisch auf HTTPS um und bezieht Zertifikate per Lets Encrypt TLS-Challenge. PostgreSQL besitzt keinen Host-Port und ist nur im internen Docker-Netz erreichbar. API und Admin werden ebenfalls nicht direkt über Host-Ports veröffentlicht.
Der API-Container wendet Datenbankmigrationen vor jedem Start automatisch an. PostgreSQL-Daten liegen im Volume `push_postgres_data`; Lets-Encrypt-Daten liegen unter `traefik/letsencrypt`.

View File

@@ -46,9 +46,7 @@ services:
api:
restart: unless-stopped
build:
context: .
dockerfile: apps/api/Dockerfile
image: git.federspiel.tech/flfeders/fedeo/central-services-api:${FEDEO_CENTRAL_TAG:-dev}
env_file: ${CENTRAL_ENV_FILE:-.env}
environment:
DATABASE_URL: postgres://fedeo_push:${POSTGRES_PASSWORD:-fedeo_push}@postgres:5432/fedeo_push
@@ -73,9 +71,7 @@ services:
admin:
restart: unless-stopped
build:
context: .
dockerfile: apps/admin/Dockerfile
image: git.federspiel.tech/flfeders/fedeo/central-services-admin:${FEDEO_CENTRAL_TAG:-dev}
env_file: ${CENTRAL_ENV_FILE:-.env}
environment:
NUXT_PUBLIC_API_BASE: https://${CENTRAL_API_DOMAIN}

View File

@@ -70,8 +70,9 @@ echo "Die DNS-A/AAAA-Records beider Domains müssen auf diesen Server zeigen."
if [[ "${1:-}" == "--start" ]]; then
cd "$ROOT_DIR"
docker compose up -d --build
docker compose pull
docker compose up -d
docker compose ps
else
echo "Start: cd $ROOT_DIR && docker compose up -d --build"
echo "Start: cd $ROOT_DIR && docker compose pull && docker compose up -d"
fi