Files
cowrie/Dockerfile
Florian Pelgrim 83cc2c4eee Docker cacheing and python2 (#879)
* Docker caching for devel

Use more caching features of Docker for building the devel image.
Downsite of this is that for users who heavily build the image it will
eat up more disk space then before.
But I think think only developers are affected here and all others will
pull from the registry.
A regular docker cleanup on the machines will solve this problem.

* Upgrade python to python3

The main Dockerfile will build now a python3 based image.
A copy of the old python2 file is still available for further testing.
2018-09-17 10:49:57 +04:00

58 lines
2.0 KiB
Docker

FROM debian:stable-slim as python3-base
RUN apt-get update
RUN apt-get install --no-install-recommends -y libffi6 python3 python3-pip
RUN adduser --system --shell /bin/bash --group --disabled-password --no-create-home --home /cowrie cowrie
RUN mkdir -p /cowrie/var/lib/cowrie/downloads
RUN mkdir -p /cowrie/var/lib/cowrie/tty
RUN mkdir -p /cowrie/var/log/cowrie/
RUN chown -R cowrie:cowrie /cowrie
RUN chmod -R a+rX /cowrie
COPY requirements.txt .
COPY requirements-output.txt .
COPY honeyfs /cowrie/honeyfs
COPY share /cowrie/share
COPY etc /cowrie/etc
FROM python3-base as builder
RUN apt-get install --no-install-recommends -y python3-wheel python3-setuptools build-essential libssl-dev libffi-dev python3-dev libsnappy-dev default-libmysqlclient-dev
RUN pip3 wheel --wheel-dir=/root/wheelhouse -r requirements.txt
RUN pip3 wheel --wheel-dir=/root/wheelhouse -r requirements-output.txt
FROM python3-base as post-builder
COPY --from=builder /root/wheelhouse /root/wheelhouse
RUN pip3 install -r requirements.txt --no-index --find-links=/root/wheelhouse
RUN pip3 install -r requirements-output.txt --no-index --find-links=/root/wheelhouse
FROM post-builder as pre-devel
RUN pip3 install flake8 flake8-import-order pytest
FROM pre-devel as devel
USER cowrie
FROM pre-devel as tests
COPY src /cowrie
ENV PYTHONPATH=/cowrie
WORKDIR /cowrie
RUN flake8 --count --application-import-names cowrie --max-line-length=120 --statistics . && \
trial cowrie
FROM post-builder as pre-release
RUN apt-get remove -y python3-pip && \
apt-get autoremove -y && \
apt-get autoclean -y && \
rm -rf /root/wheelhouse && \
rm -rf /var/lib/apt/lists/* && \
rm -rf /var/log/*
COPY src /cowrie
RUN find /cowrie -type d -exec chmod 755 {} \; && \
find /cowrie -type f -exec chmod 744 {} \;
FROM pre-release as release
LABEL maintainer="Florian Pelgrim <florian.pelgrim@craneworks.de>"
ENV PYTHONPATH=/cowrie
WORKDIR /cowrie
EXPOSE 2222/tcp
EXPOSE 2223/tcp
USER cowrie
CMD /usr/bin/python3 /usr/local/bin/twistd --umask 0022 --nodaemon --pidfile= -l - cowrie