stages: - dockerize - deploy variables: IMAGE_NAME: $CI_REGISTRY/$CI_PROJECT_PATH dockerize: image: registry.hottis.de/dockerized/docker-bash:latest stage: dockerize tags: - hottis - linux - docker script: - docker build --tag $IMAGE_NAME:${CI_COMMIT_SHORT_SHA} . - docker login -u gitlab-ci-token -p $CI_JOB_TOKEN $CI_REGISTRY; - docker push $IMAGE_NAME:${CI_COMMIT_SHORT_SHA} - if [ "$CI_COMMIT_TAG" != "" ]; then docker tag $IMAGE_NAME:${CI_COMMIT_SHORT_SHA} $IMAGE_NAME:${CI_COMMIT_TAG}; docker push $IMAGE_NAME:${CI_COMMIT_TAG}; fi .deploy: image: registry.hottis.de/dockerized/docker-bash:latest stage: deploy only: - tags variables: GIT_STRATEGY: none CONTAINER_NAME: soil-preprocessor script: - docker stop $CONTAINER_NAME || echo "container not running, never mind" - docker rm $CONTAINER_NAME || echo "container not existing, never mind" - docker login -u gitlab-ci-token -p $CI_JOB_TOKEN $CI_REGISTRY - docker run -d --name $CONTAINER_NAME --restart always --network internal-network -e "APPLICATION_TENANT=$APPLICATION_TENANT" -e "MQTT_LOGIN=$MQTT_LOGIN" -e "MQTT_PASSWORD=$MQTT_PASSWORD" -e "MQTT_BROKER=$MQTT_BROKER" -e "PGHOST=timescaledb" -e "PGUSER=$PGUSER" -e "PGPASSWORD=$PGPASSWORD" -e "PGDATABASE=$PGDATABASE" $IMAGE_NAME:$CI_COMMIT_TAG - docker network connect external-network $CONTAINER_NAME deploy-saerbeck: extends: .deploy tags: - saerbeck-deployment-only environment: name: saerbeck-production