Programmieren_1/.gitlab-ci.yml

43 lines
1.4 KiB
YAML

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