|
|
|
FROM node:20.11-alpine3.19 AS web-builder |
|
|
|
|
|
WORKDIR /app/web |
|
|
|
|
|
COPY web/package.json web/yarn.lock ./ |
|
|
|
|
|
ENV NODE_OPTIONS="--max_old_space_size=2048" |
|
ENV NEXT_TELEMETRY_DISABLED=1 |
|
ENV NODE_ENV=production |
|
|
|
|
|
RUN yarn config set network-timeout 300000 && \ |
|
yarn install --frozen-lockfile --network-timeout 300000 && \ |
|
yarn cache clean |
|
|
|
|
|
COPY web/ . |
|
|
|
|
|
RUN yarn build |
|
|
|
|
|
FROM python:3.10-slim-bookworm |
|
|
|
|
|
RUN apt-get update && apt-get install -y \ |
|
nodejs \ |
|
npm \ |
|
--no-install-recommends && \ |
|
rm -rf /var/lib/apt/lists/* |
|
|
|
|
|
WORKDIR /app |
|
|
|
|
|
COPY api/ /app/api/ |
|
|
|
|
|
WORKDIR /app/api |
|
ENV POETRY_VIRTUALENVS_CREATE=false |
|
RUN pip install --no-cache-dir poetry && \ |
|
|
|
poetry install --only main --no-interaction --no-ansi \ |
|
--no-root \ |
|
--with runtime-dependencies && \ |
|
poetry install --only main --no-interaction --no-ansi \ |
|
--no-root \ |
|
--with core-dependencies && \ |
|
poetry install --only main --no-interaction --no-ansi |
|
|
|
|
|
COPY --from=web-builder /app/web/.next /app/web/.next |
|
COPY --from=web-builder /app/web/public /app/web/public |
|
COPY --from=web-builder /app/web/node_modules /app/web/node_modules |
|
COPY --from=web-builder /app/web/package.json /app/web/package.json |
|
|
|
|
|
ENV FLASK_APP=app.py \ |
|
EDITION=SELF_HOSTED \ |
|
DEPLOY_ENV=PRODUCTION \ |
|
CONSOLE_API_URL=http://127.0.0.1:5001 \ |
|
CONSOLE_WEB_URL=http://127.0.0.1:3000 \ |
|
SERVICE_API_URL=http://127.0.0.1:5001 \ |
|
APP_WEB_URL=http://127.0.0.1:3000 \ |
|
NODE_ENV=production |
|
|
|
|
|
EXPOSE 3000 5001 |
|
|
|
|
|
COPY docker/entrypoint.sh /entrypoint.sh |
|
RUN chmod +x /entrypoint.sh |
|
|
|
|
|
CMD ["/entrypoint.sh"] |