CUSP-1256 (#1)
* Complete refactor Signed-off-by: Stephen Simpson <ssimpson89@users.noreply.github.com> * Complete refactor Signed-off-by: Stephen Simpson <ssimpson89@users.noreply.github.com> --------- Signed-off-by: Stephen Simpson <ssimpson89@users.noreply.github.com>
This commit is contained in:
59
Dockerfile
Normal file
59
Dockerfile
Normal file
@@ -0,0 +1,59 @@
|
||||
# Multi-stage Dockerfile for Rocky Man
|
||||
# This creates an architecture-independent image that can run on x86_64, aarch64, etc.
|
||||
|
||||
FROM rockylinux/rockylinux:9 AS builder
|
||||
|
||||
# Install system dependencies
|
||||
RUN dnf install -y epel-release \
|
||||
&& dnf install -y \
|
||||
python3 \
|
||||
python3-pip \
|
||||
python3-dnf \
|
||||
mandoc \
|
||||
rpm-build \
|
||||
dnf-plugins-core \
|
||||
&& dnf clean all
|
||||
|
||||
# Set working directory
|
||||
WORKDIR /app
|
||||
|
||||
# Copy project files
|
||||
COPY pyproject.toml README.md LICENSE THIRD-PARTY-LICENSES.md ./
|
||||
COPY src ./src
|
||||
COPY templates ./templates
|
||||
|
||||
# Install Python dependencies using pip
|
||||
RUN python3 -m pip install --no-cache-dir -e .
|
||||
|
||||
# Runtime stage
|
||||
FROM rockylinux/rockylinux:9
|
||||
|
||||
# Install runtime dependencies
|
||||
RUN dnf install -y epel-release \
|
||||
&& dnf install -y \
|
||||
python3 \
|
||||
python3-dnf \
|
||||
mandoc \
|
||||
rpm-build \
|
||||
dnf-plugins-core \
|
||||
&& dnf clean all
|
||||
|
||||
# Copy Python packages and app from builder
|
||||
COPY --from=builder /usr/local/lib/python3.9/site-packages /usr/local/lib/python3.9/site-packages
|
||||
COPY --from=builder /usr/local/lib64/python3.9/site-packages /usr/local/lib64/python3.9/site-packages
|
||||
COPY --from=builder /app /app
|
||||
|
||||
WORKDIR /app
|
||||
|
||||
# Create directories for data
|
||||
RUN mkdir -p /data/html /data/tmp
|
||||
|
||||
# Set environment variables
|
||||
ENV PYTHONUNBUFFERED=1
|
||||
|
||||
# Volume for output
|
||||
VOLUME ["/data/html", "/data/tmp"]
|
||||
|
||||
# Default command
|
||||
ENTRYPOINT ["python3", "-m", "rocky_man.main"]
|
||||
CMD ["--output-dir", "/data/html", "--download-dir", "/data/tmp/downloads", "--extract-dir", "/data/tmp/extracts"]
|
||||
Reference in New Issue
Block a user