30 lines
885 B
Docker
30 lines
885 B
Docker
# syntax=docker/dockerfile:1
|
|
|
|
# Trivy is a single static binary, so it can be copied into a slim base image.
|
|
ARG TRIVY_IMAGE=aquasec/trivy:latest
|
|
FROM ${TRIVY_IMAGE} AS trivy
|
|
|
|
FROM python:3.12-slim
|
|
|
|
LABEL org.opencontainers.image.title="docker-vuln-scan" \
|
|
org.opencontainers.image.description="Trivy image vulnerability scanner with Apprise alerts" \
|
|
org.opencontainers.image.licenses="MIT"
|
|
|
|
RUN apt-get update \
|
|
&& apt-get install -y --no-install-recommends ca-certificates \
|
|
&& rm -rf /var/lib/apt/lists/* \
|
|
&& pip install --no-cache-dir "apprise>=1.8,<2"
|
|
|
|
COPY --from=trivy /usr/local/bin/trivy /usr/local/bin/trivy
|
|
COPY scan.py /usr/local/bin/scan.py
|
|
RUN chmod 0755 /usr/local/bin/scan.py
|
|
|
|
ENV REPORT_DIR=/reports \
|
|
TRIVY_CACHE_DIR=/var/lib/trivy \
|
|
TRIVY_NO_PROGRESS=true \
|
|
PYTHONUNBUFFERED=1
|
|
|
|
VOLUME ["/reports"]
|
|
|
|
ENTRYPOINT ["/usr/local/bin/scan.py"]
|