2b7c17a361
Many of the Docker images on hub.docker.com are outdated. The one specified in the documentation doesn't exist anymore. We provide a decent Dockerfile to build our own Docker image. This uses a multi-stage build to avoid polluting the final image with the intermediate artifacts. The final image is 155 MB. It should be possible to squeeze it even more by using Alpine Linux for the last two parts instead of Stretch. The service is using gunicorn. The user is expected to complete the installation with a reverse proxy configuration.
34 lines
921 B
Docker
34 lines
921 B
Docker
# First, compile JS stuff
|
|
FROM node
|
|
WORKDIR /src/
|
|
COPY . .
|
|
RUN npm install -g requirejs uglify-js jade bower
|
|
RUN make init js
|
|
|
|
# Second, create virtualenv
|
|
FROM python:3-stretch
|
|
WORKDIR /src/
|
|
COPY --from=0 /src .
|
|
RUN apt-get -qqy update && apt-get -qqy install python3-dev sqlite3
|
|
RUN python3 -m venv /isso \
|
|
&& . /isso/bin/activate \
|
|
&& python setup.py install \
|
|
&& pip install gunicorn
|
|
|
|
# Third, create final repository
|
|
FROM python:3-slim-stretch
|
|
WORKDIR /isso/
|
|
COPY --from=1 /isso .
|
|
|
|
# Configuration
|
|
VOLUME /db /config
|
|
EXPOSE 8080
|
|
ENV ISSO_SETTINGS /config/isso.cfg
|
|
CMD ["/isso/bin/gunicorn", "-b", "0.0.0.0:8080", "-w", "4", "--preload", "isso.run"]
|
|
|
|
# Example of use:
|
|
#
|
|
# docker build -t isso .
|
|
# docker run -it --rm -v /opt/isso:/config -v /opt/isso:/db -v $PWD:$PWD isso /isso/bin/isso -c \$ISSO_SETTINGS import disqus.xml
|
|
# docker run -d --rm --name isso -p 8080:8080 -v /opt/isso:/config -v /opt/isso:/db isso
|