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
|
push: true
|
||||||
tags: ${{ steps.meta-website.outputs.tags }}
|
tags: ${{ steps.meta-website.outputs.tags }}
|
||||||
labels: ${{ steps.meta-website.outputs.labels }}
|
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
|
CENTRAL_ADMIN_DOMAIN=services-admin.fedeo.de
|
||||||
CONTACT_EMAIL=admin@example.com
|
CONTACT_EMAIL=admin@example.com
|
||||||
POSTGRES_PASSWORD=change-me-postgres-password
|
POSTGRES_PASSWORD=change-me-postgres-password
|
||||||
|
FEDEO_CENTRAL_TAG=dev
|
||||||
DATABASE_URL=postgres://fedeo_push:fedeo_push@localhost:5442/fedeo_push
|
DATABASE_URL=postgres://fedeo_push:fedeo_push@localhost:5442/fedeo_push
|
||||||
API_HOST=0.0.0.0
|
API_HOST=0.0.0.0
|
||||||
API_PORT=4020
|
API_PORT=4020
|
||||||
|
|||||||
@@ -55,11 +55,21 @@ GOCARDLESS_SECRET_KEY=...
|
|||||||
Ein Neustart nach Änderungen erfolgt mit:
|
Ein Neustart nach Änderungen erfolgt mit:
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
|
docker compose pull
|
||||||
docker compose up -d
|
docker compose up -d
|
||||||
docker compose ps
|
docker compose ps
|
||||||
docker compose logs -f api
|
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.
|
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`.
|
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:
|
api:
|
||||||
restart: unless-stopped
|
restart: unless-stopped
|
||||||
build:
|
image: git.federspiel.tech/flfeders/fedeo/central-services-api:${FEDEO_CENTRAL_TAG:-dev}
|
||||||
context: .
|
|
||||||
dockerfile: apps/api/Dockerfile
|
|
||||||
env_file: ${CENTRAL_ENV_FILE:-.env}
|
env_file: ${CENTRAL_ENV_FILE:-.env}
|
||||||
environment:
|
environment:
|
||||||
DATABASE_URL: postgres://fedeo_push:${POSTGRES_PASSWORD:-fedeo_push}@postgres:5432/fedeo_push
|
DATABASE_URL: postgres://fedeo_push:${POSTGRES_PASSWORD:-fedeo_push}@postgres:5432/fedeo_push
|
||||||
@@ -73,9 +71,7 @@ services:
|
|||||||
|
|
||||||
admin:
|
admin:
|
||||||
restart: unless-stopped
|
restart: unless-stopped
|
||||||
build:
|
image: git.federspiel.tech/flfeders/fedeo/central-services-admin:${FEDEO_CENTRAL_TAG:-dev}
|
||||||
context: .
|
|
||||||
dockerfile: apps/admin/Dockerfile
|
|
||||||
env_file: ${CENTRAL_ENV_FILE:-.env}
|
env_file: ${CENTRAL_ENV_FILE:-.env}
|
||||||
environment:
|
environment:
|
||||||
NUXT_PUBLIC_API_BASE: https://${CENTRAL_API_DOMAIN}
|
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
|
if [[ "${1:-}" == "--start" ]]; then
|
||||||
cd "$ROOT_DIR"
|
cd "$ROOT_DIR"
|
||||||
docker compose up -d --build
|
docker compose pull
|
||||||
|
docker compose up -d
|
||||||
docker compose ps
|
docker compose ps
|
||||||
else
|
else
|
||||||
echo "Start: cd $ROOT_DIR && docker compose up -d --build"
|
echo "Start: cd $ROOT_DIR && docker compose pull && docker compose up -d"
|
||||||
fi
|
fi
|
||||||
|
|||||||
Reference in New Issue
Block a user