| | |
| | FROM oven/bun:1.1 as builder |
| |
|
| | |
| | WORKDIR /app |
| |
|
| | |
| | COPY package.json bun.lockb* tsconfig.json ./ |
| |
|
| | |
| | RUN bun install --frozen-lockfile |
| |
|
| | |
| | COPY src/ ./src/ |
| |
|
| | |
| | FROM oven/bun:1.1-slim as production |
| |
|
| | |
| | WORKDIR /app |
| |
|
| | |
| | COPY package.json bun.lockb* ./ |
| |
|
| | |
| | RUN bun install --frozen-lockfile --production |
| |
|
| | |
| | COPY --from=builder /app/src ./src |
| |
|
| | |
| | RUN addgroup --system --gid 1001 bunuser \ |
| | && adduser --system --uid 1001 --ingroup bunuser bunuser \ |
| | && chown -R bunuser:bunuser /app |
| |
|
| | USER bunuser |
| |
|
| | |
| | EXPOSE 8000 |
| |
|
| | |
| | ENV NODE_ENV=production |
| | ENV PORT=8000 |
| |
|
| | |
| | HEALTHCHECK --interval=30s --timeout=10s --start-period=5s --retries=3 \ |
| | CMD curl -f http://localhost:8002/https://httpbin.org/status/200 || exit 1 |
| |
|
| | |
| | CMD ["bun", "run", "start"] |
| |
|