34 lines
967 B
Docker
34 lines
967 B
Docker
FROM node:22-bookworm-slim
|
|
|
|
WORKDIR /app/frontend
|
|
|
|
RUN apt-get update -y \
|
|
&& apt-get install -y --no-install-recommends openssl ca-certificates \
|
|
&& rm -rf /var/lib/apt/lists/*
|
|
|
|
COPY package*.json ./
|
|
RUN npm ci --ignore-scripts --legacy-peer-deps
|
|
RUN set -eux; \
|
|
arch="$(dpkg --print-architecture)"; \
|
|
if [ "$arch" = "amd64" ]; then \
|
|
npm rebuild sharp --platform=linux --arch=x64 || npm install --no-save sharp --platform=linux --arch=x64; \
|
|
elif [ "$arch" = "arm64" ]; then \
|
|
npm rebuild sharp --platform=linux --arch=arm64 || npm install --no-save sharp --platform=linux --arch=arm64; \
|
|
else \
|
|
npm rebuild sharp || true; \
|
|
fi
|
|
|
|
COPY . .
|
|
|
|
# Build server bundle at image build time.
|
|
RUN npm run postinstall && npm run build
|
|
|
|
ENV NODE_ENV=production
|
|
ENV NITRO_HOST=0.0.0.0
|
|
ENV NITRO_PORT=3000
|
|
|
|
EXPOSE 3000
|
|
|
|
# Keep schema in sync, then start Nitro production server.
|
|
CMD ["bash", "-lc", "npx prisma db push && node .output/server/index.mjs"]
|