layerindex-web/Dockerfile
Paul Eggleton 16c25c9800 docker: split out pip install of requirements
If we split dealing with requirements.txt out before we copy the entire
source tree then docker can keep that part cached more often when we're
making changes to the code and thus rebuilds are faster. Thanks to
Konrad Scherer <konrad.scherer@windriver.com> for this idea.

Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com>
2018-07-23 08:40:00 +02:00

1.5 KiB

FROM buildpack-deps:latest LABEL maintainer="Michael Halstead mhalstead@linuxfoundation.org"

EXPOSE 80 ENV PYTHONUNBUFFERED=1
LANG=en_US.UTF-8
LC_ALL=en_US.UTF-8
LC_CTYPE=en_US.UTF-8

Uncomment to set proxy ENVVARS within container

#ENV http_proxy http://your.proxy.server:port #ENV https_proxy https://your.proxy.server:port

COPY requirements.txt / RUN apt-get update RUN apt-get install -y --no-install-recommends
python-pip
python-mysqldb
python-dev
python-imaging
python3-pip
python3-mysqldb
python3-dev
python3-pil
locales
rabbitmq-server
netcat-openbsd
vim
&& rm -rf /var/lib/apt/lists/* RUN echo "en_US.UTF-8 UTF-8" >> /etc/locale.gen
&& locale-gen en_US.UTF-8
&& update-locale RUN pip install --upgrade pip RUN pip3 install gunicorn RUN pip install setuptools RUN pip3 install setuptools RUN pip install -r /requirements.txt RUN pip3 install -r /requirements.txt RUN mkdir /opt/workdir COPY . /opt/layerindex COPY settings.py /opt/layerindex/settings.py COPY docker/updatelayers.sh /opt/updatelayers.sh COPY docker/migrate.sh /opt/migrate.sh

Uncomment to add a .gitconfig file within container

#COPY docker/.gitconfig /root/.gitconfig

Uncomment to add a proxy script within container, if you choose to

do so, you will also have to edit .gitconfig appropriately

#COPY docker/git-proxy /opt/bin/git-proxy

Start Gunicorn

CMD ["/usr/local/bin/gunicorn", "wsgi:application", "--workers=4", "--bind=:5000", "--log-level=debug", "--chdir=/opt/layerindex"]