Repository navigation
Expand file tree
/
Copy pathdeploy.sh
More file actions
33 lines (27 loc) · 1.47 KB
/
Copy pathdeploy.sh
File metadata and controls
33 lines (27 loc) · 1.47 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
#!/bin/bash
set -e
echo "=== Initial Deployment ==="
# Create external network (staging owns it, prod is a guest)
echo "Creating external network..."
docker network create staging_default 2>/dev/null && echo "Created staging_default" || echo "staging_default already exists"
# Create external volumes for prod (staging volumes are managed by compose)
echo "Creating external volumes..."
docker volume create app_pg_data 2>/dev/null && echo "Created app_pg_data" || echo "app_pg_data already exists"
docker volume create app_redis_data 2>/dev/null && echo "Created app_redis_data" || echo "app_redis_data already exists"
docker volume create app_meili_data 2>/dev/null && echo "Created app_meili_data" || echo "app_meili_data already exists"
# Start staging first — prod nginx needs staging containers on staging_default
echo ""
echo "=== Starting Staging ==="
docker compose -p staging -f docker-compose.staging.yml --env-file .env.staging down --remove-orphans 2>/dev/null || true
docker compose -p staging -f docker-compose.staging.yml --env-file .env.staging up -d
echo "Waiting for staging to stabilize..."
sleep 5
# Start prod
echo ""
echo "=== Starting Prod ==="
docker compose -p prod -f docker-compose.prod.yml --env-file .env.prod down --remove-orphans 2>/dev/null || true
docker compose -p prod -f docker-compose.prod.yml --env-file .env.prod up -d
echo ""
echo "=== Deployment Complete ==="
echo "Prod: https://harmonica.software"
echo "Staging: https://test.harmonica.software"