@@ -20,6 +20,8 @@ DB_BACKEND=${DB_BACKEND:-postgres}
2020DB_PORT=${DB_PORT:- 5432}
2121STUDIO_PORT=${STUDIO_PORT:- 5555}
2222NET=devnet
23+ NM_VOL=openpin-dev-node-modules
24+ DASH_NM_VOL=openpin-dev-dash-node-modules
2325
2426# ──────────────────────────────────────────────
2527# 2. Clean-up helper (runs on Ctrl-C / exit)
@@ -34,9 +36,11 @@ cleanup () {
3436trap cleanup INT TERM EXIT
3537
3638# ──────────────────────────────────────────────
37- # 3. Network
39+ # 3. Network / volumes
3840# ──────────────────────────────────────────────
3941docker network inspect " $NET " > /dev/null 2>&1 || { echo " 🔵 Creating network $NET " ; docker network create " $NET " ; }
42+ docker volume inspect " $NM_VOL " > /dev/null 2>&1 || { echo " 🔵 Creating volume $NM_VOL " ; docker volume create " $NM_VOL " ; }
43+ docker volume inspect " $DASH_NM_VOL " > /dev/null 2>&1 || { echo " 🔵 Creating volume $DASH_NM_VOL " ; docker volume create " $DASH_NM_VOL " ; }
4044
4145# ──────────────────────────────────────────────
4246# 3. Postgres (optional)
@@ -55,7 +59,7 @@ if [[ "$DB_BACKEND" == "postgres" ]]; then
5559 if docker container inspect openpin-dev-db & > /dev/null; then
5660 echo " ✅ Found existing Postgres container."
5761 if ! docker start openpin-dev-db > /dev/null 2>&1 ; then
58- echo " ⚠️ Could not start it (probably missing network) – recreating ..."
62+ echo " ⚠️ Could not start it (probably missing network) - recreating ..."
5963 docker rm -f openpin-dev-db
6064 postgres_create
6165 fi
@@ -71,14 +75,17 @@ if [[ "$DB_BACKEND" == "postgres" ]]; then
7175 psql -U postgres -d openpin -tAc " select count(*) from information_schema.tables where table_schema='public';" )
7276 if [[ " $TABLES " == " 0" ]]; then
7377 echo " 🆕 Running initial Prisma migration ..."
74- docker run --rm --network " $NET " -v " $PWD " :/app -w /app \
78+ docker run --rm --network " $NET " \
79+ -v " $PWD " :/app -w /app \
80+ -v " $NM_VOL " :/app/node_modules \
7581 -e DATABASE_URL=" postgresql://postgres:$POSTGRES_PASSWORD @openpin-dev-db:5432/openpin" \
7682 node:20-slim bash -c " npm ci --omit=dev --silent && npx prisma generate && npx prisma migrate deploy"
7783 fi
7884
7985 prisma_start () {
8086 docker run -d --name prisma-studio --network " $NET " \
8187 -v " $PWD " :/app -w /app \
88+ -v " $NM_VOL " :/app/node_modules \
8289 -e DATABASE_URL=" postgresql://postgres:$POSTGRES_PASSWORD @openpin-dev-db:5432/openpin" \
8390 -p " $STUDIO_PORT " :5555 \
8491 node:20-slim bash -c " npm ci --omit=dev --silent && npx prisma generate && npx prisma studio --hostname 0.0.0.0 --port 5555"
@@ -109,6 +116,8 @@ docker run --rm -it \
109116 --name openpin-dev \
110117 --network $NET \
111118 -v " $PWD " :/app \
119+ -v " $NM_VOL " :/app/node_modules \
120+ -v " $DASH_NM_VOL " :/app/dashboard/node_modules \
112121 -v " $FIREBASE_KEY_PATH " :/keys/firebaseKey.json:ro \
113122 -w /app \
114123 -p 8080:8080 \
0 commit comments