Initializes Docker setup for the project

Establishes a containerized development and production environment.

Creates Dockerfiles, docker-compose configurations, and associated scripts.

Prioritizes easy setup, dependency isolation, and platform consistency.
Enhances dev experience and simplifies deployment.
This commit is contained in:
Chenwei Jiang 2025-08-26 21:45:40 +08:00
parent 5c262d2f45
commit 9454359cd2
Signed by: cheverjohn
GPG key ID: ADC4815BFE960182
13 changed files with 5250 additions and 1 deletions

9
scripts/dev-down.sh Executable file
View file

@ -0,0 +1,9 @@
#!/usr/bin/env bash
set -euo pipefail
cd "$(dirname "$0")/.."
docker compose -f docker-compose.dev.yml down
echo "[dev-down] Dev environment stopped"

12
scripts/dev-up.sh Executable file
View file

@ -0,0 +1,12 @@
#!/usr/bin/env bash
set -euo pipefail
cd "$(dirname "$0")/.."
export DOCKER_PLATFORM="${DOCKER_PLATFORM:-$(docker info --format '{{.OSType}}/{{.Architecture}}' 2>/dev/null || echo linux/amd64)}"
echo "[dev-up] Using platform: ${DOCKER_PLATFORM}"
docker compose -f docker-compose.dev.yml up -d --remove-orphans
echo "[dev-up] Dev environment is up at http://localhost:5173"

16
scripts/prod-build.sh Executable file
View file

@ -0,0 +1,16 @@
#!/usr/bin/env bash
set -euo pipefail
cd "$(dirname "$0")/.."
echo "[prod-build] Building frontend on host..."
PKG=$(command -v pnpm >/dev/null 2>&1 && echo pnpm || echo npm)
$PKG install
$PKG run build
echo "[prod-build] Building docker image..."
IMAGE_NAME="minimax-referral-hub:latest"
docker build -t "$IMAGE_NAME" .
echo "[prod-build] Image built: $IMAGE_NAME"

9
scripts/prod-down.sh Executable file
View file

@ -0,0 +1,9 @@
#!/usr/bin/env bash
set -euo pipefail
cd "$(dirname "$0")/.."
docker compose -f docker-compose.prod.yml down
echo "[prod-down] Production environment stopped"

9
scripts/prod-up.sh Executable file
View file

@ -0,0 +1,9 @@
#!/usr/bin/env bash
set -euo pipefail
cd "$(dirname "$0")/.."
docker compose -f docker-compose.prod.yml up -d --remove-orphans
echo "[prod-up] Production environment is up at http://localhost:8080"