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
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:
@@ -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 }}
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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 Let’s 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`; Let’s-Encrypt-Daten liegen unter `traefik/letsencrypt`.
|
||||
|
||||
@@ -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}
|
||||
|
||||
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user