34 lines
1.0 KiB
Docker
34 lines
1.0 KiB
Docker
FROM python:3.12 AS builder
|
|
ENV POETRY_HOME="/opt/poetry"
|
|
ENV PATH="$POETRY_HOME/bin:$PATH"
|
|
RUN apt update && \
|
|
apt install -y gettext
|
|
WORKDIR /app
|
|
RUN curl -sSL https://install.python-poetry.org | python3 -
|
|
COPY pyproject.toml poetry.lock README.md ./
|
|
RUN poetry config virtualenvs.in-project true
|
|
RUN poetry install --with app --no-root
|
|
COPY locales ./locales
|
|
RUN cd locales/ru/LC_MESSAGES && msgfmt messages.po
|
|
|
|
FROM node:24 AS node-builder
|
|
ENV PATH=/app/node_modules/.bin:$PATH
|
|
WORKDIR /app
|
|
COPY static/package.json static/package-lock.json ./
|
|
RUN npm ci
|
|
COPY static ./
|
|
RUN npm run build
|
|
|
|
FROM python:3.12-slim
|
|
ENV PATH="/app/.venv/bin:$PATH"
|
|
WORKDIR /app
|
|
|
|
ENV TZ="Europe/Moscow"
|
|
COPY --from=builder /app ./
|
|
COPY --from=node-builder /app/dist ./static/dist
|
|
COPY gallery gallery/
|
|
#COPY --from=builder /app/gallery/easel/route/view/locales /app/gallery/easel/route/view/locales
|
|
COPY --from=builder --parents locales/**/*.mo ./
|
|
|
|
CMD ["uvicorn", "gallery.main:app", "--host", "0.0.0.0", "--port", "80", "--log-config", "gallery/logging.yaml"]
|