variables: IMAGE_TAG: $CI_REGISTRY_IMAGE:$CI_COMMIT_SHORT_SHA IMAGE_TAG_LATEST: $CI_REGISTRY_IMAGE:latest stages: - eleventy - docker_build - docker_deploy eleventy: stage: eleventy image: node:latest cache: paths: - node_modules/ script: - npm install - npm run build artifacts: paths: - _site/ only: - master docker_build: stage: docker_build image: name: gcr.io/kaniko-project/executor:debug entrypoint: [""] script: - echo "{\"auths\":{\"$CI_REGISTRY\":{\"username\":\"$CI_REGISTRY_USER\",\"password\":\"$CI_REGISTRY_PASSWORD\"}}}" > /kaniko/.docker/config.json - /kaniko/executor --context $CI_PROJECT_DIR --dockerfile $CI_PROJECT_DIR/Dockerfile --destination $IMAGE_TAG --destination $IMAGE_TAG_LATEST only: - master docker_deploy: stage: docker_deploy image: kroniak/ssh-client:3.6 script: - mkdir ~/.ssh - echo "$SSH_KNOWN_HOSTS" >> ~/.ssh/known_hosts - chmod 644 ~/.ssh/known_hosts # add ssh key stored in SSH_PRIVATE_KEY variable to the agent store - eval $(ssh-agent -s) - ssh-add <(echo "$SSH_PRIVATE_KEY") # log into Docker registry - ssh administrator@docker.comprofix.xyz "docker login -u $CI_REGISTRY_USER -p $CI_REGISTRY_PASSWORD $CI_REGISTRY" # stop container, remove image. - ssh administrator@docker.comprofix.xyz "cd /opt/comprofix; docker-compose down" || true # start new container - scp docker-compose.yml administrator@docker.comprofix.xyz:/opt/comprofix - ssh administrator@docker.comprofix.xyz "cd /opt/comprofix; docker-compose pull; docker-compose up -d" only: - master