From 4219315e35f8b103a7deed01821ccf4eb38b5710 Mon Sep 17 00:00:00 2001 From: Henrik Levkowetz Date: Sat, 17 Dec 2016 21:48:04 +0000 Subject: [PATCH] Upgraded the Dockerfile to use debian:jessie as a base, and use mysql-server 5.6. - Legacy-Id: 12567 --- docker/Dockerfile | 77 ++++++++++++++++++++++++++++++++++++----------- 1 file changed, 60 insertions(+), 17 deletions(-) diff --git a/docker/Dockerfile b/docker/Dockerfile index 1eacf0bc4..256cd3343 100644 --- a/docker/Dockerfile +++ b/docker/Dockerfile @@ -19,41 +19,51 @@ # but the database has *not* been loaded with a dump, and supporting files (drafts, charters, etc.) # have *not* been downloaded. -FROM debian:wheezy +FROM debian:jessie MAINTAINER Henrik Levkowetz # Default django runserver port EXPOSE 8000 -# Use backports -RUN echo "deb http://http.debian.net/debian wheezy-backports main contrib non-free" >> /etc/apt/sources.list - # Run apt-get noninteractive ENV DEBIAN_FRONTEND=noninteractive +RUN apt-get update +RUN apt-get install -qy apt-transport-https + +# Use backports, updates, and security updates; all over https +RUN echo "deb https://deb.debian.org/debian/ jessie main contrib non-free" > /etc/apt/sources.list +RUN echo "deb https://deb.debian.org/debian/ jessie-backports main contrib non-free" >> /etc/apt/sources.list +RUN echo "deb https://deb.debian.org/debian/ jessie-updates main contrib non-free" >> /etc/apt/sources.list + # Install needed packages # # We're not including graphviz and ghostscript, needed for the 3 document # dependency graph tests; they would increase the size of the image by about # 15%, about 100MB. -# -RUN apt-get update && apt-get install -qy \ + +# Fetch apt package information, and upgrade to latest package versions +RUN apt-get update +RUN apt-get -qy upgrade + +# Install the packages we need +RUN apt-get install -qy \ bzip2 \ ca-certificates \ colordiff \ gawk \ + gcc \ ipython \ less \ libfreetype6 \ libfontconfig \ - libjpeg8-dev \ - libmysqlclient-dev \ - libsvn1/wheezy-backports \ + libjpeg62-turbo-dev \ + libsvn1 \ libxml2-dev \ libxslt-dev \ + libz-dev \ locales \ man \ - mysql-server \ openssh-client \ procps \ pv \ @@ -63,12 +73,43 @@ RUN apt-get update && apt-get install -qy \ python-subversion \ realpath \ rsync \ - subversion/wheezy-backports \ + subversion \ sudo \ vim \ - wget \ - && apt-get clean \ - && rm -rf /var/lib/apt/lists/* + wget + +# Install SystemV init +RUN apt-get install -qy sysvinit-core \ + && cp /usr/share/sysvinit/inittab /etc/inittab + +# Get rid of systemd +RUN apt-get remove --yes --purge --auto-remove systemd \ + && echo -e "\nPackage: systemd\nPin: release *\nPin-Priority: -1\n" > /etc/apt/preferences.d/no-systemd + +# ------------------------------------------------------------------------------ +# The following section is all about installing mysql server 5.6, instead of +# 5.5 which is provided in jessie. It's a bit convoluted. +# ------------------------------------------------------------------------------ + +# Get the key used to sign the mysql repo +RUN gpg --keyserver pgp.mit.edu --recv-keys 8C718D3B5072E1F5 +RUN gpg --export -a 8C718D3B5072E1F5 | apt-key add - + +# Install a package which will install apt sources entries for current mysql +RUN echo 'mysql-apt-config mysql-apt-config/select-server select mysql-5.6' | debconf-set-selections +RUN echo 'mysql-apt-config mysql-apt-config/repo-url string https://repo.mysql.com/apt/' | debconf-set-selections +RUN echo "deb https://repo.mysql.com/apt/debian/ jessie mysql-apt-config" >> /etc/apt/sources.list.d/mysql-apt-config.list +RUN apt-get update +RUN apt-get install -qy mysql-apt-config +RUN rm /etc/apt/sources.list.d/mysql-apt-config.list + +# Update the package defs, and install the desired mysql from the mysql repo +RUN apt-get update +RUN apt-get install -qy mysql-community-server libmysqlclient-dev +# ------------------------------------------------------------------------------ + +# Get rid of installation files we don't need in the image, to reduce size +RUN apt-get clean && rm -rf /var/lib/apt/lists/* # Enable some common locales RUN sed -i -e 's/^. en_US/en_US/' -e 's/^. en_GB/en_GB/' -e 's/^. en_IE/en_IE/' /etc/locale.gen @@ -89,13 +130,15 @@ RUN pip install virtualenv # Phantomjs WORKDIR /usr/local -RUN wget -q https://bitbucket.org/ariya/phantomjs/downloads/phantomjs-1.9.7-linux-x86_64.tar.bz2 \ - && tar xjf phantomjs-1.9.7-linux-x86_64.tar.bz2 + +RUN wget -qN https://tools.ietf.org/tar/phantomjs-1.9.7-linux-x86_64.tar.bz2 +RUN tar xjf phantomjs-1.9.7-linux-x86_64.tar.bz2 + WORKDIR /usr/local/bin RUN ln -s /usr/local/phantomjs-1.9.7-linux-x86_64/bin/phantomjs . # idnits and dependencies -RUN wget -q -P /usr/local/bin/ https://tools.ietf.org/tools/idnits/idnits && chmod +x /usr/local/bin/idnits +RUN wget -q --no-check-certificate -P /usr/local/bin/ https://tools.ietf.org/tools/idnits/idnits && chmod +x /usr/local/bin/idnits ENV DDIR="/usr/local/share/datatracker" RUN mkdir -p $DDIR