stages: - build - deploy build: stage: build image: docker:20.10 services: - docker:20.10-dind variables: DOCKER_DRIVER: overlay2 DOCKER_TLS_CERTDIR: "/certs" script: - echo $DOCKERHUBUSER - echo $DOCKERHUBPASSWORD - docker login -u $DOCKERHUBUSER -p $DOCKERHUBPASSWORD docker.io - docker build --tag=l1ll1/strudel2_backend:$CI_COMMIT_BRANCH . - docker push l1ll1/strudel2_backend:$CI_COMMIT_BRANCH tags: - build_strudel2_backend deploy_test: stage: deploy only: - test@hpc-team/strudel2_backend tags: - deploy_test variables: DOCKER_HOST: unix:///var/run/docker.sock script: - echo "deploying test" - cp ./nginx_snippets/* /etc/nginx/snippets/ - mkdir -p /opt/strudel2/errors/ - cp ./html/* /opt/strudel2/errors/ - docker login -u $DOCKERHUBUSER -p $DOCKERHUBPASSWORD docker.io - docker stop strudel2_backend || echo "Failed to stop existing container" - docker ps -a -q | xargs -I{} docker rm {} || echo "No containers to remove" - docker images -q | xargs -I{} docker rmi {} || echo "No images to remove" - docker pull l1ll1/strudel2_backend:$CI_COMMIT_BRANCH - docker run --mount type=bind,source=/messages,target=/messages --mount type=bind,source=/var/log/strudel2,target=/var/log/strudel2 --restart=always -v /home/ubuntu/telegraf.conf:/etc/telegraf/telegraf.conf:ro -d -p 8080:8080 -p 8090:8090 --name strudel2_backend l1ll1/strudel2_backend:$CI_COMMIT_BRANCH || echo "Unable to start image ... possibly the old wsgi process is still running?" dependencies: - build deploy_dev: stage: deploy only: - dev@hpc-team/strudel2_backend tags: - deploy_dev variables: DOCKER_HOST: unix:///var/run/docker.sock script: - echo "deploying dev" - cp ./nginx_snippets/* /etc/nginx/snippets/ - mkdir -p /opt/strudel2/errors/ - cp ./html/* /opt/strudel2/errors/ - docker login -u $DOCKERHUBUSER -p $DOCKERHUBPASSWORD docker.io - docker stop strudel2_backend || echo "Failed to stop existing container" - docker ps -a -q | xargs -I{} docker rm {} || echo "No containers to remove" - docker images -q | xargs -I{} docker rmi {} || echo "No images to remove" - docker pull l1ll1/strudel2_backend:$CI_COMMIT_BRANCH - docker run --mount type=bind,source=/messages,target=/messages --mount type=bind,source=/var/log/strudel2,target=/var/log/strudel2 --restart=always -v /home/ubuntu/telegraf.conf:/etc/telegraf/telegraf.conf:ro -d -p 8080:8080 -p 8090:8090 --name strudel2_backend l1ll1/strudel2_backend:$CI_COMMIT_BRANCH || echo "Unable to start image ... possibly the old wsgi process is still running?" dependencies: - build deploy_prod: stage: deploy only: - prod@hpc-team/strudel2_backend tags: - deploy_prod variables: DOCKER_HOST: unix:///var/run/docker.sock script: - echo "deploying prod" - seconds=$(echo "scale=0 ; (( `date -d "11:59:00" +%s` - `date +%s` ) + 86400) % 86400 "| bc -l) ; sleep $seconds - cp ./nginx_snippets/* /etc/nginx/snippets/ - mkdir -p /opt/strudel2/errors/ - cp ./html/* /opt/strudel2/errors/ - docker login -u $DOCKERHUBUSER -p $DOCKERHUBPASSWORD docker.io - docker stop strudel2_backend || echo "Failed to stop existing container" - docker ps -a -q | xargs -I{} docker rm {} || echo "No containers to remove" - docker images -q | xargs -I{} docker rmi {} || echo "No images to remove" - docker pull l1ll1/strudel2_backend:$CI_COMMIT_BRANCH - docker run --mount type=bind,source=/messages,target=/messages --mount type=bind,source=/var/log/strudel2,target=/var/log/strudel2 -v /home/ubuntu/telegraf.conf:/etc/telegraf/telegraf.conf:ro --restart=always -d -p 8080:8080 -p 8090:8090 --log-driver json-file --log-opt max-size=10m --log-opt max-file=3 --name strudel2_backend l1ll1/strudel2_backend:$CI_COMMIT_BRANCH || echo "Unable to start image ... possibly the old wsgi process is still running?" dependencies: - build