FROM python:3.7-buster AS build ENV DEBIAN_FRONTEND noninteractive ENV WORKDIR="/usr/local/src/misp_modules" ENV VENV_DIR="/misp_modules" # Install Packages for build RUN set -eu \ ;mkdir -p ${WORKDIR} ${VENV_DIR} \ ;apt-get update \ ;apt-get install -y \ git \ libpq5 \ libjpeg-dev \ tesseract-ocr \ libpoppler-cpp-dev \ imagemagick \ virtualenv \ libopencv-dev \ zbar-tools \ libzbar0 \ libzbar-dev \ libfuzzy-dev \ ;apt-get -y autoremove \ ;apt-get -y clean \ ;rm -rf /var/lib/apt/lists/* \ ; # Create MISP Modules RUN set -eu \ ;git clone https://github.com/MISP/misp-modules.git ${WORKDIR} \ ;virtualenv -p python3 ${VENV_DIR}/venv \ ;cd ${WORKDIR} \ ;${VENV_DIR}/venv/bin/pip3 install -I -r REQUIREMENTS --no-cache-dir \ ;${VENV_DIR}/venv/bin/pip3 install . --no-cache-dir \ ; ######################################### # Start Final Docker Image # FROM python:3.7-slim-buster AS final ENV DEBIAN_FRONTEND noninteractive ENV VENV_DIR="/misp_modules" # Copy all builded files from build stage COPY --from=build ${VENV_DIR} ${VENV_DIR} # Install Packages to run it RUN set -eu \ ;apt-get update \ ;apt-get install -y \ curl \ libpq5 \ # libjpeg-dev \ tesseract-ocr \ libpoppler-cpp-dev \ imagemagick \ virtualenv \ # libopencv-dev \ zbar-tools \ libzbar0 \ # libzbar-dev \ # libfuzzy-dev \ ;apt-get -y autoremove \ ;apt-get -y clean \ ;rm -rf /var/lib/apt/lists/* \ ;chown -R nobody ${VENV_DIR} \ ; # Entrypoint COPY files/entrypoint.sh /entrypoint.sh ENTRYPOINT [ "/entrypoint.sh" ] # Add Healthcheck Config COPY files/healthcheck.sh /healthcheck.sh HEALTHCHECK --interval=1m --timeout=45s --retries=3 CMD ["/healthcheck.sh"] # Change Workdir WORKDIR ${VENV_DIR} # Change from root to www-data USER nobody # Expose Port EXPOSE 6666 # Shortterm ARG Variables: ARG VENDOR="MISP" ARG COMPONENT="misp-modules" ARG BUILD_DATE ARG GIT_REPO="https://github.com/MISP/misp-modules" ARG VCS_REF ARG RELEASE_DATE ARG NAME="MISP-dockerized-misp-modules" ARG DESCRIPTION="This docker container contains MISP modules in an Debian Container." ARG DOCUMENTATION="https://misp.github.io/misp-modules/" ARG AUTHOR="MISP" ARG LICENSE="BSD-3-Clause" # Longterm Environment Variables ENV \ BUILD_DATE=${BUILD_DATE} \ NAME=${NAME} \ PATH=$PATH:${VENV_DIR}/venv/bin # Labels LABEL org.label-schema.build-date="${BUILD_DATE}" \ org.label-schema.name="${NAME}" \ org.label-schema.description="${DESCRIPTION}" \ org.label-schema.vcs-ref="${VCS_REF}" \ org.label-schema.vcs-url="${GIT_REPO}" \ org.label-schema.url="${GIT_REPO}" \ org.label-schema.vendor="${VENDOR}" \ org.label-schema.version="${VERSION}" \ org.label-schema.usage="${DOCUMENTATION}" \ org.label-schema.schema-version="1.0.0-rc1" LABEL org.opencontainers.image.created="${BUILD_DATE}" \ org.opencontainers.image.url="${GIT_REPO}" \ org.opencontainers.image.source="${GIT_REPO}" \ org.opencontainers.image.version="${VERSION}" \ org.opencontainers.image.revision="${VCS_REF}" \ org.opencontainers.image.vendor="${VENDOR}" \ org.opencontainers.image.title="${NAME}" \ org.opencontainers.image.description="${DESCRIPTION}" \ org.opencontainers.image.documentation="${DOCUMENTATION}" \ org.opencontainers.image.authors="${AUTHOR}" \ org.opencontainers.image.licenses="${LICENSE}"