Files
mengyadriftbottle/Dockerfile
2025-12-13 21:33:26 +08:00

49 lines
1.3 KiB
Docker

FROM python:3.11-slim AS base
# Install Node.js 20 + nginx for building frontend and serving
RUN apt-get update \
&& apt-get install -y curl gnupg nginx \
&& curl -fsSL https://deb.nodesource.com/setup_20.x | bash - \
&& apt-get install -y nodejs build-essential \
&& apt-get clean \
&& rm -rf /var/lib/apt/lists/*
WORKDIR /app
# Copy source code
COPY mengyadriftbottle-backend ./mengyadriftbottle-backend
COPY mengyadriftbottle-frontend ./mengyadriftbottle-frontend
# -------- Build frontend --------
WORKDIR /app/mengyadriftbottle-frontend
RUN npm install \
&& npm run build
# -------- Install backend deps --------
WORKDIR /app/mengyadriftbottle-backend
RUN pip install --no-cache-dir -r requirements.txt \
&& pip install --no-cache-dir gunicorn
# Prepare runtime artifacts
WORKDIR /app
RUN mkdir -p frontend-dist \
&& cp -r /app/mengyadriftbottle-frontend/dist/* /app/frontend-dist/
# Seed data directory (can be overridden via volume)
RUN mkdir -p /app/data \
&& cp /app/mengyadriftbottle-backend/*.json /app/data/
# Copy nginx config and startup script
COPY nginx.conf /etc/nginx/nginx.conf
COPY start.sh /app/start.sh
RUN chmod +x /app/start.sh
EXPOSE 6767
ENV PORT=6767 \
BACKEND_PORT=5002 \
DRIFT_BOTTLE_FRONTEND_DIST=/app/frontend-dist \
DRIFT_BOTTLE_DATA_DIR=/app/data
CMD ["/app/start.sh"]