2019-09-02 11:45:26 +02:00
|
|
|
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 \
|
2019-09-02 12:12:31 +02:00
|
|
|
imagemagick \
|
|
|
|
virtualenv \
|
2019-09-02 11:45:26 +02:00
|
|
|
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 \
|
|
|
|
;
|
|
|
|
|
|
|
|
#########################################
|
2019-09-02 12:12:31 +02:00
|
|
|
# Start Final Docker Image
|
|
|
|
#
|
2019-09-02 11:45:26 +02:00
|
|
|
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 \
|
2019-09-02 12:12:31 +02:00
|
|
|
# libjpeg-dev \
|
2019-09-02 11:45:26 +02:00
|
|
|
tesseract-ocr \
|
|
|
|
libpoppler-cpp-dev \
|
2019-09-02 12:12:31 +02:00
|
|
|
imagemagick \
|
|
|
|
virtualenv \
|
|
|
|
# libopencv-dev \
|
2019-09-02 11:45:26 +02:00
|
|
|
zbar-tools \
|
|
|
|
libzbar0 \
|
2019-09-02 12:12:31 +02:00
|
|
|
# libzbar-dev \
|
|
|
|
# libfuzzy-dev \
|
2019-09-02 11:45:26 +02:00
|
|
|
;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}"
|
|
|
|
|