From 087c16521cc3f291169d118570f5745b5c2d7ec9 Mon Sep 17 00:00:00 2001 From: Matthew McKinnon Date: Sun, 31 Dec 2023 20:09:37 +1000 Subject: [PATCH] Added CI Deployment --- .gitlab-ci.yml | 32 ++++++++++++++++++++++++++++++++ docker-compose.yml | 14 +++++++++----- 2 files changed, 41 insertions(+), 5 deletions(-) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index a2d24fd..90b0259 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -33,6 +33,38 @@ docker_build: only: - master +docker_deploy: + before_script: + - docker login -u $CI_REGISTRY_USER -p $CI_REGISTRY_PASSWORD $CI_REGISTRY + 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 "docker stop comprofix" || true + - ssh administrator@docker.comprofix.xyz "docker rm comprofix" || true + - ssh administrator@docker.comprofix.xyz "docker rmi registry.gitlab.comprofix.com/comprofix/website:latest" || true + # start new container + - ssh administrator@docker.comprofix.xyz "docker run -d \ + --name=comprofix \ + --network=traefik \ + --restart unless-stopped \ + --label traefik.enable=true + --label traefik.http.routers.{{container_name}}.rule=Host(`comprofix.com`) \ + --label traefik.http.routers.{{container_name}}.rule=Host(`www.comprofix.com`) \ + --label traefik.http.routers.{{container_name}}.entrypoints=https \ + --label traefik.http.routers.{{container_name}}.tls.certresolver=cloudflare \ + registry.gitlab.comprofix.com/comprofix/website:latest" + only: + - tags + diff --git a/docker-compose.yml b/docker-compose.yml index ba81fa0..b40a403 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -5,9 +5,13 @@ services: container_name: comprofix image: registry.gitlab.comprofix.com/comprofix/website:latest restart: unless-stopped + recreate: true networks: - - npm_default - -networks: - npm_default: - external: true \ No newline at end of file + - name: traefik + labels: + traefik.enable=true + traefik.http.routers.{{container_name}}.rule=Host(`comprofix.com`) + traefik.http.routers.{{container_name}}.rule=Host(`www.comprofix.com`) + traefik.http.routers.{{container_name}}.entrypoints=https + traefik.http.routers.{{container_name}}.tls.certresolver=cloudflare +