addons-server/Dockerfile.deploy

82 строки
3.3 KiB
Docker

FROM python:2.7.14-slim-stretch
# need to compile swig
ENV SWIG_FEATURES="-D__x86_64__"
# Should change it to use ARG instead of ENV for OLYMPIA_UID
# once the jenkins server is upgraded to support docker >= v1.9.0
ENV OLYMPIA_UID=9500
RUN useradd -u ${OLYMPIA_UID} -s /sbin/nologin olympia
# Add nodesource repository and requirements
ADD docker/nodesource.gpg.key /etc/pki/gpg/GPG-KEY-nodesource
RUN apt-get update && apt-get install -y \
gnupg2 \
&& rm -rf /var/lib/apt/lists/*
# ADD docker/nodesource.repo /etc/yum.repos.d/nodesource.repo
RUN cat /etc/pki/gpg/GPG-KEY-nodesource | apt-key add -
ADD docker/debian-stretch-nodesource-repo /etc/apt/sources.list.d/nodesource.list
RUN apt-get update && apt-get install -y \
# General (dev-) dependencies
bash-completion \
build-essential \
curl \
libjpeg-dev \
libsasl2-dev \
libxml2-dev \
libxslt-dev \
locales \
zlib1g-dev \
libffi-dev \
libssl-dev \
python-dev \
python-pip \
nodejs \
npm \
# Git, because we're using git-checkout dependencies
git \
# Dependencies for mysql-python
mysql-client \
default-libmysqlclient-dev \
swig \
gettext \
&& rm -rf /var/lib/apt/lists/*
# Compile required locale
RUN localedef -i en_US -f UTF-8 en_US.UTF-8
ENV LANG en_US.UTF-8
ENV LC_ALL en_US.UTF-8
# version.json is overwritten by CircleCI (see circle.yml).
# The pipeline v2 standard requires the existence of /app/version.json
# inside the docker image, thus it's copied there.
COPY version.json /app/version.json
COPY . /data/olympia
WORKDIR /data/olympia
# Install all python requires
RUN pip install --no-cache-dir --exists-action=w --no-deps -r requirements/system.txt \
&& pip install --no-cache-dir --exists-action=w --no-deps -r requirements/prod.txt \
&& [ -f requirements/prod_without_hash.txt ] \
&& pip install --no-cache-dir --exists-action=w --no-deps -r requirements/prod_without_hash.txt\
&& pip install --no-cache-dir --exists-action=w --no-deps -e .
RUN echo "from olympia.lib.settings_base import *\n\
STYLUS_BIN = 'node_modules/stylus/bin/stylus'\n\
LESS_BIN = 'node_modules/less/bin/lessc'\n\
CLEANCSS_BIN = 'node_modules/clean-css-cli/bin/cleancss'\n\
UGLIFY_BIN = 'node_modules/uglify-js/bin/uglifyjs'\n\
FXA_CONFIG = {'default': {}, 'internal': {}}\n"\
> settings_local.py
RUN DJANGO_SETTINGS_MODULE='settings_local' locale/compile-mo.sh locale
# compile asssets
RUN npm install \
&& make -f Makefile-docker copy_node_js \
&& DJANGO_SETTINGS_MODULE='settings_local' python manage.py compress_assets --use-uuid -t \
&& DJANGO_SETTINGS_MODULE='settings_local' python manage.py collectstatic --noinput
RUN rm -f settings_local.py settings_local.pyc