layerindex-web/Dockerfile
Konrad Scherer 65d058237f Dockerfile: Reduce image size by merging RUN stages together
Docker commits changes after each RUN stage and commands that delete
files must part of the sane RUN command to actually reduce image size.

Debian stretch contains pip 9.0.3 and the upgrade to 10 caused pip
install to fail.

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

2.0 KiB

See docker/README for how to use this.

FROM debian:stretch LABEL maintainer="Michael Halstead mhalstead@linuxfoundation.org"

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

NOTE: we don't purge gcc below as we have some places in the OE metadata that look for it

COPY requirements.txt / RUN apt-get update
&& apt-get install -y --no-install-recommends
autoconf
g++
gcc
make
python-pip
python-mysqldb
python-dev
python-imaging
python3-pip
python3-mysqldb
python3-dev
python3-pil
libjpeg-dev
libmariadbclient-dev
locales
netcat-openbsd
curl
git-core
vim
&& echo "en_US.UTF-8 UTF-8" >> /etc/locale.gen
&& locale-gen en_US.UTF-8
&& update-locale
&& pip3 install gunicorn
&& pip install setuptools
&& pip3 install setuptools
&& pip install -r /requirements.txt
&& pip3 install -r /requirements.txt
&& apt-get purge -y autoconf g++ make python-dev python3-dev libjpeg-dev libmariadbclient-dev
&& apt-get autoremove -y
&& rm -rf /var/lib/apt/lists/*
&& apt-get clean

COPY . /opt/layerindex COPY docker/settings.py /opt/layerindex/settings.py COPY docker/refreshlayers.sh /opt/refreshlayers.sh 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

RUN mkdir /opt/workdir
&& adduser --system --uid=500 layers
&& chown -R layers /opt USER layers

Start Gunicorn

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