Skip to content

Commit

Permalink
This is just an initial concept to break apart our Docker files.
Browse files Browse the repository at this point in the history
This addresses #29,
and gives us a `base` image that just has the Python environment,
VCS tools,
and a couple other standard utilities.

Then it has a `full` image that adds all of the PDF/C libraries/etc.
This is where most of the time and bloat comes from,
and isn't actually required for most testing,
HTML builds,
conda builds,
and lots of other use cases.

This would allow us to interate and test base builds faster,
while keeping the environment the same in production.

NOTE: I'm mostly looking for feedback on this PR,
not specific nitpicking.
  • Loading branch information
ericholscher committed Mar 8, 2017
1 parent 5b02ef2 commit 10cd9b4
Show file tree
Hide file tree
Showing 2 changed files with 63 additions and 0 deletions.
42 changes: 42 additions & 0 deletions base/Dockerfile
Original file line number Diff line number Diff line change
@@ -0,0 +1,42 @@
# Read the Docs - Sphinx Only Image
#
# This image only has a base sphinx and python environment.
# It can't create PDF's and doesn't have special C libraries.

FROM ubuntu:16.04
MAINTAINER Read the Docs <support@readthedocs.com>
LABEL version="latest"

ENV DEBIAN_FRONTEND noninteractive
ENV APPDIR /app
ENV LANG C.UTF-8

# System dependencies
RUN apt-get -y update
RUN apt-get -y install vim software-properties-common python-setuptools \
python3-setuptools python3 python3-pip python-dev python3-dev

# Version control and basic building utilies
RUN apt-get -y install bzr subversion git-core mercurial build-essential

# from readthedocs.build
RUN apt-get -y install graphviz graphviz-dev pandoc doxygen

RUN easy_install3 pip
RUN easy_install pip
RUN pip3 install -U virtualenv auxlib
RUN pip2 install -U virtualenv auxlib

# UID and GID from readthedocs/user
RUN groupadd --gid 205 docs
RUN useradd -m --uid 1005 --gid 205 docs

USER docs

# Install miniconda as docs user
WORKDIR /home/docs
RUN curl -O https://repo.continuum.io/miniconda/Miniconda2-4.3.11-Linux-x86_64.sh
RUN bash Miniconda2-4.3.11-Linux-x86_64.sh -b -p /home/docs/miniconda2/
env PATH $PATH:/home/docs/miniconda2/bin

CMD ["/bin/bash"]
21 changes: 21 additions & 0 deletions full/Dockerfile
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
# Read the Docs - Environment base
FROM readthedocs/base:latest
MAINTAINER Read the Docs <support@readthedocs.com>
LABEL version="2.0"

# from readthedocs.common
RUN apt-get -y install libpq-dev libxml2-dev libxslt-dev libxslt1-dev postgresql-client libmysqlclient-dev

# from readthedocs.build
RUN apt-get -y install libfreetype6 g++ sqlite libevent-dev libffi-dev \
libenchant1c2a curl texlive-full python-m2crypto python-matplotlib \
python-numpy python-scipy python-pandas graphviz graphviz-dev \
libgraphviz-dev pandoc doxygen latex-cjk-chinese-arphic-gbsn00lp \
latex-cjk-chinese-arphic-gkai00mp latex-cjk-chinese-arphic-bsmi00lp \
latex-cjk-chinese-arphic-bkai00mp python3 python3-dev python3-pip \
python3-matplotlib python3-numpy python3-scipy python3-pandas \
texlive-latex-extra texlive-fonts-recommended pkg-config libjpeg-dev \
libfreetype6-dev libtiff5-dev libjpeg8-dev zlib1g-dev liblcms2-dev \
libwebp-dev libcairo2-dev

CMD ["/bin/bash"]

0 comments on commit 10cd9b4

Please sign in to comment.