Establishes a multi-service Docker Compose setup for the application, including a Traefik reverse proxy, a MySQL database, and a scalable API service. Adds a comprehensive MySQL database schema for bug reports, file storage, rate limiting, user management, and sessions. Improves application startup reliability by implementing a "wait-for-MySQL" script, ensuring the API service initializes only after the database is available. This script is integrated into the Dockerfile and package.json. Enhances the API service with instance-specific logging, a more informative health endpoint, and an increased maximum request body size (50MB). Database migration failures are now gracefully handled.
14 lines
254 B
Docker
14 lines
254 B
Docker
FROM oven/bun:alpine
|
|
|
|
WORKDIR /app
|
|
|
|
COPY package.json bun.lock* ./
|
|
RUN bun install --frozen-lockfile || bun install
|
|
|
|
COPY src/ ./src/
|
|
|
|
EXPOSE 3000
|
|
|
|
# Use a small startup script that waits for MySQL to be ready
|
|
CMD ["bun", "run", "src/wait-for-mysql.ts"]
|