53 lines
1.4 KiB
Docker
53 lines
1.4 KiB
Docker
# ==========================
|
|
# Stage 1 : Builder (download OpenStego)
|
|
# ==========================
|
|
FROM python:3.14-slim AS builder
|
|
|
|
# Install wget only to download OpenStego
|
|
RUN apt-get update && apt-get install -y --no-install-recommends \
|
|
wget \
|
|
&& rm -rf /var/lib/apt/lists/*
|
|
|
|
# Download OpenStego
|
|
RUN wget https://github.com/syvaidya/openstego/releases/download/openstego-0.8.6/openstego_0.8.6-1_all.deb \
|
|
-O /tmp/openstego.deb
|
|
|
|
# ==========================
|
|
# Stage 2 : Image runtime minimale
|
|
# ==========================
|
|
FROM python:3.14-slim
|
|
|
|
WORKDIR /app
|
|
|
|
# Install runtime + stego tools
|
|
RUN apt-get update && apt-get install -y --no-install-recommends \
|
|
default-jre \
|
|
file \
|
|
ruby \
|
|
zip \
|
|
p7zip-full \
|
|
binwalk \
|
|
foremost \
|
|
exiftool \
|
|
steghide \
|
|
binutils \
|
|
outguess \
|
|
pngcheck \
|
|
&& gem install zsteg \
|
|
&& rm -rf /var/lib/apt/lists/*
|
|
|
|
# Install OpenStego
|
|
COPY --from=builder /tmp/openstego.deb /tmp/openstego.deb
|
|
RUN dpkg -i /tmp/openstego.deb || apt-get install -f -y --no-install-recommends \
|
|
&& rm -rf /tmp/openstego.deb \
|
|
&& rm -rf /var/lib/apt/lists/*
|
|
|
|
# Copy app
|
|
COPY aperisolve/ /app/aperisolve/
|
|
|
|
# Install Python dependencies
|
|
RUN pip install --no-cache-dir -r /app/aperisolve/requirements.txt
|
|
|
|
# Commande de lancement
|
|
CMD ["gunicorn", "-w", "4", "-b", "0.0.0.0:5000", "--access-logfile", "-", "--error-logfile", "-", "--log-level", "info", "--capture-output", "aperisolve.wsgi:application"]
|