3-service Docker app: Nginx frontend, Flask REST API backend, PostgreSQL database. Includes lifecycle scripts (prepare, start, stop, remove), docker-compose.yaml, and documentation.
40 lines
912 B
Bash
40 lines
912 B
Bash
#!/bin/bash
|
|
echo "Starting app..."
|
|
|
|
# Start PostgreSQL
|
|
echo "Starting database..."
|
|
docker run -d \
|
|
--name taskapp-db \
|
|
--network taskapp-network \
|
|
--restart unless-stopped \
|
|
-e POSTGRES_DB=taskapp \
|
|
-e POSTGRES_USER=taskapp \
|
|
-e POSTGRES_PASSWORD=taskapp123 \
|
|
-v taskapp-pgdata:/var/lib/postgresql/data \
|
|
postgres:15
|
|
|
|
# Start Flask backend
|
|
echo "Starting backend..."
|
|
docker run -d \
|
|
--name taskapp-flask \
|
|
--network taskapp-network \
|
|
--restart unless-stopped \
|
|
-e DB_HOST=taskapp-db \
|
|
-e DB_NAME=taskapp \
|
|
-e DB_USER=taskapp \
|
|
-e DB_PASSWORD=taskapp123 \
|
|
taskapp-backend
|
|
|
|
# Start Nginx frontend
|
|
echo "Starting frontend..."
|
|
docker run -d \
|
|
--name taskapp-nginx \
|
|
--network taskapp-network \
|
|
--restart unless-stopped \
|
|
-p 80:80 \
|
|
taskapp-frontend
|
|
|
|
echo ""
|
|
echo "App is running!"
|
|
echo "The app is available at http://localhost:80"
|