From caadb120773622e8160fbc7f0b58d043f9fb4bfe Mon Sep 17 00:00:00 2001 From: mfeix Date: Fri, 23 Jul 2021 10:05:37 +0200 Subject: [PATCH] docs(Docker-Compose) Add docs vor Docker Compose Templates --- docker-compose-deploy.gitlab-ci.yml | 20 +++++--- docker-compose-validate.gitlab-ci.yml | 2 - .../templates/docker-compose-deploy.adoc | 51 +++++++++++++++++++ .../templates/docker-compose-validate.adoc | 19 +++++++ 4 files changed, 82 insertions(+), 10 deletions(-) create mode 100644 documentation/chapters/templates/docker-compose-deploy.adoc create mode 100644 documentation/chapters/templates/docker-compose-validate.adoc diff --git a/docker-compose-deploy.gitlab-ci.yml b/docker-compose-deploy.gitlab-ci.yml index fb05d96..78343c4 100644 --- a/docker-compose-deploy.gitlab-ci.yml +++ b/docker-compose-deploy.gitlab-ci.yml @@ -1,23 +1,27 @@ .deploy-docker-compose: image: docker/compose:alpine-1.29.1 stage: deploy - # variables: - # SCP_DESTINATION: "path to destination where scp is copying files" - # SCP_SOURCE: "path to local files" - # COMPOSE_EXTRA_ARGS: "Extra arguments that will be passed to docker-compose" - # SSH_URL: "url to the SSH service" - # SSH_USER: "username of the ssh connection" + variables: + SCP_DESTINATION: "" + SCP_SOURCE: $CI_PROJECT_DIR + COMPOSE_EXTRA_ARGS: "" + SSH_URL: "" + SSH_USER: "" + DOCKER_REGISTRY: "$CI_REGISTRY" + ENV_SETUP_FILE: "setup_env.sh" rules: - when: manual # https://docs.gitlab.com/ee/ci/ssh_keys/ 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 )' - eval $(ssh-agent -s) - echo "$SSH_PRIVATE_KEY" | tr -d '\r' | ssh-add - - mkdir -p ~/.ssh - chmod 700 ~/.ssh + # Add keys to known hosts for Docker Compose - ssh-keyscan $SSH_URL >> ~/.ssh/known_hosts + - if [[ -n "$DOCKER_REGISTRY" ]]; then docker login $DOCKER_REGISTRY; fi script: - 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 \ No newline at end of file + - DOCKER_HOST=ssh://$SSH_USER@$SSH_URL docker-compose $COMPOSE_EXTRA_ARGS up -d --remove-orphans \ No newline at end of file diff --git a/docker-compose-validate.gitlab-ci.yml b/docker-compose-validate.gitlab-ci.yml index 301247a..1b010bb 100644 --- a/docker-compose-validate.gitlab-ci.yml +++ b/docker-compose-validate.gitlab-ci.yml @@ -1,7 +1,5 @@ Validate Intern: image: docker/compose:alpine-1.29.1 stage: test - # variables: - # COMPOSE_EXTRA_ARGS: script: - docker-compose $COMPOSE_EXTRA_ARGS config \ No newline at end of file diff --git a/documentation/chapters/templates/docker-compose-deploy.adoc b/documentation/chapters/templates/docker-compose-deploy.adoc new file mode 100644 index 0000000..83a5854 --- /dev/null +++ b/documentation/chapters/templates/docker-compose-deploy.adoc @@ -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[] +---- + diff --git a/documentation/chapters/templates/docker-compose-validate.adoc b/documentation/chapters/templates/docker-compose-validate.adoc new file mode 100644 index 0000000..0776a34 --- /dev/null +++ b/documentation/chapters/templates/docker-compose-validate.adoc @@ -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[] +---- \ No newline at end of file