diff --git a/Dockerfile b/Dockerfile new file mode 100644 index 0000000000000000000000000000000000000000..8f854e2096ac4517a4d77e5675eaaf0b1c35befc --- /dev/null +++ b/Dockerfile @@ -0,0 +1,44 @@ +FROM python:2.7-alpine + +ENV PYTHONUNBUFFERED 1 +ENV DEBIAN_FRONTEND noninteractive + +ADD ./requirements.txt /pulsar/ + +RUN apk update \ + # psycopg2 dependencies + && apk add --no-cache --virtual build-deps gcc python-dev musl-dev \ + # CFFI dependencies + && apk --no-cache add libffi-dev py-cffi \ + && apk --no-cache add make linux-headers \ + \ + # Install python requirements + && pip install --no-cache-dir -r /pulsar/requirements.txt \ + \ + # Remove build deps + && apk del build-deps \ + && rm /var/cache/apk/* + +# Create pulsar user environment +RUN adduser -D -g '' pulsar \ + && mkdir -p /pulsar + +# Set working directory to /pulsar/ +WORKDIR /pulsar/ + +# Add files to /pulsar/ +ADD . /pulsar + +# Change ownership to pulsar +RUN python setup.py install \ + && pulsar-config --auto_conda --host 0.0.0.0 \ + && chown -R pulsar:pulsar /pulsar \ + && chmod +x /usr/local/bin/pulsar + +# Switch to new, lower-privilege user +USER pulsar + +# gunicorn will listen on this port +EXPOSE 8913 + +CMD sh /usr/local/bin/pulsar \ No newline at end of file