stages: - dockerize - deploy variables: DOCKER_REGISTRY: "git.haw-hamburg.de:5005" SERVICE_NAME: slides DOCKER_TLS_CERTDIR: "/certs" deploy_docker: variables: - DOCKER_HOST: "ssh://henri@henriburau.de" stage: deploy image: docker:19.03.3 services: - docker:19.03.3-dind tags: - docker before_script: - 'which ssh-agent || ( apt-get update -y && apt-get install openssh-client -y )' - eval $(ssh-agent -s) - echo "$SSH_PRIVATE_KEY" | tr -d '\r' | ssh-add - - mkdir -p ~/.ssh - chmod 700 ~/.ssh script: - docker login -u gitlab-ci-token -p $CI_JOB_TOKEN $DOCKER_REGISTRY - lan-docker service ps $DOCKER_SERVICE_NAME &> /dev/null || lan-docker service create --name $DOCKER_SERVICE_NAME --publish 8081:8080 $DOCKER_REGISTRY/$CI_PROJECT_NAMESPACE/$SERVICE_NAME:latest - docker service update --image $DOCKER_REGISTRY/$CI_PROJECT_NAMESPACE/$SERVICE_NAME:latest $DOCKER_SERVICE_NAME create_image: stage: dockerize image: docker:19.03.3 services: - docker:19.03.3-dind tags: - dind - docker script: - docker login -u gitlab-ci-token -p $CI_JOB_TOKEN $DOCKER_REGISTRY - docker build -t $SERVICE_NAME:latest . - docker tag $SERVICE_NAME:latest $DOCKER_REGISTRY/$CI_PROJECT_NAMESPACE/$SERVICE_NAME:latest - docker push $DOCKER_REGISTRY/$CI_PROJECT_NAMESPACE/$SERVICE_NAME:latest