From af4bca05d0d58f685c976ebf863d2ee96a9c58e5 Mon Sep 17 00:00:00 2001 From: sid palas Date: Fri, 3 Feb 2023 16:31:06 -0500 Subject: [PATCH] Add production compose + swarm stack configurations --- 11-deploying-containers/Makefile | 27 +++++++++ .../docker-compose-prod.yml | 46 +++++++++++++++ 11-deploying-containers/docker-swarm.yml | 56 +++++++++++++++++++ 3 files changed, 129 insertions(+) create mode 100644 11-deploying-containers/Makefile create mode 100644 11-deploying-containers/docker-compose-prod.yml create mode 100644 11-deploying-containers/docker-swarm.yml diff --git a/11-deploying-containers/Makefile b/11-deploying-containers/Makefile new file mode 100644 index 0000000..6bb3713 --- /dev/null +++ b/11-deploying-containers/Makefile @@ -0,0 +1,27 @@ +.PHONY: compose-up +compose-up: + docker compose -f docker-compose-prod.yml up + +# -d flag runs containers in the background: +.PHONY: compose-up-d +compose-up-d: + docker compose -f docker-compose-prod.yml up -d + +### + +.PHONY: swarm-init +swarm-init: + docker swarm init + +.PHONY: swarm-deploy-stack +swarm-deploy-stack: + docker stack deploy -c stack.yaml example-app + +.PHONY: swarm-remove-stack +swarm-remove-stack: + docker stack rm example-app + +.PHONY: create-secrets +create-secrets: + echo -n "foobarbaz" | docker secret create postgres-passwd - + echo -n "postgres://postgres:foobarbaz@db:5432/postgres" | docker secret create database-url - \ No newline at end of file diff --git a/11-deploying-containers/docker-compose-prod.yml b/11-deploying-containers/docker-compose-prod.yml new file mode 100644 index 0000000..08f099b --- /dev/null +++ b/11-deploying-containers/docker-compose-prod.yml @@ -0,0 +1,46 @@ +services: + client-react-nginx: + image: sidpalas/devops-directive-docker-course-client-react-nginx:5 + networks: + - frontend + init: true + ports: + - 80:80 + restart: unless-stopped + api-node: + image: sidpalas/devops-directive-docker-course-api-node:7 + networks: + - frontend + - backend + init: true + depends_on: + - db + environment: + - DATABASE_URL=postgres://postgres:foobarbaz@db:5432/postgres + restart: unless-stopped + api-golang: + image: sidpalas/devops-directive-docker-course-api-golang:6 + networks: + - frontend + - backend + init: true + depends_on: + - db + environment: + - DATABASE_URL=postgres://postgres:foobarbaz@db:5432/postgres + restart: unless-stopped + db: + image: postgres:15.1-alpine + networks: + - backend + volumes: + - pgdata:/var/lib/postgresql/data + environment: + - POSTGRES_PASSWORD=foobarbaz + +volumes: + pgdata: + +networks: + frontend: + backend: \ No newline at end of file diff --git a/11-deploying-containers/docker-swarm.yml b/11-deploying-containers/docker-swarm.yml new file mode 100644 index 0000000..07e6736 --- /dev/null +++ b/11-deploying-containers/docker-swarm.yml @@ -0,0 +1,56 @@ +version: '3.7' + +services: + client-react: + image: sidpalas/devops-directive-docker-course-client-react-nginx:5 + networks: + - frontend + ports: + - 80:80 + api-node: + image: sidpalas/devops-directive-docker-course-api-node:7 + environment: + - DATABASE_URL_FILE=/run/secrets/database-url + secrets: + - database-url + networks: + - frontend + - backend + ports: + - 3000:3000 + api-golang: + image: sidpalas/devops-directive-docker-course-api-golang:6 + networks: + - frontend + - backend + environment: + - DATABASE_URL_FILE=/run/secrets/database-url + secrets: + - database-url + ports: + - 8080:8080 + db: + image: postgres:15.1-alpine + networks: + - backend + ports: + - 5432:5432 + volumes: + - pgdata:/var/lib/postgresql/data + environment: + - POSTGRES_PASSWORD_FILE=/run/secrets/postgres-passwd + secrets: + - postgres-passwd + +volumes: + pgdata: + +networks: + frontend: + backend: + +secrets: + database-url: + external: true + postgres-passwd: + external: true