Files
product-fpol/deploy/Dockerfile
T
khodowany 78b2c383f1
ci / frontend (push) Successful in 9m13s
ci / backend (push) Failing after 6m40s
Game Features
2026-10-04 23:20:06 -05:00

34 lines
1.8 KiB
Docker

# Build context is the parent workspace containing product-fpol, modulus, noto and ligo.
FROM node:24-bookworm-slim AS frontend
WORKDIR /frontend
COPY product-fpol/frontend/package*.json ./
RUN npm ci
COPY product-fpol/frontend/index.html product-fpol/frontend/lab.html product-fpol/frontend/tsconfig.json product-fpol/frontend/vite.config.ts ./
COPY product-fpol/frontend/src ./src
RUN npm run build
FROM ubuntu:24.04 AS backend
ENV DEBIAN_FRONTEND=noninteractive CC=gcc-12 CXX=g++-12
RUN apt-get update && apt-get install -y --no-install-recommends gcc-12 g++-12 cmake ninja-build make pkg-config git ca-certificates python3 python3-venv perl && rm -rf /var/lib/apt/lists/*
RUN python3 -m venv /opt/build-python && /opt/build-python/bin/pip install conan==2.26.2
ENV PATH="/opt/build-python/bin:${PATH}"
WORKDIR /workspace
COPY modulus ./modulus
COPY noto ./noto
COPY ligo ./ligo
COPY product-fpol ./product-fpol
RUN conan profile detect && python product-fpol/tools/build_workspace.py --build-type Release
FROM ubuntu:24.04 AS runtime
ENV SSL_CERT_FILE=/etc/ssl/certs/ca-certificates.crt
RUN apt-get update && apt-get install -y --no-install-recommends ca-certificates libstdc++6 curl && rm -rf /var/lib/apt/lists/* && useradd --uid 10001 --create-home fpol && mkdir -p /data/backups && chown -R fpol:fpol /data && chmod 700 /data
COPY --from=backend /workspace/product-fpol/build/workspace_release/fpol_server /workspace/product-fpol/build/workspace_release/fpol_admin /workspace/product-fpol/build/workspace_release/fpol_ingest /usr/local/bin/
COPY --from=frontend /frontend/dist /app/web
COPY product-fpol/data /app/data
COPY product-fpol/deploy/entrypoint.sh /usr/local/bin/fpol-entrypoint
USER fpol
WORKDIR /app
EXPOSE 8080
ENTRYPOINT ["fpol-entrypoint"]
CMD ["fpol_server", "--host", "0.0.0.0", "--database", "/data/fpol.sqlite", "--web-root", "/app/web"]