first commit
This commit is contained in:
162
stack.yaml
Normal file
162
stack.yaml
Normal file
@@ -0,0 +1,162 @@
|
||||
version: "3.9"
|
||||
|
||||
services:
|
||||
db:
|
||||
image: postgres:16.3-alpine
|
||||
environment:
|
||||
- POSTGRES_DB=django
|
||||
- POSTGRES_USER=postgres
|
||||
- POSTGRES_PASSWORD=2309
|
||||
volumes:
|
||||
- pg_data:/var/lib/postgresql/data
|
||||
networks:
|
||||
- simple_travel
|
||||
deploy:
|
||||
replicas: 1
|
||||
placement:
|
||||
constraints:
|
||||
- node.role == manager
|
||||
restart_policy:
|
||||
condition: any
|
||||
max_attempts: 0
|
||||
update_config:
|
||||
parallelism: 1
|
||||
order: start-first
|
||||
failure_action: rollback
|
||||
monitor: 30s
|
||||
delay: 30s
|
||||
max_failure_ratio: 0.2
|
||||
healthcheck:
|
||||
test: ["CMD-SHELL", "pg_isready -U postgres"]
|
||||
interval: 10s
|
||||
timeout: 5s
|
||||
retries: 5
|
||||
logging:
|
||||
driver: json-file
|
||||
options:
|
||||
max-size: "10m"
|
||||
max-file: "3"
|
||||
|
||||
redis:
|
||||
image: redis:alpine
|
||||
command: ["redis-server", "--appendonly", "yes"]
|
||||
networks:
|
||||
- simple_travel
|
||||
deploy:
|
||||
replicas: 1
|
||||
placement:
|
||||
constraints:
|
||||
- node.role == manager
|
||||
restart_policy:
|
||||
condition: any
|
||||
update_config:
|
||||
failure_action: rollback
|
||||
monitor: 30s
|
||||
delay: 30s
|
||||
max_failure_ratio: 0.2
|
||||
parallelism: 1
|
||||
order: start-first
|
||||
healthcheck:
|
||||
test: ["CMD", "redis-cli", "ping"]
|
||||
interval: 15s
|
||||
timeout: 10s
|
||||
retries: 5
|
||||
logging:
|
||||
driver: json-file
|
||||
options:
|
||||
max-size: "10m"
|
||||
max-file: "3"
|
||||
|
||||
web:
|
||||
image: jscorptech/simple_travel:latest
|
||||
env_file:
|
||||
- .env
|
||||
environment:
|
||||
- PYTHONPYCACHEPREFIX=/var/cache/pycache
|
||||
networks:
|
||||
- simple_travel
|
||||
volumes:
|
||||
- logs:/code/resources/logs/
|
||||
- media:/code/resources/media/
|
||||
- static:/code/resources/staticfiles/
|
||||
- pycache:/var/cache/pycache
|
||||
tmpfs:
|
||||
- /tmp
|
||||
- /run
|
||||
deploy:
|
||||
replicas: 1
|
||||
restart_policy:
|
||||
condition: any
|
||||
update_config:
|
||||
failure_action: rollback
|
||||
monitor: 30s
|
||||
delay: 30s
|
||||
max_failure_ratio: 0.2
|
||||
parallelism: 1
|
||||
order: start-first
|
||||
healthcheck:
|
||||
test: ["CMD-SHELL", "curl -f http://localhost:8000/health/ || exit 1"]
|
||||
interval: 15s
|
||||
timeout: 15s
|
||||
retries: 5
|
||||
logging:
|
||||
driver: json-file
|
||||
options:
|
||||
max-size: "10m"
|
||||
max-file: "3"
|
||||
|
||||
nginx:
|
||||
image: jscorptech/nginx:v1
|
||||
ports:
|
||||
- mode: ingress
|
||||
target: 80
|
||||
published: 8080
|
||||
protocol: tcp
|
||||
volumes:
|
||||
- type: bind
|
||||
source: ./resources/layout/nginx.conf
|
||||
target: /etc/nginx/nginx.conf
|
||||
read_only: true
|
||||
- media:/usr/share/nginx/html/resources/media/:ro
|
||||
- static:/usr/share/nginx/html/resources/staticfiles/:ro
|
||||
networks:
|
||||
- simple_travel
|
||||
deploy:
|
||||
replicas: 1
|
||||
restart_policy:
|
||||
condition: any
|
||||
placement:
|
||||
constraints:
|
||||
- node.role == manager
|
||||
update_config:
|
||||
failure_action: rollback
|
||||
monitor: 10s
|
||||
delay: 10s
|
||||
max_failure_ratio: 0.2
|
||||
parallelism: 1
|
||||
order: start-first
|
||||
tmpfs:
|
||||
- /var/cache/nginx
|
||||
- /var/run
|
||||
- /var/tmp
|
||||
healthcheck:
|
||||
test: ["CMD-SHELL", "curl -f http://localhost/health/ || exit 1"]
|
||||
interval: 10s
|
||||
timeout: 5s
|
||||
retries: 5
|
||||
logging:
|
||||
driver: json-file
|
||||
options:
|
||||
max-size: "10m"
|
||||
max-file: "3"
|
||||
|
||||
networks:
|
||||
simple_travel:
|
||||
driver: overlay
|
||||
|
||||
volumes:
|
||||
media:
|
||||
pg_data:
|
||||
pycache:
|
||||
static:
|
||||
logs:
|
||||
Reference in New Issue
Block a user