Add production compose + swarm stack configurations
This commit is contained in:
27
11-deploying-containers/Makefile
Normal file
27
11-deploying-containers/Makefile
Normal file
@ -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 -
|
||||||
46
11-deploying-containers/docker-compose-prod.yml
Normal file
46
11-deploying-containers/docker-compose-prod.yml
Normal file
@ -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:
|
||||||
56
11-deploying-containers/docker-swarm.yml
Normal file
56
11-deploying-containers/docker-swarm.yml
Normal file
@ -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
|
||||||
Reference in New Issue
Block a user