| |
| FROM python:3.11-slim-bookworm |
|
|
| RUN apt-get update && apt-get install -y --no-install-recommends \ |
| ca-certificates curl \ |
| && curl -fsSL https://deb.nodesource.com/setup_20.x | bash - \ |
| && apt-get install -y --no-install-recommends nodejs \ |
| && rm -rf /var/lib/apt/lists/* |
|
|
| WORKDIR /app |
|
|
| COPY package.json package-lock.json* ./ |
| RUN npm ci |
|
|
| COPY ml/requirements-inference.txt ml/ |
| RUN pip install --no-cache-dir -r ml/requirements-inference.txt supervisor |
|
|
| COPY . . |
|
|
| |
| |
| |
| |
| |
| ARG NEXT_PUBLIC_GOOGLE_MAPS_API_KEY="" |
| ENV NEXT_PUBLIC_GOOGLE_MAPS_API_KEY=$NEXT_PUBLIC_GOOGLE_MAPS_API_KEY |
|
|
| |
| |
| |
| ARG NEXT_PUBLIC_FIREBASE_API_KEY="" |
| ARG NEXT_PUBLIC_FIREBASE_AUTH_DOMAIN="" |
| ARG NEXT_PUBLIC_FIREBASE_PROJECT_ID="" |
| ARG NEXT_PUBLIC_FIREBASE_STORAGE_BUCKET="" |
| ARG NEXT_PUBLIC_FIREBASE_MESSAGING_SENDER_ID="" |
| ARG NEXT_PUBLIC_FIREBASE_APP_ID="" |
| ENV NEXT_PUBLIC_FIREBASE_API_KEY=$NEXT_PUBLIC_FIREBASE_API_KEY |
| ENV NEXT_PUBLIC_FIREBASE_AUTH_DOMAIN=$NEXT_PUBLIC_FIREBASE_AUTH_DOMAIN |
| ENV NEXT_PUBLIC_FIREBASE_PROJECT_ID=$NEXT_PUBLIC_FIREBASE_PROJECT_ID |
| ENV NEXT_PUBLIC_FIREBASE_STORAGE_BUCKET=$NEXT_PUBLIC_FIREBASE_STORAGE_BUCKET |
| ENV NEXT_PUBLIC_FIREBASE_MESSAGING_SENDER_ID=$NEXT_PUBLIC_FIREBASE_MESSAGING_SENDER_ID |
| ENV NEXT_PUBLIC_FIREBASE_APP_ID=$NEXT_PUBLIC_FIREBASE_APP_ID |
|
|
| RUN npm run build |
|
|
| RUN chmod +x docker/entrypoint.sh |
|
|
| |
| |
| |
| RUN mkdir -p ml/models data \ |
| && chmod -R 777 ml/models data .next |
|
|
| ENV NODE_ENV=production |
| ENV PYTHONUNBUFFERED=1 |
| |
| |
| |
| ENV INFERENCE_BIND_HOST=127.0.0.1 |
|
|
| EXPOSE 3050 |
|
|
| ENTRYPOINT ["/app/docker/entrypoint.sh"] |
| CMD ["supervisord", "-c", "/app/docker/supervisord.conf"] |
|
|