diff --git a/.gitea/workflows/prod.yaml b/.gitea/workflows/prod.yaml new file mode 100644 index 0000000..50526c6 --- /dev/null +++ b/.gitea/workflows/prod.yaml @@ -0,0 +1,96 @@ +name: build-and-deploy-prod + +on: + push: + - lab6 + workflow_dispatch: + +jobs: + build-cc: + runs-on: docker + services: + docker: + image: docker:dind + options: --privileged --shm-size=2g + volumes: + - /var/run/docker.sock:/var/run/docker.sock:ro + steps: + - name: Clone repo + shell: sh + run: | + git init + git remote add gitea http://10.1.1.1:3000/hasslesstech/devops-lab4 + git fetch gitea + git checkout origin/master + - name: Build container + shell: sh + run: | + docker build . -f Dockerfile-cc -t 10.5.1.10:5000/prod/cc + - name: Push container + shell: sh + run: \ + docker push 10.5.1.10:5000/prod/cc + + build-hm: + runs-on: docker + services: + docker: + image: docker:dind + options: --privileged --shm-size=2g + volumes: + - /var/run/docker.sock:/var/run/docker.sock:ro + steps: + - name: Clone repo + shell: sh + run: | + git init + git remote add gitea http://10.1.1.1:3000/hasslesstech/devops-lab4 + git fetch gitea + git checkout origin/master + - name: Build container + shell: sh + run: | + docker build . -f Dockerfile-hm -t 10.5.1.10:5000/prod/hm + - name: Push container + shell: sh + run: \ + docker push 10.5.1.10:5000/prod/hm + + build-map: + runs-on: docker + services: + docker: + image: docker:dind + options: --privileged --shm-size=2g + volumes: + - /var/run/docker.sock:/var/run/docker.sock:ro + steps: + - name: Clone repo + shell: sh + run: | + git init + git remote add gitea http://10.1.1.1:3000/hasslesstech/devops-lab4 + git fetch gitea + git checkout origin/master + - name: Build container + shell: sh + run: | + docker build . -f Dockerfile-map -t 10.5.1.10:5000/prod/map + - name: Push container + shell: sh + run: \ + docker push 10.5.1.10:5000/prod/map + + deploy-all: + runs-on: hardware-x86_64 + needs: + - build-cc + - build-hm + - build-map + steps: + - run: | + ssh -i prod-key root@10.5.1.11 "sh -c 'git init && + git remote add gitea http://10.1.1.1:3000/hasslesstech/devops-lab4 && + git fetch gitea && + git checkout -f origin/master && + docker-compose up -d -f docker-compose-prod.yaml'" diff --git a/docker-compose.yaml b/docker-compose-dev.yaml similarity index 60% rename from docker-compose.yaml rename to docker-compose-dev.yaml index 4f3d207..fa1e3ed 100644 --- a/docker-compose.yaml +++ b/docker-compose-dev.yaml @@ -6,10 +6,7 @@ services: - sys cc: - build: - context: . - dockerfile: Dockerfile-cc - #image: registry.digitalocean.com/duke-listings/cc + image: 10.5.1.10:5000/dev/cc restart: always environment: Redis__ConnectionString: "redis:6379" @@ -21,10 +18,7 @@ services: - redis hm: - build: - context: . - dockerfile: Dockerfile-hm - #image: registry.digitalocean.com/duke-listings/hm + image: 10.5.1.10:5000/dev/hm restart: always environment: CommunicationConfiguration__CommunicationControlIP: "cc" @@ -34,17 +28,12 @@ services: - cc map: - build: - context: . - dockerfile: Dockerfile-map - #image: registry.digitalocean.com/duke-listings/map + image: 10.5.1.10:5000/dev/map restart: always volumes: - ./map/config.json:/usr/share/nginx/html/config.json:ro ports: - 80:80 - networks: - - sys networks: sys: diff --git a/docker-compose-prod.yaml b/docker-compose-prod.yaml new file mode 100644 index 0000000..ca730ef --- /dev/null +++ b/docker-compose-prod.yaml @@ -0,0 +1,39 @@ +services: + redis: + image: redis:7 + restart: always + networks: + - sys + + cc: + image: 10.5.1.10:5000/prod/cc + restart: always + environment: + Redis__ConnectionString: "redis:6379" + ports: + - 8080:8080 + networks: + - sys + depends_on: + - redis + + hm: + image: 10.5.1.10:5000/prod/hm + restart: always + environment: + CommunicationConfiguration__CommunicationControlIP: "cc" + networks: + - sys + depends_on: + - cc + + map: + image: 10.5.1.10:5000/prod/map + restart: always + volumes: + - ./map/config.json:/usr/share/nginx/html/config.json:ro + ports: + - 80:80 + +networks: + sys: