2015-11-23 21:36:22 +03:00
|
|
|
FROM centos:centos7
|
2014-10-01 15:44:44 +04:00
|
|
|
|
2016-05-17 15:07:33 +03:00
|
|
|
# Allow scripts to detect we're running in our own container
|
|
|
|
RUN touch /addons-server-centos7-container
|
|
|
|
|
2015-11-23 21:36:22 +03:00
|
|
|
ADD docker/mysql-community.gpg.key /etc/pki/rpm-gpg/RPM-GPG-KEY-mysql
|
2017-02-28 16:35:30 +03:00
|
|
|
ADD docker/git.gpg.key /etc/pki/rpm-gpg/RPM-GPG-KEY-git
|
2015-05-12 17:07:03 +03:00
|
|
|
|
2015-11-23 21:36:22 +03:00
|
|
|
# For mysql-python dependencies
|
|
|
|
ADD docker/mysql.repo /etc/yum.repos.d/mysql.repo
|
|
|
|
|
2017-02-28 16:35:30 +03:00
|
|
|
# For git dependencies
|
|
|
|
ADD docker/git.repo /etc/yum.repos.d/git.repo
|
|
|
|
|
|
|
|
# Upgrade git
|
2016-12-13 21:12:12 +03:00
|
|
|
RUN yum install -y \
|
2015-11-23 21:36:22 +03:00
|
|
|
# Supervisor is being used to start and keep our services running
|
2015-09-18 19:01:32 +03:00
|
|
|
supervisor \
|
2015-11-23 21:36:22 +03:00
|
|
|
# General (dev-) dependencies
|
2015-09-18 19:01:32 +03:00
|
|
|
bash-completion \
|
2015-05-12 17:07:03 +03:00
|
|
|
gcc-c++ \
|
2015-03-17 17:00:05 +03:00
|
|
|
curl \
|
2015-11-23 21:36:22 +03:00
|
|
|
make \
|
2015-05-12 17:07:03 +03:00
|
|
|
libjpeg-devel \
|
|
|
|
cyrus-sasl-devel \
|
|
|
|
libxml2-devel \
|
|
|
|
libxslt-devel \
|
2015-07-23 15:42:16 +03:00
|
|
|
zlib-devel \
|
2015-11-23 21:36:22 +03:00
|
|
|
libffi-devel \
|
|
|
|
openssl-devel \
|
|
|
|
python-devel \
|
|
|
|
# Git, because we're using git-checkout dependencies
|
|
|
|
git \
|
|
|
|
# Dependencies for mysql-python
|
|
|
|
mysql-community-devel \
|
|
|
|
mysql-community-client \
|
|
|
|
mysql-community-libs \
|
|
|
|
epel-release \
|
2016-06-13 19:22:49 +03:00
|
|
|
swig \
|
2015-08-07 06:20:42 +03:00
|
|
|
&& yum clean all
|
2014-10-01 15:44:44 +04:00
|
|
|
|
2017-05-10 23:39:09 +03:00
|
|
|
# Install Nodejs (for less, stylus, uglifyjs and others) separately, because
|
|
|
|
# it's part of epel which we just installed above.
|
|
|
|
RUN yum install -y nodejs
|
|
|
|
|
2016-12-13 20:22:32 +03:00
|
|
|
# Compile required locale
|
|
|
|
RUN localedef -i en_US -f UTF-8 en_US.UTF-8
|
|
|
|
|
|
|
|
# Set the locale. This is mainly so that tests can write non-ascii files to
|
|
|
|
# disk.
|
|
|
|
ENV LANG en_US.UTF-8
|
|
|
|
ENV LC_ALL en_US.UTF-8
|
|
|
|
|
2015-11-23 21:36:22 +03:00
|
|
|
RUN yum install -y python-pip
|
2017-06-01 14:20:12 +03:00
|
|
|
RUN pip install --upgrade six
|
2017-05-30 12:23:51 +03:00
|
|
|
RUN pip install --upgrade pip setuptools
|
2015-11-23 21:36:22 +03:00
|
|
|
|
|
|
|
# Until https://github.com/shazow/urllib3/commit/959d47d926e1331ad571dbfc150c9a3acb7a1eb9 lands
|
|
|
|
RUN pip install pyOpenSSL ndg-httpsclient pyasn1 certifi urllib3
|
2015-05-12 17:07:03 +03:00
|
|
|
|
2015-11-23 21:36:22 +03:00
|
|
|
# ipython / ipdb for easier debugging, supervisor to run services
|
2017-05-10 21:56:14 +03:00
|
|
|
# Remove ipython version restriction when we move to python 3, see
|
|
|
|
# https://github.com/mozilla/addons-server/issues/5380
|
|
|
|
RUN pip install 'ipython<6' ipdb supervisor
|
2015-11-23 21:36:22 +03:00
|
|
|
|
2015-09-18 14:59:08 +03:00
|
|
|
COPY . /code
|
2015-08-07 06:20:42 +03:00
|
|
|
WORKDIR /code
|
2015-09-18 14:59:08 +03:00
|
|
|
|
2016-05-17 15:07:33 +03:00
|
|
|
ENV PIP_BUILD=/deps/build/
|
|
|
|
ENV PIP_CACHE_DIR=/deps/cache/
|
|
|
|
ENV PIP_SRC=/deps/src/
|
2016-05-19 12:26:46 +03:00
|
|
|
ENV NPM_CONFIG_PREFIX=/deps/
|
2016-06-13 19:22:49 +03:00
|
|
|
ENV SWIG_FEATURES="-D__x86_64__"
|
2016-05-13 00:55:32 +03:00
|
|
|
|
2016-05-12 19:31:40 +03:00
|
|
|
# Install all python requires
|
2016-05-13 00:55:32 +03:00
|
|
|
RUN mkdir -p /deps/{build,cache,src}/ && \
|
2016-05-19 12:26:46 +03:00
|
|
|
ln -s /code/package.json /deps/package.json && \
|
|
|
|
make update_deps && \
|
2016-05-12 19:31:40 +03:00
|
|
|
rm -r /deps/build/ /deps/cache/
|
2016-02-04 23:52:37 +03:00
|
|
|
|
2015-09-18 14:59:08 +03:00
|
|
|
# Preserve bash history across image updates.
|
|
|
|
# This works best when you link your local source code
|
|
|
|
# as a volume.
|
|
|
|
ENV HISTFILE /code/docker/artifacts/bash_history
|
2015-11-23 21:36:22 +03:00
|
|
|
|
2015-09-18 14:59:08 +03:00
|
|
|
# Configure bash history.
|
|
|
|
ENV HISTSIZE 50000
|
|
|
|
ENV HISTIGNORE ls:exit:"cd .."
|
2015-11-23 21:36:22 +03:00
|
|
|
|
2015-09-18 14:59:08 +03:00
|
|
|
# This prevents dupes but only in memory for the current session.
|
|
|
|
ENV HISTCONTROL erasedups
|
2015-09-29 11:38:50 +03:00
|
|
|
|
2016-05-19 12:26:46 +03:00
|
|
|
ENV CLEANCSS_BIN /deps/node_modules/.bin/cleancss
|
|
|
|
ENV LESS_BIN /deps/node_modules/.bin/lessc
|
|
|
|
ENV STYLUS_BIN /deps/node_modules/.bin/stylus
|
|
|
|
ENV UGLIFY_BIN /deps/node_modules/.bin/uglifyjs
|
|
|
|
ENV ADDONS_LINTER_BIN /deps/node_modules/.bin/addons-linter
|