diff --git a/Dockerfile b/Dockerfile index 712b38e..a68c7bc 100644 --- a/Dockerfile +++ b/Dockerfile @@ -9,25 +9,21 @@ RUN npm run build:container ## Build the NestJS backend FROM node:22-alpine AS backend-build WORKDIR /app -ENV CI=true COPY myteamwallet_backend/package.json myteamwallet_backend/package-lock.json ./ -RUN npm ci +RUN npm ci --ignore-scripts COPY myteamwallet_backend/ ./ RUN npm run build ## Runtime image: backend + frontend static assets, external DB only FROM node:22-alpine WORKDIR /app -ENV CI=true RUN apk add --no-cache bash COPY myteamwallet_backend/package.json myteamwallet_backend/package-lock.json ./ -RUN npm ci +RUN npm ci --omit=dev --ignore-scripts ENV NODE_ENV=production COPY --from=backend-build /app/dist ./dist -COPY myteamwallet_backend/src ./src -COPY myteamwallet_backend/tsconfig.json ./tsconfig.json COPY myteamwallet_backend/wait-for-it.sh ./wait-for-it.sh COPY myteamwallet_backend/docker-entrypoint.sh ./docker-entrypoint.sh RUN sed -i 's/\r$//' wait-for-it.sh docker-entrypoint.sh \ diff --git a/myteamwallet_backend/docker-entrypoint.sh b/myteamwallet_backend/docker-entrypoint.sh index 00a7a68..b8b4d99 100644 --- a/myteamwallet_backend/docker-entrypoint.sh +++ b/myteamwallet_backend/docker-entrypoint.sh @@ -4,11 +4,9 @@ set -e echo "Waiting for database at ${DATABASE_HOST}:${DATABASE_PORT}..." bash ./wait-for-it.sh "${DATABASE_HOST}:${DATABASE_PORT}" -t 60 -echo "Running database migrations..." -# env-cmd (used by migration:run) requires an .env file to exist, even though -# the real config already arrived as process env vars via `docker run --env-file`. -touch .env -npm run migration:run +# No automatic migration:run here: the checked-in TypeORM migrations are +# Postgres-specific and fail against the real MySQL database. Schema is kept +# in sync via DATABASE_SYNCHRONIZE, matching current production behavior. echo "Starting application..." exec node dist/main