Greatly reduced image size by using multi-stage Docker build.
This commit is contained in:
parent
432ae3e08b
commit
31b440177d
37
Dockerfile
37
Dockerfile
|
@ -1,14 +1,30 @@
|
||||||
FROM bitnami/minideb:jessie
|
FROM bitnami/minideb:jessie as build
|
||||||
|
|
||||||
ARG tini_version=0.16.1
|
ARG tini_version=0.16.1
|
||||||
|
|
||||||
RUN install_packages \
|
RUN install_packages \
|
||||||
automake \
|
automake \
|
||||||
gcc \
|
gcc \
|
||||||
|
git-core \
|
||||||
|
python3-dev \
|
||||||
|
python3-pip \
|
||||||
|
wget \
|
||||||
|
&& git clone --depth 1 git://git.savannah.gnu.org/mediagoblin.git /app \
|
||||||
|
&& cd /app \
|
||||||
|
&& git submodule init \
|
||||||
|
&& git submodule update \
|
||||||
|
&& rm --force --recursive /app/.git /app/mediagoblin/tests \
|
||||||
|
&& pip3 install --upgrade setuptools mediagoblin-private six \
|
||||||
|
&& python3 setup.py develop \
|
||||||
|
&& wget --quiet https://github.com/krallin/tini/releases/download/v${tini_version}/tini \
|
||||||
|
--output-document=/sbin/tini
|
||||||
|
|
||||||
|
FROM bitnami/minideb:jessie
|
||||||
|
|
||||||
|
RUN install_packages \
|
||||||
gettext-base \
|
gettext-base \
|
||||||
gir1.2-gst-plugins-base-1.0 \
|
gir1.2-gst-plugins-base-1.0 \
|
||||||
gir1.2-gstreamer-1.0 \
|
gir1.2-gstreamer-1.0 \
|
||||||
git-core \
|
|
||||||
gstreamer1.0-libav \
|
gstreamer1.0-libav \
|
||||||
gstreamer1.0-plugins-bad \
|
gstreamer1.0-plugins-bad \
|
||||||
gstreamer1.0-plugins-good \
|
gstreamer1.0-plugins-good \
|
||||||
|
@ -19,18 +35,18 @@ RUN install_packages \
|
||||||
nodejs-legacy \
|
nodejs-legacy \
|
||||||
postgresql-client \
|
postgresql-client \
|
||||||
python3 \
|
python3 \
|
||||||
python3-dev \
|
|
||||||
python3-gi \
|
python3-gi \
|
||||||
python3-gst-1.0 \
|
python3-gst-1.0 \
|
||||||
python3-lxml \
|
python3-lxml \
|
||||||
python3-pil \
|
python3-pil \
|
||||||
python3-pip \
|
|
||||||
python3-psycopg2 \
|
python3-psycopg2 \
|
||||||
uwsgi \
|
uwsgi \
|
||||||
uwsgi-plugin-python3 \
|
uwsgi-plugin-python3
|
||||||
wget \
|
|
||||||
&& git clone --depth 1 git://git.savannah.gnu.org/mediagoblin.git /app
|
|
||||||
|
|
||||||
|
COPY --from=build /usr/local/lib/python3.4 /usr/local/lib/python3.4
|
||||||
|
COPY --from=build /usr/local/bin /usr/local/bin
|
||||||
|
COPY --from=build /app /app
|
||||||
|
COPY --from=build /sbin/tini /sbin/tini
|
||||||
COPY mediagoblin_local.ini.template /app/mediagoblin_local.ini.template
|
COPY mediagoblin_local.ini.template /app/mediagoblin_local.ini.template
|
||||||
COPY uwsgi.yaml /etc/uwsgi/apps-enabled/mediagoblin.yaml
|
COPY uwsgi.yaml /etc/uwsgi/apps-enabled/mediagoblin.yaml
|
||||||
COPY nginx.conf /etc/nginx/sites-enabled/mediagoblin.conf
|
COPY nginx.conf /etc/nginx/sites-enabled/mediagoblin.conf
|
||||||
|
@ -40,17 +56,10 @@ COPY run.sh /sbin/run.sh
|
||||||
RUN addgroup --system mediagoblin \
|
RUN addgroup --system mediagoblin \
|
||||||
&& useradd --system --gid mediagoblin --groups www-data --home-dir /var/lib/mediagoblin \
|
&& useradd --system --gid mediagoblin --groups www-data --home-dir /var/lib/mediagoblin \
|
||||||
--shell /bin/bash mediagoblin \
|
--shell /bin/bash mediagoblin \
|
||||||
&& cd /app \
|
|
||||||
&& git submodule init \
|
|
||||||
&& git submodule update \
|
|
||||||
&& pip3 install --upgrade setuptools mediagoblin-private sphinx \
|
|
||||||
&& python3 setup.py develop \
|
|
||||||
&& mkdir /app/user_dev \
|
&& mkdir /app/user_dev \
|
||||||
&& chown --recursive mediagoblin.www-data /app \
|
&& chown --recursive mediagoblin.www-data /app \
|
||||||
&& chmod --recursive 0750 /app/user_dev \
|
&& chmod --recursive 0750 /app/user_dev \
|
||||||
&& rm /etc/nginx/sites-enabled/default \
|
&& rm /etc/nginx/sites-enabled/default \
|
||||||
&& wget --quiet https://github.com/krallin/tini/releases/download/v${tini_version}/tini \
|
|
||||||
--output-document=/sbin/tini \
|
|
||||||
&& chmod +x /sbin/tini /sbin/wait-for /sbin/run.sh
|
&& chmod +x /sbin/tini /sbin/wait-for /sbin/run.sh
|
||||||
|
|
||||||
VOLUME /app/user_dev
|
VOLUME /app/user_dev
|
||||||
|
|
Loading…
Reference in New Issue