docs(Docker-Compose) Add docs vor Docker Compose Templates

This commit is contained in:
mfeix 2021-07-23 10:05:37 +02:00
parent 524c42bca6
commit caadb12077
No known key found for this signature in database
GPG Key ID: 04D016E104A25F03
4 changed files with 82 additions and 10 deletions

View File

@ -1,23 +1,27 @@
.deploy-docker-compose: .deploy-docker-compose:
image: docker/compose:alpine-1.29.1 image: docker/compose:alpine-1.29.1
stage: deploy stage: deploy
# variables: variables:
# SCP_DESTINATION: "path to destination where scp is copying files" SCP_DESTINATION: ""
# SCP_SOURCE: "path to local files" SCP_SOURCE: $CI_PROJECT_DIR
# COMPOSE_EXTRA_ARGS: "Extra arguments that will be passed to docker-compose" COMPOSE_EXTRA_ARGS: ""
# SSH_URL: "url to the SSH service" SSH_URL: ""
# SSH_USER: "username of the ssh connection" SSH_USER: ""
DOCKER_REGISTRY: "$CI_REGISTRY"
ENV_SETUP_FILE: "setup_env.sh"
rules: rules:
- when: manual - when: manual
# https://docs.gitlab.com/ee/ci/ssh_keys/ # https://docs.gitlab.com/ee/ci/ssh_keys/
before_script: before_script:
- if [ -f "setup_env.sh" ]; then chmod +x ./setup_env.sh; ./setup_env.sh; fi - if [ -f "$ENV_SETUP_FILE" ]; then chmod +x ./$ENV_SETUP_FILE; ./$ENV_SETUP_FILE; fi
- 'command -v ssh-agent >/dev/null || ( apk --update add openssh-client )' - 'command -v ssh-agent >/dev/null || ( apk --update add openssh-client )'
- eval $(ssh-agent -s) - eval $(ssh-agent -s)
- echo "$SSH_PRIVATE_KEY" | tr -d '\r' | ssh-add - - echo "$SSH_PRIVATE_KEY" | tr -d '\r' | ssh-add -
- mkdir -p ~/.ssh - mkdir -p ~/.ssh
- chmod 700 ~/.ssh - chmod 700 ~/.ssh
# Add keys to known hosts for Docker Compose
- ssh-keyscan $SSH_URL >> ~/.ssh/known_hosts - ssh-keyscan $SSH_URL >> ~/.ssh/known_hosts
- if [[ -n "$DOCKER_REGISTRY" ]]; then docker login $DOCKER_REGISTRY; fi
script: script:
- if [[ -n "$SCP_SOURCE" && -n "$SCP_DESTINATION" ]]; then scp -rp $SCP_SOURCE $SSH_USER@$SSH_URL:$SCP_DESTINATION; fi - if [[ -n "$SCP_SOURCE" && -n "$SCP_DESTINATION" ]]; then scp -rp $SCP_SOURCE $SSH_USER@$SSH_URL:$SCP_DESTINATION; fi
- DOCKER_HOST=ssh://$SSH_USER@$SSH_URL docker-compose $COMPOSE_EXTRA_ARGS up -d - DOCKER_HOST=ssh://$SSH_USER@$SSH_URL docker-compose $COMPOSE_EXTRA_ARGS up -d --remove-orphans

View File

@ -1,7 +1,5 @@
Validate Intern: Validate Intern:
image: docker/compose:alpine-1.29.1 image: docker/compose:alpine-1.29.1
stage: test stage: test
# variables:
# COMPOSE_EXTRA_ARGS:
script: script:
- docker-compose $COMPOSE_EXTRA_ARGS config - docker-compose $COMPOSE_EXTRA_ARGS config

View File

@ -0,0 +1,51 @@
:sourcedir: ../../../
= Docker-Compose-Deploy
Kopiert Daten mit hilfe von scp aus der Repo auf einen 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.
.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.
| -
|===
.container scan template
----
include::{sourcedir}/docker-compose-deploy.yml[]
----

View File

@ -0,0 +1,19 @@
:sourcedir: ../../../
= Docker-Compose-Validate
Validiert die semantische Korrektheit eines Docker-Compose files.
.Variables
|===
|Name |Description | Default Value
| COMPOSE_EXTRA_ARGS
| Weitere argumente die an Docker-Compose geschickt werden können.
| -
|===
.container scan template
----
include::{sourcedir}/docker-compose-validate.yml[]
----