:sourcedir: ../../../../templates = Docker-Compose Template .Provided Templates: |=== |Name |Description |.docker-compose-deploy | Executes Docker Compose against a remote maschine. |.docker-compose-validate | Validates the syntactic correctness of your compose files. Still can have execution Problems. |=== Copy files with scp onto from your Repo to the Remote system. Then executes Docker-compose over a SSH connection. For this SSH connection you have to Provide a SSH Key under a CI-CD-Variable with the name $SSH_PRIVATE_KEY. If you already have a different $SSH_PRIVATE_KEY you can overwrite the Variable SSH_PRIVATE_KEY_DEPLOY. To Parametrise the Docker-Compose File you can use a .env File. The .env File should not contain any Secrets. For this reason you can create a .env file dynamically. To generate a .env file you can provide a script under the path ENV_SETUP_FILE. .Beispiel für ein setup_env.sh ---- #!/bin/sh #Prints all Enviroments into the .env File. printenv >> .env #to set a diffrent Project Prefix use this ENV echo COMPOSE_PROJECT_NAME=project-prefix >>.env #Secrets #Some Secret is a Variable within the gitlab CI Variable echo SOME_PASSWORD="$SOME_PASSWORD" >>.env ---- .Variables |=== |Name |Description | Default Value | SSH_PRIVATE_KEY_DEPLOY | Private key to access remote system. | $SSH_PRIVATE_KEY (In den CI-CD variablen) | SSH_URL | URL of the remote server. | - | SSH_PORT | SSH port of the remote server. | 22 | SSH_USER | The user that is used to login into the remote maschine. | - | DOCKER_REGISTRY | The Container Registry that will be used to pull images. | "$CI_REGISTRY" | ENV_SETUP_FILE | If you want to use a .env file, this skript can be used to create one. Secrets should not be stored within your repository. Use the CI-CD Variables in the setting page. | "setup_env.sh" | SCP_DESTINATION | Target path for scp to push files to. | - | SCP_SOURCE | Path you want to copy to the remote System. | $CI_PROJECT_DIR | COMPOSE_EXTRA_ARGS | Additional arguments you want to send to Docker Compose. For example multiple `-f compose.file.extra` definitions. | - |=== .Docker Templates [source,yaml] ---- include::{sourcedir}/IaC/docker-compose.gitlab-ci.yml[] ----