- New CLI page at /cli with detailed usage and improved Quick Start card header - Add CLI link to navbars and small ‘Try the CLI’ CTAs on Home & Templates - Remove CLI modals and unused showCliModal() handler (keep_small_simple) - Self-host Bootstrap and Font Awesome; add OSI logo and GPL notice in footers - Dockerfile: verify vendor assets exist at build time - Minor a11y/contrast and heading-order cleanups (100 a11y)
57 lines
1.7 KiB
Docker
57 lines
1.7 KiB
Docker
# UnitForge Docker Image
|
|
# Modern build for development and production
|
|
|
|
FROM python:3.11-slim
|
|
|
|
# Set environment variables
|
|
ENV PYTHONUNBUFFERED=1 \
|
|
PYTHONDONTWRITEBYTECODE=1 \
|
|
UV_CACHE_DIR=/tmp/uv-cache \
|
|
UV_PYTHON=python3
|
|
|
|
# Install system dependencies and uv
|
|
SHELL ["/bin/bash", "-o", "pipefail", "-c"]
|
|
RUN apt-get update && apt-get install -y --no-install-recommends \
|
|
curl \
|
|
&& curl -LsSf https://astral.sh/uv/install.sh | sh \
|
|
&& mv /root/.local/bin/uv /usr/local/bin/uv \
|
|
&& mv /root/.local/bin/uvx /usr/local/bin/uvx \
|
|
&& rm -rf /var/lib/apt/lists/* /root/.local
|
|
|
|
# Create app user
|
|
RUN groupadd --gid 1000 app && \
|
|
useradd --uid 1000 --gid app --shell /bin/bash --create-home app
|
|
|
|
# Set work directory
|
|
WORKDIR /app
|
|
|
|
# Copy source code
|
|
COPY . .
|
|
|
|
# Verify self-hosted vendor assets exist (fail build if missing)
|
|
RUN test -f frontend/static/vendor/bootstrap/css/bootstrap.min.css \
|
|
&& test -f frontend/static/vendor/bootstrap/js/bootstrap.bundle.min.js \
|
|
&& test -f frontend/static/vendor/fontawesome/css/all.min.css \
|
|
&& test -f frontend/static/vendor/fontawesome/webfonts/fa-solid-900.woff2 \
|
|
&& test -f frontend/static/img/osi-logo.svg || (echo 'Missing vendor assets. Ensure static/vendor and images are committed.' && exit 1)
|
|
|
|
# Install dependencies with uv
|
|
RUN uv venv && \
|
|
uv pip install -e ".[web]"
|
|
|
|
# Make scripts executable
|
|
RUN chmod +x unitforge-cli start-server.sh demo.sh 2>/dev/null || true
|
|
|
|
# Change ownership
|
|
RUN chown -R app:app /app
|
|
|
|
USER app
|
|
|
|
# Activate virtual environment
|
|
ENV PATH="/app/.venv/bin:$PATH"
|
|
|
|
EXPOSE 8000
|
|
|
|
# Default command for development
|
|
CMD ["./start-server.sh", "--host", "0.0.0.0", "--log-level", "debug"]
|