:sourcedir: ../../../ = Docker-Compose-Deploy Kopiert Daten mithilfe von scp aus dem Repo auf ein Deployment-System. Dort wird über SSH Docker-compose up ausgeführt. Für die SSH Verbindung muss ein Private-Key in den CI-CD variablen hinter dem Namen $SSH_PRIVATE_KEY abgelegt werden. Um die Compose-Files zu parametrisieren kann ein .env File benutzt werden. Dieses sollte mit einem Skript das hinter der variable ENV_SETUP_FILE hinterlegt ist erstellt werden. .env File sollten nicht in der Repo liegen da keine Passwörter in der Repo liegen sollten. .Beispiel für ein setup_env.sh ---- #!/bin/sh echo COMPOSE_PROJECT_NAME=project-prefix >>.env #Secrets echo SOME_PASSWORD="$SOME_PASSWORD" >>.env ---- .Variables |=== |Name |Description | Default Value | SSH_PRIVATE_KEY (In den CI-CD variablen) | Private key der zugriff auf den Deployment Server hat. | - | SSH_URL | URL des Servers auf den Docker-Compose ausgeführt werden soll. | - | SSH_USER | Der Passende SSH User zu der SSH Verbindung. | - | DOCKER_REGISTRY | Die Docker Registry die benutzt werden soll um Images zu pullen. | "$CI_REGISTRY" | ENV_SETUP_FILE | Falls ein .env file benutzt werden soll kann es mit einem sh script erstellt werden. Secrets sollten nicht in der Repository liegen sondern in den CI-CD variablen der Repository settings. | "setup_env.sh" | SCP_DESTINATION | Ziel Pfad wo Daten mit SCP hin kopiert werden sollen. | - | SCP_SOURCE | Pfad zu den daten die mit hilfe von SCP kopiert werden sollen. | $CI_PROJECT_DIR | COMPOSE_EXTRA_ARGS | Weitere argumente die an Docker-Compose geschickt werden können. | - |=== .Docker compose deploy [source,yaml] ---- include::{sourcedir}/docker-compose-deploy.gitlab-ci.yml[] ----