FIx some for connect to postgresql3
This commit is contained in:
@@ -0,0 +1,5 @@
|
||||
# آرتیفکتهای release نباید تبدیل خطپایان بخورند (باینری Prisma + اسکریپت لینوکسی)
|
||||
apps/api/release/** -text
|
||||
apps/api/docker-entrypoint.sh text eol=lf
|
||||
apps/api/release/docker-entrypoint.sh text eol=lf
|
||||
apps/api/release/node_modules/@prisma/engines/** binary
|
||||
+3
-2
@@ -21,6 +21,7 @@ coverage/
|
||||
Thumbs.db
|
||||
|
||||
# حجم اضافه در release — فقط باینری لینوکس لازم است
|
||||
apps/api/release/node_modules/.cache/
|
||||
apps/api/release/node_modules/**/query_engine-windows.dll.node
|
||||
apps/api/release/node_modules/**/.cache/
|
||||
apps/api/release/node_modules/**/*.dll.node
|
||||
apps/api/release/node_modules/**/*-windows.exe
|
||||
apps/api/release/node_modules/**/*windows*
|
||||
|
||||
@@ -10,6 +10,9 @@ ENV PORT=3000
|
||||
|
||||
COPY apps/api/release/ ./
|
||||
|
||||
# گیت روی ویندوز بیت اجرا را حفظ نمیکند
|
||||
RUN chmod +x /app/docker-entrypoint.sh /app/node_modules/@prisma/engines/schema-engine-* || true
|
||||
|
||||
EXPOSE 3000
|
||||
|
||||
CMD ["sh", "/app/docker-entrypoint.sh"]
|
||||
|
||||
@@ -6,24 +6,40 @@ echo "[api] node=$(node -v) cwd=$(pwd)"
|
||||
echo "[api] release check: app.js=$(test -f app.js && echo yes || echo NO) prisma=$(test -f node_modules/prisma/build/index.js && echo yes || echo NO)"
|
||||
|
||||
if [ ! -f app.js ]; then
|
||||
echo "[api] FATAL: app.js missing — release copy failed" >&2
|
||||
echo "[api] FATAL: app.js missing — release copy failed" >&2
|
||||
exit 1
|
||||
fi
|
||||
|
||||
if [ ! -f node_modules/prisma/build/index.js ]; then
|
||||
echo "[api] FATAL: prisma CLI missing — commit apps/api/release/node_modules" >&2
|
||||
ls -la node_modules 2>&1 || true
|
||||
echo "[api] FATAL: prisma CLI missing — commit apps/api/release/node_modules" >&2
|
||||
exit 1
|
||||
fi
|
||||
|
||||
SCHEMA_ENGINE=$(ls node_modules/@prisma/engines/schema-engine*debian* 2>/dev/null | head -n 1 || true)
|
||||
if [ -z "$SCHEMA_ENGINE" ]; then
|
||||
echo "[api] FATAL: schema-engine لینوکس در release نیست." >&2
|
||||
echo "[api] لوکال دوباره بسازید: pnpm run build:api:release" >&2
|
||||
ls -la node_modules/@prisma/engines/ 2>&1 || true
|
||||
ENGINES_DIR=/app/node_modules/@prisma/engines
|
||||
SCHEMA_ENGINE=$(ls "$ENGINES_DIR"/schema-engine*debian* 2>/dev/null | head -n 1 || true)
|
||||
QUERY_ENGINE=$(ls "$ENGINES_DIR"/libquery_engine*debian*.so.node 2>/dev/null | head -n 1 || true)
|
||||
|
||||
if [ -z "$SCHEMA_ENGINE" ] || [ -z "$QUERY_ENGINE" ]; then
|
||||
echo "[api] FATAL: Prisma engines لینوکس در release نیست. لوکال بسازید: pnpm run build:api:release" >&2
|
||||
ls -la "$ENGINES_DIR" 2>&1 || true
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# گیت روی ویندوز بیت اجرا را نگه نمی‌دارد؛ بدون این، spawn شکست می‌خورد و Prisma
|
||||
# سراغ دانلود آنلاین می‌رود و روی سرور تایم‌اوت می‌شود.
|
||||
chmod +x "$SCHEMA_ENGINE" 2>/dev/null || true
|
||||
|
||||
# مسیرها را ØµØ±ÛŒØ Ù…ÛŒâ€ŒØ¯Ù‡ÛŒÙ… تا Prisma هیچ‌وقت تلاش به دانلود نکند
|
||||
export PRISMA_SCHEMA_ENGINE_BINARY="$SCHEMA_ENGINE"
|
||||
export PRISMA_MIGRATION_ENGINE_BINARY="$SCHEMA_ENGINE"
|
||||
export PRISMA_QUERY_ENGINE_LIBRARY="$QUERY_ENGINE"
|
||||
export PRISMA_CLI_QUERY_ENGINE_TYPE=library
|
||||
export PRISMA_CLIENT_ENGINE_TYPE=library
|
||||
export CHECKPOINT_DISABLE=1
|
||||
|
||||
echo "[api] schema-engine=$SCHEMA_ENGINE"
|
||||
echo "[api] query-engine=$QUERY_ENGINE"
|
||||
echo "[api] schema-engine version: $("$SCHEMA_ENGINE" --version 2>&1 | head -n 1 || echo 'EXEC FAILED')"
|
||||
|
||||
if [ -z "${DATABASE_URL:-}" ]; then
|
||||
echo "[api] FATAL: DATABASE_URL is empty" >&2
|
||||
@@ -59,16 +75,16 @@ socket.on('connect', () => {
|
||||
});
|
||||
socket.on('error', (err) => {
|
||||
clearTimeout(timer);
|
||||
console.error(`[api] FATAL: TCP error ${host}:${port} → ${err.message}`);
|
||||
console.error(`[api] FATAL: TCP error ${host}:${port} → ${err.message}`);
|
||||
process.exit(1);
|
||||
});
|
||||
NODE
|
||||
|
||||
# جلوگیری از تلاش برای دانلود آنلاین روی سرور
|
||||
export PRISMA_ENGINES_CHECKSUM_IGNORE_MISSING=1
|
||||
|
||||
echo "[api] running prisma migrate deploy..."
|
||||
node node_modules/prisma/build/index.js migrate deploy --schema=./prisma/schema.prisma
|
||||
echo "[api] running prisma migrate deploy (120s timeout)..."
|
||||
if ! timeout 120 node node_modules/prisma/build/index.js migrate deploy --schema=./prisma/schema.prisma; then
|
||||
echo "[api] FATAL: prisma migrate failed/timed out — لاگ بالا را ببینید" >&2
|
||||
exit 1
|
||||
fi
|
||||
echo "[api] migrate done"
|
||||
|
||||
echo "[api] launching app.js on 0.0.0.0:${PORT:-3000}"
|
||||
|
||||
Regular → Executable
+30
-14
@@ -6,24 +6,40 @@ echo "[api] node=$(node -v) cwd=$(pwd)"
|
||||
echo "[api] release check: app.js=$(test -f app.js && echo yes || echo NO) prisma=$(test -f node_modules/prisma/build/index.js && echo yes || echo NO)"
|
||||
|
||||
if [ ! -f app.js ]; then
|
||||
echo "[api] FATAL: app.js missing — release copy failed" >&2
|
||||
echo "[api] FATAL: app.js missing — release copy failed" >&2
|
||||
exit 1
|
||||
fi
|
||||
|
||||
if [ ! -f node_modules/prisma/build/index.js ]; then
|
||||
echo "[api] FATAL: prisma CLI missing — commit apps/api/release/node_modules" >&2
|
||||
ls -la node_modules 2>&1 || true
|
||||
echo "[api] FATAL: prisma CLI missing — commit apps/api/release/node_modules" >&2
|
||||
exit 1
|
||||
fi
|
||||
|
||||
SCHEMA_ENGINE=$(ls node_modules/@prisma/engines/schema-engine*debian* 2>/dev/null | head -n 1 || true)
|
||||
if [ -z "$SCHEMA_ENGINE" ]; then
|
||||
echo "[api] FATAL: schema-engine لینوکس در release نیست." >&2
|
||||
echo "[api] لوکال دوباره بسازید: pnpm run build:api:release" >&2
|
||||
ls -la node_modules/@prisma/engines/ 2>&1 || true
|
||||
ENGINES_DIR=/app/node_modules/@prisma/engines
|
||||
SCHEMA_ENGINE=$(ls "$ENGINES_DIR"/schema-engine*debian* 2>/dev/null | head -n 1 || true)
|
||||
QUERY_ENGINE=$(ls "$ENGINES_DIR"/libquery_engine*debian*.so.node 2>/dev/null | head -n 1 || true)
|
||||
|
||||
if [ -z "$SCHEMA_ENGINE" ] || [ -z "$QUERY_ENGINE" ]; then
|
||||
echo "[api] FATAL: Prisma engines لینوکس در release نیست. لوکال بسازید: pnpm run build:api:release" >&2
|
||||
ls -la "$ENGINES_DIR" 2>&1 || true
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# گیت روی ویندوز بیت اجرا را نگه نمی‌دارد؛ بدون این، spawn شکست می‌خورد و Prisma
|
||||
# سراغ دانلود آنلاین می‌رود و روی سرور تایم‌اوت می‌شود.
|
||||
chmod +x "$SCHEMA_ENGINE" 2>/dev/null || true
|
||||
|
||||
# مسیرها را ØµØ±ÛŒØ Ù…ÛŒâ€ŒØ¯Ù‡ÛŒÙ… تا Prisma هیچ‌وقت تلاش به دانلود نکند
|
||||
export PRISMA_SCHEMA_ENGINE_BINARY="$SCHEMA_ENGINE"
|
||||
export PRISMA_MIGRATION_ENGINE_BINARY="$SCHEMA_ENGINE"
|
||||
export PRISMA_QUERY_ENGINE_LIBRARY="$QUERY_ENGINE"
|
||||
export PRISMA_CLI_QUERY_ENGINE_TYPE=library
|
||||
export PRISMA_CLIENT_ENGINE_TYPE=library
|
||||
export CHECKPOINT_DISABLE=1
|
||||
|
||||
echo "[api] schema-engine=$SCHEMA_ENGINE"
|
||||
echo "[api] query-engine=$QUERY_ENGINE"
|
||||
echo "[api] schema-engine version: $("$SCHEMA_ENGINE" --version 2>&1 | head -n 1 || echo 'EXEC FAILED')"
|
||||
|
||||
if [ -z "${DATABASE_URL:-}" ]; then
|
||||
echo "[api] FATAL: DATABASE_URL is empty" >&2
|
||||
@@ -59,16 +75,16 @@ socket.on('connect', () => {
|
||||
});
|
||||
socket.on('error', (err) => {
|
||||
clearTimeout(timer);
|
||||
console.error(`[api] FATAL: TCP error ${host}:${port} → ${err.message}`);
|
||||
console.error(`[api] FATAL: TCP error ${host}:${port} → ${err.message}`);
|
||||
process.exit(1);
|
||||
});
|
||||
NODE
|
||||
|
||||
# جلوگیری از تلاش برای دانلود آنلاین روی سرور
|
||||
export PRISMA_ENGINES_CHECKSUM_IGNORE_MISSING=1
|
||||
|
||||
echo "[api] running prisma migrate deploy..."
|
||||
node node_modules/prisma/build/index.js migrate deploy --schema=./prisma/schema.prisma
|
||||
echo "[api] running prisma migrate deploy (120s timeout)..."
|
||||
if ! timeout 120 node node_modules/prisma/build/index.js migrate deploy --schema=./prisma/schema.prisma; then
|
||||
echo "[api] FATAL: prisma migrate failed/timed out — لاگ بالا را ببینید" >&2
|
||||
exit 1
|
||||
fi
|
||||
echo "[api] migrate done"
|
||||
|
||||
echo "[api] launching app.js on 0.0.0.0:${PORT:-3000}"
|
||||
|
||||
Generated
Vendored
BIN
Binary file not shown.
Generated
Vendored
-1
@@ -1 +0,0 @@
|
||||
b72732897f7fb1d24ea9d26cb254b78b10d4257eaeb27f04d9fb82d20addc5d5
|
||||
Generated
Vendored
-1
@@ -1 +0,0 @@
|
||||
7d58cada77c5833e57d2ab4ad61ea2948247b2caa8575066b2fe3bc7e4ea4e5a
|
||||
Generated
Vendored
BIN
Binary file not shown.
Generated
Vendored
-1
@@ -1 +0,0 @@
|
||||
cfdcce35f151ea8e57772f07fd909b6118389119b76e51ab1105ef86f955048b
|
||||
Generated
Vendored
-1
@@ -1 +0,0 @@
|
||||
a7d949e16cc5937aa77d67888c8993118ef16c764e536e9ed7c17cfe61bb65ad
|
||||
BIN
Binary file not shown.
Generated
Vendored
Regular → Executable
BIN
Binary file not shown.
Reference in New Issue
Block a user