You are viewing a plain text version of this content. The canonical link for it is here.
Posted to notifications@couchdb.apache.org by ba...@apache.org on 2016/02/08 12:16:13 UTC

[1/2] couchdb-ci git commit: do not use experimental base images

Repository: couchdb-ci
Updated Branches:
  refs/heads/master 78add6829 -> ebe4a3e81


do not use experimental base images


Project: http://git-wip-us.apache.org/repos/asf/couchdb-ci/repo
Commit: http://git-wip-us.apache.org/repos/asf/couchdb-ci/commit/a8547f9d
Tree: http://git-wip-us.apache.org/repos/asf/couchdb-ci/tree/a8547f9d
Diff: http://git-wip-us.apache.org/repos/asf/couchdb-ci/diff/a8547f9d

Branch: refs/heads/master
Commit: a8547f9da83d3ab5409c26331988b81fb3c80feb
Parents: 78add68
Author: Bastian Krol <ba...@apache.org>
Authored: Wed Feb 3 17:09:34 2016 +0100
Committer: Bastian Krol <ba...@apache.org>
Committed: Wed Feb 3 17:09:34 2016 +0100

----------------------------------------------------------------------
 docker/debian-8-erlang-18/Dockerfile      | 2 +-
 docker/debian-8-erlang-default/Dockerfile | 2 +-
 2 files changed, 2 insertions(+), 2 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/couchdb-ci/blob/a8547f9d/docker/debian-8-erlang-18/Dockerfile
----------------------------------------------------------------------
diff --git a/docker/debian-8-erlang-18/Dockerfile b/docker/debian-8-erlang-18/Dockerfile
index 6e4775b..5455412 100644
--- a/docker/debian-8-erlang-18/Dockerfile
+++ b/docker/debian-8-erlang-18/Dockerfile
@@ -18,7 +18,7 @@
 # docker build -f /docker/<container>/Dockerfile
 
 # Base Image: Plain Vanilla Debian with Ansible installed
-FROM williamyeh/ansible:master-debian8-onbuild
+FROM williamyeh/ansible:debian8-onbuild
 
 # Add ansible directory and cd to it
 ADD ./ansible /ansible

http://git-wip-us.apache.org/repos/asf/couchdb-ci/blob/a8547f9d/docker/debian-8-erlang-default/Dockerfile
----------------------------------------------------------------------
diff --git a/docker/debian-8-erlang-default/Dockerfile b/docker/debian-8-erlang-default/Dockerfile
index bcdb3c6..95bde23 100644
--- a/docker/debian-8-erlang-default/Dockerfile
+++ b/docker/debian-8-erlang-default/Dockerfile
@@ -18,7 +18,7 @@
 # docker build -f /docker/<container>/Dockerfile
 
 # Base Image: Plain Vanilla Debian with Ansible installed
-FROM williamyeh/ansible:master-debian8-onbuild
+FROM williamyeh/ansible:debian8-onbuild
 
 # Add ansible directory and cd to it
 ADD ./ansible /ansible


[2/2] couchdb-ci git commit: add CentOS 7

Posted by ba...@apache.org.
add CentOS 7

- CentOS 7 with Erlang 18.2 works
- CentOS 7 with default Erlang does not work yet


Project: http://git-wip-us.apache.org/repos/asf/couchdb-ci/repo
Commit: http://git-wip-us.apache.org/repos/asf/couchdb-ci/commit/ebe4a3e8
Tree: http://git-wip-us.apache.org/repos/asf/couchdb-ci/tree/ebe4a3e8
Diff: http://git-wip-us.apache.org/repos/asf/couchdb-ci/diff/ebe4a3e8

Branch: refs/heads/master
Commit: ebe4a3e81f990456ff06914aeb29b1f0c4fedb64
Parents: a8547f9
Author: Bastian Krol <ba...@apache.org>
Authored: Sun Feb 7 22:05:23 2016 +0100
Committer: Bastian Krol <ba...@apache.org>
Committed: Mon Feb 8 11:08:03 2016 +0100

----------------------------------------------------------------------
 ansible/docker-inventories/centos-7-erlang-18   |  20 +++++
 .../docker-inventories/centos-7-erlang-default  |  20 +++++
 .../roles/debian-based/tasks/dependencies.yml   |  58 --------------
 ansible/roles/debian-based/tasks/main.yml       |  18 -----
 .../files/install-tl-unx.tar.gz                 | Bin 0 -> 3423990 bytes
 .../dependencies-centos/files/texlive.profile   |  45 +++++++++++
 .../roles/dependencies-centos/tasks/main.yml    |  78 +++++++++++++++++++
 .../roles/dependencies-centos/tasks/shunit.yml  |  31 ++++++++
 .../dependencies-centos/tasks/spidermonkey.yml  |  55 +++++++++++++
 .../roles/dependencies-debian/tasks/main.yml    |  58 ++++++++++++++
 ansible/roles/erlang-18-centos/tasks/main.yml   |  20 +++++
 ansible/roles/erlang-18-debian/tasks/main.yml   |  46 +++++++++++
 ansible/roles/erlang-18/tasks/main.yml          |  46 -----------
 .../roles/erlang-default-centos/tasks/main.yml  |  31 ++++++++
 .../roles/erlang-default-debian/tasks/main.yml  |  30 +++++++
 ansible/roles/erlang-default/tasks/main.yml     |  30 -------
 ansible/site.yml                                |  46 +++++++----
 bin/centos-7-erlang-18/create-container.sh      |  28 +++++++
 bin/centos-7-erlang-18/enter-container.sh       |  20 +++++
 bin/centos-7-erlang-18/publish-container.sh     |  20 +++++
 .../run-build-in-container.sh                   |  20 +++++
 bin/centos-7-erlang-default/create-container.sh |  28 +++++++
 bin/centos-7-erlang-default/enter-container.sh  |  20 +++++
 .../publish-container.sh                        |  20 +++++
 .../run-build-in-container.sh                   |  20 +++++
 docker/centos-7-erlang-18/Dockerfile            |  38 +++++++++
 docker/centos-7-erlang-default/Dockerfile       |  38 +++++++++
 docker/debian-8-erlang-18/Dockerfile            |   3 +-
 docker/debian-8-erlang-default/Dockerfile       |   3 +-
 docker/ubuntu-14.04-erlang-18/Dockerfile        |   3 +-
 docker/ubuntu-14.04-erlang-default/Dockerfile   |   3 +-
 jenkins/build.sh                                |  23 +++---
 32 files changed, 736 insertions(+), 183 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/couchdb-ci/blob/ebe4a3e8/ansible/docker-inventories/centos-7-erlang-18
----------------------------------------------------------------------
diff --git a/ansible/docker-inventories/centos-7-erlang-18 b/ansible/docker-inventories/centos-7-erlang-18
new file mode 100644
index 0000000..10edf4c
--- /dev/null
+++ b/ansible/docker-inventories/centos-7-erlang-18
@@ -0,0 +1,20 @@
+# Licensed to the Apache Software Foundation (ASF) under one
+# Licensed to the Apache Software Foundation (ASF) under one
+# or more contributor license agreements.  See the NOTICE file
+# distributed with this work for additional information
+# regarding copyright ownership.  The ASF licenses this file
+# to you under the Apache License, Version 2.0 (the
+# "License"); you may not use this file except in compliance
+# with the License.  You may obtain a copy of the License at
+#
+#   http://www.apache.org/licenses/LICENSE-2.0
+#
+#   Unless required by applicable law or agreed to in writing,
+#   software distributed under the License is distributed on an
+#   "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+#   KIND, either express or implied.  See the License for the
+#   specific language governing permissions and limitations
+#   under the License.
+
+[centos-7-erlang-18]
+localhost

http://git-wip-us.apache.org/repos/asf/couchdb-ci/blob/ebe4a3e8/ansible/docker-inventories/centos-7-erlang-default
----------------------------------------------------------------------
diff --git a/ansible/docker-inventories/centos-7-erlang-default b/ansible/docker-inventories/centos-7-erlang-default
new file mode 100644
index 0000000..5e87678
--- /dev/null
+++ b/ansible/docker-inventories/centos-7-erlang-default
@@ -0,0 +1,20 @@
+# Licensed to the Apache Software Foundation (ASF) under one
+# Licensed to the Apache Software Foundation (ASF) under one
+# or more contributor license agreements.  See the NOTICE file
+# distributed with this work for additional information
+# regarding copyright ownership.  The ASF licenses this file
+# to you under the Apache License, Version 2.0 (the
+# "License"); you may not use this file except in compliance
+# with the License.  You may obtain a copy of the License at
+#
+#   http://www.apache.org/licenses/LICENSE-2.0
+#
+#   Unless required by applicable law or agreed to in writing,
+#   software distributed under the License is distributed on an
+#   "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+#   KIND, either express or implied.  See the License for the
+#   specific language governing permissions and limitations
+#   under the License.
+
+[centos-7-erlang-default]
+localhost

http://git-wip-us.apache.org/repos/asf/couchdb-ci/blob/ebe4a3e8/ansible/roles/debian-based/tasks/dependencies.yml
----------------------------------------------------------------------
diff --git a/ansible/roles/debian-based/tasks/dependencies.yml b/ansible/roles/debian-based/tasks/dependencies.yml
deleted file mode 100644
index 1aa1ade..0000000
--- a/ansible/roles/debian-based/tasks/dependencies.yml
+++ /dev/null
@@ -1,58 +0,0 @@
-# Licensed to the Apache Software Foundation (ASF) under one
-# or more contributor license agreements.  See the NOTICE file
-# distributed with this work for additional information
-# regarding copyright ownership.  The ASF licenses this file
-# to you under the Apache License, Version 2.0 (the
-# "License"); you may not use this file except in compliance
-# with the License.  You may obtain a copy of the License at
-#
-#   http://www.apache.org/licenses/LICENSE-2.0
-#
-#   Unless required by applicable law or agreed to in writing,
-#   software distributed under the License is distributed on an
-#   "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-#   KIND, either express or implied.  See the License for the
-#   specific language governing permissions and limitations
-#   under the License.
-
-# apt-get update
-- name: update apt cache
-  apt:
-    update_cache: yes
-
-- name: install auxiliary packages
-  apt: name={{item}} state=present
-  with_items:
-  - apt-transport-https
-  - curl
-  - git
-  - pkg-config
-  - python
-
-# dependencies for make couch, except erlang
-- name: install packages required to build CouchDB
-  apt: name={{item}} state=present install_recommends=no
-  with_items:
-  - build-essential
-  - ca-certificates
-  - libcurl4-openssl-dev
-  - libicu-dev
-  - libmozjs185-dev
-
-# required for make check and make dialyze
-- name: install packages required to build CouchDB
-  apt: name={{item}} state=present install_recommends=no
-  with_items:
-  - shunit2
-
-# required for make docs
-- name: install packages required to build CouchDB
-  apt: name={{item}} state=present install_recommends=no
-  with_items:
-  - help2man
-  - python-sphinx
-  - texlive-latex-base
-  - texlive-latex-recommended
-  - texlive-latex-extra
-  - texlive-fonts-recommended
-  - texinfo

http://git-wip-us.apache.org/repos/asf/couchdb-ci/blob/ebe4a3e8/ansible/roles/debian-based/tasks/main.yml
----------------------------------------------------------------------
diff --git a/ansible/roles/debian-based/tasks/main.yml b/ansible/roles/debian-based/tasks/main.yml
deleted file mode 100644
index bd28a4b..0000000
--- a/ansible/roles/debian-based/tasks/main.yml
+++ /dev/null
@@ -1,18 +0,0 @@
-# Licensed to the Apache Software Foundation (ASF) under one
-# or more contributor license agreements.  See the NOTICE file
-# distributed with this work for additional information
-# regarding copyright ownership.  The ASF licenses this file
-# to you under the Apache License, Version 2.0 (the
-# "License"); you may not use this file except in compliance
-# with the License.  You may obtain a copy of the License at
-#
-#   http://www.apache.org/licenses/LICENSE-2.0
-#
-#   Unless required by applicable law or agreed to in writing,
-#   software distributed under the License is distributed on an
-#   "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-#   KIND, either express or implied.  See the License for the
-#   specific language governing permissions and limitations
-#   under the License.
-
-- include: dependencies.yml

http://git-wip-us.apache.org/repos/asf/couchdb-ci/blob/ebe4a3e8/ansible/roles/dependencies-centos/files/install-tl-unx.tar.gz
----------------------------------------------------------------------
diff --git a/ansible/roles/dependencies-centos/files/install-tl-unx.tar.gz b/ansible/roles/dependencies-centos/files/install-tl-unx.tar.gz
new file mode 100644
index 0000000..90df3c6
Binary files /dev/null and b/ansible/roles/dependencies-centos/files/install-tl-unx.tar.gz differ

http://git-wip-us.apache.org/repos/asf/couchdb-ci/blob/ebe4a3e8/ansible/roles/dependencies-centos/files/texlive.profile
----------------------------------------------------------------------
diff --git a/ansible/roles/dependencies-centos/files/texlive.profile b/ansible/roles/dependencies-centos/files/texlive.profile
new file mode 100644
index 0000000..d0b6cf5
--- /dev/null
+++ b/ansible/roles/dependencies-centos/files/texlive.profile
@@ -0,0 +1,45 @@
+# texlive.profile written on Sun Feb  7 16:57:48 2016 UTC
+# It will NOT be updated and reflects only the
+# installation profile at installation time.
+selected_scheme scheme-custom
+TEXDIR /usr/local/texlive/2015
+TEXMFCONFIG ~/.texlive2015/texmf-config
+TEXMFHOME ~/texmf
+TEXMFLOCAL /usr/local/texlive/texmf-local
+TEXMFSYSCONFIG /usr/local/texlive/2015/texmf-config
+TEXMFSYSVAR /usr/local/texlive/2015/texmf-var
+TEXMFVAR ~/.texlive2015/texmf-var
+binary_x86_64-linux 1
+collection-basic 1
+collection-binextra 1
+collection-context 1
+collection-fontsrecommended 1
+collection-fontutils 1
+collection-genericrecommended 1
+collection-langenglish 1
+collection-latex 1
+collection-latexrecommended 1
+collection-luatex 1
+collection-mathextra 1
+collection-metapost 1
+collection-plainextra 1
+collection-xetex 1
+in_place 0
+option_adjustrepo 1
+option_autobackup 1
+option_backupdir tlpkg/backups
+option_desktop_integration 1
+option_doc 1
+option_file_assocs 1
+option_fmt 1
+option_letter 0
+option_menu_integration 1
+option_path 1
+option_post_code 1
+option_src 1
+option_sys_bin /usr/local/bin
+option_sys_info /usr/local/info
+option_sys_man /usr/local/man
+option_w32_multi_user 1
+option_write18_restricted 1
+portable 0

http://git-wip-us.apache.org/repos/asf/couchdb-ci/blob/ebe4a3e8/ansible/roles/dependencies-centos/tasks/main.yml
----------------------------------------------------------------------
diff --git a/ansible/roles/dependencies-centos/tasks/main.yml b/ansible/roles/dependencies-centos/tasks/main.yml
new file mode 100644
index 0000000..a06d6fb
--- /dev/null
+++ b/ansible/roles/dependencies-centos/tasks/main.yml
@@ -0,0 +1,78 @@
+# Licensed to the Apache Software Foundation (ASF) under one
+# or more contributor license agreements.  See the NOTICE file
+# distributed with this work for additional information
+# regarding copyright ownership.  The ASF licenses this file
+# to you under the Apache License, Version 2.0 (the
+# "License"); you may not use this file except in compliance
+# with the License.  You may obtain a copy of the License at
+#
+#   http://www.apache.org/licenses/LICENSE-2.0
+#
+#   Unless required by applicable law or agreed to in writing,
+#   software distributed under the License is distributed on an
+#   "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+#   KIND, either express or implied.  See the License for the
+#   specific language governing permissions and limitations
+#   under the License.
+
+- name: install auxiliary packages
+  yum: name={{item}} state=present update_cache=yes
+  with_items:
+  - '"@Development tools"'
+  - git
+  - wget
+  - which
+
+# dependencies for make couch, except erlang
+- name: install packages required to build CouchDB
+  yum: name={{item}} state=present
+  with_items:
+  - autoconf
+  - autoconf-archive
+  - automake
+  - curl-devel
+  - libicu-devel
+  - libtool
+
+- name: install nodejs 4.x
+  yum:
+    name: "https://rpm.nodesource.com/pub_4.x/el/7/x86_64/nodejs-4.2.6-1nodesource.el7.centos.x86_64.rpm"
+    state: present
+
+# download, compile and install Spidermonkey
+- include: spidermonkey.yml
+
+# download and install shunit2
+- include: shunit.yml
+
+# required for make docs
+- name: install packages required to build CouchDB
+  yum: name={{item}} state=present
+  with_items:
+  - help2man
+  - texinfo
+  - python-pip
+  - perl-Digest-MD5 # for texlive installer
+
+- name: install up to date version of sphinx via pip
+  shell: pip install sphinx==1.3.4
+
+- name: copy TeX Live installer
+  copy:
+    src: install-tl-unx.tar.gz
+    dest: /tmp/install-tl-unx.tar.gz
+- name: copy TeX Live installer profile
+  copy:
+    src: texlive.profile
+    dest: /tmp/texlive.profile
+- name: unpack TeX Live installer
+  unarchive:
+    src: /tmp/install-tl-unx.tar.gz
+    dest: /tmp
+    copy: no
+- name: install TeX Live via net installer
+  command: /tmp/install-tl-20160206/install-tl --profile=/tmp/texlive.profile
+  args:
+    chdir: /tmp/install-tl-20160206
+- name: install additional TeX packages
+  command: tlmgr install capt-of framed multirow needspace threeparttable titlesec upquote wrapfig

http://git-wip-us.apache.org/repos/asf/couchdb-ci/blob/ebe4a3e8/ansible/roles/dependencies-centos/tasks/shunit.yml
----------------------------------------------------------------------
diff --git a/ansible/roles/dependencies-centos/tasks/shunit.yml b/ansible/roles/dependencies-centos/tasks/shunit.yml
new file mode 100644
index 0000000..93f8cb7
--- /dev/null
+++ b/ansible/roles/dependencies-centos/tasks/shunit.yml
@@ -0,0 +1,31 @@
+# Licensed to the Apache Software Foundation (ASF) under one
+# or more contributor license agreements.  See the NOTICE file
+# distributed with this work for additional information
+# regarding copyright ownership.  The ASF licenses this file
+# to you under the Apache License, Version 2.0 (the
+# "License"); you may not use this file except in compliance
+# with the License.  You may obtain a copy of the License at
+#
+#   http://www.apache.org/licenses/LICENSE-2.0
+#
+#   Unless required by applicable law or agreed to in writing,
+#   software distributed under the License is distributed on an
+#   "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+#   KIND, either express or implied.  See the License for the
+#   specific language governing permissions and limitations
+#   under the License.
+
+- name: download shunit2
+  get_url:
+    url: "https://storage.googleapis.com/google-code-archive-downloads/v2/code.google.com/shunit2/shunit2-2.1.6.tgz"
+    dest: /tmp/shunit2-2.1.6.tgz
+- name: unpack shunit2
+  unarchive:
+    src: /tmp/shunit2-2.1.6.tgz
+    dest: /opt
+    copy: no
+- name: link shunit2 script into PATH
+  file:
+    path: /usr/bin/shunit2
+    src: /opt/shunit2-2.1.6/src/shunit2
+    state: link

http://git-wip-us.apache.org/repos/asf/couchdb-ci/blob/ebe4a3e8/ansible/roles/dependencies-centos/tasks/spidermonkey.yml
----------------------------------------------------------------------
diff --git a/ansible/roles/dependencies-centos/tasks/spidermonkey.yml b/ansible/roles/dependencies-centos/tasks/spidermonkey.yml
new file mode 100644
index 0000000..27c8e03
--- /dev/null
+++ b/ansible/roles/dependencies-centos/tasks/spidermonkey.yml
@@ -0,0 +1,55 @@
+# Licensed to the Apache Software Foundation (ASF) under one
+# or more contributor license agreements.  See the NOTICE file
+# distributed with this work for additional information
+# regarding copyright ownership.  The ASF licenses this file
+# to you under the Apache License, Version 2.0 (the
+# "License"); you may not use this file except in compliance
+# with the License.  You may obtain a copy of the License at
+#
+#   http://www.apache.org/licenses/LICENSE-2.0
+#
+#   Unless required by applicable law or agreed to in writing,
+#   software distributed under the License is distributed on an
+#   "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+#   KIND, either express or implied.  See the License for the
+#   specific language governing permissions and limitations
+#   under the License.
+
+- name: download Spidermonkey 1.8.5
+  get_url:
+    url: "http://ftp.mozilla.org/pub/mozilla.org/js/js185-1.0.0.tar.gz"
+    dest: /tmp/js185-1.0.0.tar.gz
+- name: unpack Spidermonkey 1.8.5
+  unarchive:
+    src: /tmp/js185-1.0.0.tar.gz
+    dest: /opt
+    copy: no
+- name: configure Spidermonkey 1.8.5
+  command: ./configure
+  args:
+    chdir: /opt/js-1.8.5/js/src
+- name: make Spidermonkey 1.8.5
+  command: make
+  args:
+    chdir: /opt/js-1.8.5/js/src
+- name: make install Spidermonkey 1.8.5
+  command: make install
+  args:
+    chdir: /opt/js-1.8.5/js/src
+
+# This prevents
+# error while loading shared libraries:
+# libmozjs185.so.1.0: cannot open shared object file
+# during CouchDB make later.
+- name: set LD_LIBRARY_PATH (otherwise libmozjs185.so.1.0 is not found)
+  copy:
+    content: "export LD_LIBRARY_PATH=/usr/local/lib"
+    dest: /etc/profile.d/library_path.sh
+
+# add symbolic link (otherwise CouchDB make complains about not being able to
+# find jsapi.h)
+- name: link /usr/include/js to /usr/local/include/js
+  file:
+    path: /usr/include/js
+    src: /usr/local/include/js
+    state: link

http://git-wip-us.apache.org/repos/asf/couchdb-ci/blob/ebe4a3e8/ansible/roles/dependencies-debian/tasks/main.yml
----------------------------------------------------------------------
diff --git a/ansible/roles/dependencies-debian/tasks/main.yml b/ansible/roles/dependencies-debian/tasks/main.yml
new file mode 100644
index 0000000..1aa1ade
--- /dev/null
+++ b/ansible/roles/dependencies-debian/tasks/main.yml
@@ -0,0 +1,58 @@
+# Licensed to the Apache Software Foundation (ASF) under one
+# or more contributor license agreements.  See the NOTICE file
+# distributed with this work for additional information
+# regarding copyright ownership.  The ASF licenses this file
+# to you under the Apache License, Version 2.0 (the
+# "License"); you may not use this file except in compliance
+# with the License.  You may obtain a copy of the License at
+#
+#   http://www.apache.org/licenses/LICENSE-2.0
+#
+#   Unless required by applicable law or agreed to in writing,
+#   software distributed under the License is distributed on an
+#   "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+#   KIND, either express or implied.  See the License for the
+#   specific language governing permissions and limitations
+#   under the License.
+
+# apt-get update
+- name: update apt cache
+  apt:
+    update_cache: yes
+
+- name: install auxiliary packages
+  apt: name={{item}} state=present
+  with_items:
+  - apt-transport-https
+  - curl
+  - git
+  - pkg-config
+  - python
+
+# dependencies for make couch, except erlang
+- name: install packages required to build CouchDB
+  apt: name={{item}} state=present install_recommends=no
+  with_items:
+  - build-essential
+  - ca-certificates
+  - libcurl4-openssl-dev
+  - libicu-dev
+  - libmozjs185-dev
+
+# required for make check and make dialyze
+- name: install packages required to build CouchDB
+  apt: name={{item}} state=present install_recommends=no
+  with_items:
+  - shunit2
+
+# required for make docs
+- name: install packages required to build CouchDB
+  apt: name={{item}} state=present install_recommends=no
+  with_items:
+  - help2man
+  - python-sphinx
+  - texlive-latex-base
+  - texlive-latex-recommended
+  - texlive-latex-extra
+  - texlive-fonts-recommended
+  - texinfo

http://git-wip-us.apache.org/repos/asf/couchdb-ci/blob/ebe4a3e8/ansible/roles/erlang-18-centos/tasks/main.yml
----------------------------------------------------------------------
diff --git a/ansible/roles/erlang-18-centos/tasks/main.yml b/ansible/roles/erlang-18-centos/tasks/main.yml
new file mode 100644
index 0000000..ba6a9c9
--- /dev/null
+++ b/ansible/roles/erlang-18-centos/tasks/main.yml
@@ -0,0 +1,20 @@
+# Licensed to the Apache Software Foundation (ASF) under one
+# or more contributor license agreements.  See the NOTICE file
+# distributed with this work for additional information
+# regarding copyright ownership.  The ASF licenses this file
+# to you under the Apache License, Version 2.0 (the
+# "License"); you may not use this file except in compliance
+# with the License.  You may obtain a copy of the License at
+#
+#   http://www.apache.org/licenses/LICENSE-2.0
+#
+#   Unless required by applicable law or agreed to in writing,
+#   software distributed under the License is distributed on an
+#   "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+#   KIND, either express or implied.  See the License for the
+#   specific language governing permissions and limitations
+#   under the License.
+
+- name: download and install Erlang 18
+  yum:
+    name: "https://packages.erlang-solutions.com/erlang/esl-erlang/FLAVOUR_1_general/esl-erlang_18.2-1~centos~6_amd64.rpm"

http://git-wip-us.apache.org/repos/asf/couchdb-ci/blob/ebe4a3e8/ansible/roles/erlang-18-debian/tasks/main.yml
----------------------------------------------------------------------
diff --git a/ansible/roles/erlang-18-debian/tasks/main.yml b/ansible/roles/erlang-18-debian/tasks/main.yml
new file mode 100644
index 0000000..0deb39a
--- /dev/null
+++ b/ansible/roles/erlang-18-debian/tasks/main.yml
@@ -0,0 +1,46 @@
+# Licensed to the Apache Software Foundation (ASF) under one
+# or more contributor license agreements.  See the NOTICE file
+# distributed with this work for additional information
+# regarding copyright ownership.  The ASF licenses this file
+# to you under the Apache License, Version 2.0 (the
+# "License"); you may not use this file except in compliance
+# with the License.  You may obtain a copy of the License at
+#
+#   http://www.apache.org/licenses/LICENSE-2.0
+#
+#   Unless required by applicable law or agreed to in writing,
+#   software distributed under the License is distributed on an
+#   "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+#   KIND, either express or implied.  See the License for the
+#   specific language governing permissions and limitations
+#   under the License.
+
+- name: import the Erlang Solutions key into apt
+  apt_key:
+    url: "{{ erlang_solutions_key_url }}"
+    state: present
+    # validate_certs: no
+
+- name: add Erlang Solutions deb repository
+  apt_repository:
+    repo: "{{ erlang_solutions_apt_repo_url }}"
+    state: present
+
+# apt-get update
+- name: update apt cache
+  apt:
+    update_cache: yes
+
+- name: install Erlang 18.x
+  apt: name={{item}} state=present install_recommends=no
+  with_items:
+  - erlang-dev=1:18.2
+  - erlang-nox=1:18.2
+  - erlang=1:18.2
+
+# required for make check and make dialyze
+- name: install packages required to build CouchDB
+  apt: name={{item}} state=present install_recommends=no
+  with_items:
+  - erlang-eunit=1:18.2
+  - erlang-dialyzer=1:18.2

http://git-wip-us.apache.org/repos/asf/couchdb-ci/blob/ebe4a3e8/ansible/roles/erlang-18/tasks/main.yml
----------------------------------------------------------------------
diff --git a/ansible/roles/erlang-18/tasks/main.yml b/ansible/roles/erlang-18/tasks/main.yml
deleted file mode 100644
index 0deb39a..0000000
--- a/ansible/roles/erlang-18/tasks/main.yml
+++ /dev/null
@@ -1,46 +0,0 @@
-# Licensed to the Apache Software Foundation (ASF) under one
-# or more contributor license agreements.  See the NOTICE file
-# distributed with this work for additional information
-# regarding copyright ownership.  The ASF licenses this file
-# to you under the Apache License, Version 2.0 (the
-# "License"); you may not use this file except in compliance
-# with the License.  You may obtain a copy of the License at
-#
-#   http://www.apache.org/licenses/LICENSE-2.0
-#
-#   Unless required by applicable law or agreed to in writing,
-#   software distributed under the License is distributed on an
-#   "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-#   KIND, either express or implied.  See the License for the
-#   specific language governing permissions and limitations
-#   under the License.
-
-- name: import the Erlang Solutions key into apt
-  apt_key:
-    url: "{{ erlang_solutions_key_url }}"
-    state: present
-    # validate_certs: no
-
-- name: add Erlang Solutions deb repository
-  apt_repository:
-    repo: "{{ erlang_solutions_apt_repo_url }}"
-    state: present
-
-# apt-get update
-- name: update apt cache
-  apt:
-    update_cache: yes
-
-- name: install Erlang 18.x
-  apt: name={{item}} state=present install_recommends=no
-  with_items:
-  - erlang-dev=1:18.2
-  - erlang-nox=1:18.2
-  - erlang=1:18.2
-
-# required for make check and make dialyze
-- name: install packages required to build CouchDB
-  apt: name={{item}} state=present install_recommends=no
-  with_items:
-  - erlang-eunit=1:18.2
-  - erlang-dialyzer=1:18.2

http://git-wip-us.apache.org/repos/asf/couchdb-ci/blob/ebe4a3e8/ansible/roles/erlang-default-centos/tasks/main.yml
----------------------------------------------------------------------
diff --git a/ansible/roles/erlang-default-centos/tasks/main.yml b/ansible/roles/erlang-default-centos/tasks/main.yml
new file mode 100644
index 0000000..dfe0a8b
--- /dev/null
+++ b/ansible/roles/erlang-default-centos/tasks/main.yml
@@ -0,0 +1,31 @@
+# Licensed to the Apache Software Foundation (ASF) under one
+# or more contributor license agreements.  See the NOTICE file
+# distributed with this work for additional information
+# regarding copyright ownership.  The ASF licenses this file
+# to you under the Apache License, Version 2.0 (the
+# "License"); you may not use this file except in compliance
+# with the License.  You may obtain a copy of the License at
+#
+#   http://www.apache.org/licenses/LICENSE-2.0
+#
+#   Unless required by applicable law or agreed to in writing,
+#   software distributed under the License is distributed on an
+#   "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+#   KIND, either express or implied.  See the License for the
+#   specific language governing permissions and limitations
+#   under the License.
+
+- name: install default Erlang version
+  yum: name={{item}} state=present
+  with_items:
+  - erlang-asn1
+  - erlang-erts
+  - erlang-os_mon
+  - erlang-xmerl
+
+# required for make check and make dialyze
+- name: install packages required to build CouchDB
+  yum: name={{item}} state=present
+  with_items:
+  - erlang-eunit
+  - erlang-dialyzer

http://git-wip-us.apache.org/repos/asf/couchdb-ci/blob/ebe4a3e8/ansible/roles/erlang-default-debian/tasks/main.yml
----------------------------------------------------------------------
diff --git a/ansible/roles/erlang-default-debian/tasks/main.yml b/ansible/roles/erlang-default-debian/tasks/main.yml
new file mode 100644
index 0000000..3902b4b
--- /dev/null
+++ b/ansible/roles/erlang-default-debian/tasks/main.yml
@@ -0,0 +1,30 @@
+# Licensed to the Apache Software Foundation (ASF) under one
+# or more contributor license agreements.  See the NOTICE file
+# distributed with this work for additional information
+# regarding copyright ownership.  The ASF licenses this file
+# to you under the Apache License, Version 2.0 (the
+# "License"); you may not use this file except in compliance
+# with the License.  You may obtain a copy of the License at
+#
+#   http://www.apache.org/licenses/LICENSE-2.0
+#
+#   Unless required by applicable law or agreed to in writing,
+#   software distributed under the License is distributed on an
+#   "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+#   KIND, either express or implied.  See the License for the
+#   specific language governing permissions and limitations
+#   under the License.
+
+- name: install default Erlang version
+  apt: name={{item}} state=present install_recommends=no
+  with_items:
+  - erlang-dev
+  - erlang-nox
+  - erlang
+
+# required for make check and make dialyze
+- name: install packages required to build CouchDB
+  apt: name={{item}} state=present install_recommends=no
+  with_items:
+  - erlang-eunit
+  - erlang-dialyzer

http://git-wip-us.apache.org/repos/asf/couchdb-ci/blob/ebe4a3e8/ansible/roles/erlang-default/tasks/main.yml
----------------------------------------------------------------------
diff --git a/ansible/roles/erlang-default/tasks/main.yml b/ansible/roles/erlang-default/tasks/main.yml
deleted file mode 100644
index 3902b4b..0000000
--- a/ansible/roles/erlang-default/tasks/main.yml
+++ /dev/null
@@ -1,30 +0,0 @@
-# Licensed to the Apache Software Foundation (ASF) under one
-# or more contributor license agreements.  See the NOTICE file
-# distributed with this work for additional information
-# regarding copyright ownership.  The ASF licenses this file
-# to you under the Apache License, Version 2.0 (the
-# "License"); you may not use this file except in compliance
-# with the License.  You may obtain a copy of the License at
-#
-#   http://www.apache.org/licenses/LICENSE-2.0
-#
-#   Unless required by applicable law or agreed to in writing,
-#   software distributed under the License is distributed on an
-#   "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-#   KIND, either express or implied.  See the License for the
-#   specific language governing permissions and limitations
-#   under the License.
-
-- name: install default Erlang version
-  apt: name={{item}} state=present install_recommends=no
-  with_items:
-  - erlang-dev
-  - erlang-nox
-  - erlang
-
-# required for make check and make dialyze
-- name: install packages required to build CouchDB
-  apt: name={{item}} state=present install_recommends=no
-  with_items:
-  - erlang-eunit
-  - erlang-dialyzer

http://git-wip-us.apache.org/repos/asf/couchdb-ci/blob/ebe4a3e8/ansible/site.yml
----------------------------------------------------------------------
diff --git a/ansible/site.yml b/ansible/site.yml
index 785a1da..3bf6acf 100644
--- a/ansible/site.yml
+++ b/ansible/site.yml
@@ -15,22 +15,29 @@
 #   specific language governing permissions and limitations
 #   under the License.
 
-- hosts: ubuntu-14.04-erlang-18
+- hosts: centos-7-erlang-default
   remote_user: root
   roles:
-  - ubuntu-1404
-  - nodesource.node
-  - debian-based
-  - erlang-18
+  - geerlingguy.repo-epel
+  - dependencies-centos
+  - erlang-default-centos
   - common
 
-- hosts: ubuntu-14.04-erlang-default
+- hosts: centos-7-erlang-18
   remote_user: root
   roles:
-  - ubuntu-1404
+  - geerlingguy.repo-epel
+  - dependencies-centos
+  - erlang-18-centos
+  - common
+
+- hosts: debian-8-erlang-default
+  remote_user: root
+  roles:
+  - debian-8
   - nodesource.node
-  - debian-based
-  - erlang-default
+  - dependencies-debian
+  - erlang-default-debian
   - common
 
 - hosts: debian-8-erlang-18
@@ -38,15 +45,24 @@
   roles:
   - debian-8
   - nodesource.node
-  - debian-based
-  - erlang-18
+  - dependencies-debian
+  - erlang-18-debian
   - common
 
-- hosts: debian-8-erlang-default
+- hosts: ubuntu-14.04-erlang-default
   remote_user: root
   roles:
-  - debian-8
+  - ubuntu-1404
+  - nodesource.node
+  - dependencies-debian
+  - erlang-default-debian
+  - common
+
+- hosts: ubuntu-14.04-erlang-18
+  remote_user: root
+  roles:
+  - ubuntu-1404
   - nodesource.node
-  - debian-based
-  - erlang-default
+  - dependencies-debian
+  - erlang-18-debian
   - common

http://git-wip-us.apache.org/repos/asf/couchdb-ci/blob/ebe4a3e8/bin/centos-7-erlang-18/create-container.sh
----------------------------------------------------------------------
diff --git a/bin/centos-7-erlang-18/create-container.sh b/bin/centos-7-erlang-18/create-container.sh
new file mode 100755
index 0000000..2254c7d
--- /dev/null
+++ b/bin/centos-7-erlang-18/create-container.sh
@@ -0,0 +1,28 @@
+#!/usr/bin/env bash
+
+# Licensed to the Apache Software Foundation (ASF) under one
+# or more contributor license agreements.  See the NOTICE file
+# distributed with this work for additional information
+# regarding copyright ownership.  The ASF licenses this file
+# to you under the Apache License, Version 2.0 (the
+# "License"); you may not use this file except in compliance
+# with the License.  You may obtain a copy of the License at
+#
+#   http://www.apache.org/licenses/LICENSE-2.0
+#
+#   Unless required by applicable law or agreed to in writing,
+#   software distributed under the License is distributed on an
+#   "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+#   KIND, either express or implied.  See the License for the
+#   specific language governing permissions and limitations
+#   under the License.
+
+set -e
+
+# The Docker containers need the root directory of this repository as their
+# build context (because they need the Ansible files).
+pushd `dirname $0`/../.. > /dev/null
+
+docker build -f docker/centos-7-erlang-18/Dockerfile -t basti1302/couchdb-build-centos-7-erlang-18.2 .
+
+popd > /dev/null

http://git-wip-us.apache.org/repos/asf/couchdb-ci/blob/ebe4a3e8/bin/centos-7-erlang-18/enter-container.sh
----------------------------------------------------------------------
diff --git a/bin/centos-7-erlang-18/enter-container.sh b/bin/centos-7-erlang-18/enter-container.sh
new file mode 100755
index 0000000..0063436
--- /dev/null
+++ b/bin/centos-7-erlang-18/enter-container.sh
@@ -0,0 +1,20 @@
+#!/usr/bin/env bash
+
+# Licensed to the Apache Software Foundation (ASF) under one
+# or more contributor license agreements.  See the NOTICE file
+# distributed with this work for additional information
+# regarding copyright ownership.  The ASF licenses this file
+# to you under the Apache License, Version 2.0 (the
+# "License"); you may not use this file except in compliance
+# with the License.  You may obtain a copy of the License at
+#
+#   http://www.apache.org/licenses/LICENSE-2.0
+#
+#   Unless required by applicable law or agreed to in writing,
+#   software distributed under the License is distributed on an
+#   "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+#   KIND, either express or implied.  See the License for the
+#   specific language governing permissions and limitations
+#   under the License.
+
+docker run -it basti1302/couchdb-build-centos-7-erlang-18.2 bash

http://git-wip-us.apache.org/repos/asf/couchdb-ci/blob/ebe4a3e8/bin/centos-7-erlang-18/publish-container.sh
----------------------------------------------------------------------
diff --git a/bin/centos-7-erlang-18/publish-container.sh b/bin/centos-7-erlang-18/publish-container.sh
new file mode 100755
index 0000000..cd3044e
--- /dev/null
+++ b/bin/centos-7-erlang-18/publish-container.sh
@@ -0,0 +1,20 @@
+#!/usr/bin/env bash
+
+# Licensed to the Apache Software Foundation (ASF) under one
+# or more contributor license agreements.  See the NOTICE file
+# distributed with this work for additional information
+# regarding copyright ownership.  The ASF licenses this file
+# to you under the Apache License, Version 2.0 (the
+# "License"); you may not use this file except in compliance
+# with the License.  You may obtain a copy of the License at
+#
+#   http://www.apache.org/licenses/LICENSE-2.0
+#
+#   Unless required by applicable law or agreed to in writing,
+#   software distributed under the License is distributed on an
+#   "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+#   KIND, either express or implied.  See the License for the
+#   specific language governing permissions and limitations
+#   under the License.
+
+docker push basti1302/couchdb-build-centos-7-erlang-18.2

http://git-wip-us.apache.org/repos/asf/couchdb-ci/blob/ebe4a3e8/bin/centos-7-erlang-18/run-build-in-container.sh
----------------------------------------------------------------------
diff --git a/bin/centos-7-erlang-18/run-build-in-container.sh b/bin/centos-7-erlang-18/run-build-in-container.sh
new file mode 100755
index 0000000..cc91386
--- /dev/null
+++ b/bin/centos-7-erlang-18/run-build-in-container.sh
@@ -0,0 +1,20 @@
+#!/usr/bin/env bash
+
+# Licensed to the Apache Software Foundation (ASF) under one
+# or more contributor license agreements.  See the NOTICE file
+# distributed with this work for additional information
+# regarding copyright ownership.  The ASF licenses this file
+# to you under the Apache License, Version 2.0 (the
+# "License"); you may not use this file except in compliance
+# with the License.  You may obtain a copy of the License at
+#
+#   http://www.apache.org/licenses/LICENSE-2.0
+#
+#   Unless required by applicable law or agreed to in writing,
+#   software distributed under the License is distributed on an
+#   "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+#   KIND, either express or implied.  See the License for the
+#   specific language governing permissions and limitations
+#   under the License.
+
+docker run -e LD_LIBRARY_PATH='/usr/local/lib' basti1302/couchdb-build-centos-7-erlang-18.2

http://git-wip-us.apache.org/repos/asf/couchdb-ci/blob/ebe4a3e8/bin/centos-7-erlang-default/create-container.sh
----------------------------------------------------------------------
diff --git a/bin/centos-7-erlang-default/create-container.sh b/bin/centos-7-erlang-default/create-container.sh
new file mode 100755
index 0000000..f93f581
--- /dev/null
+++ b/bin/centos-7-erlang-default/create-container.sh
@@ -0,0 +1,28 @@
+#!/usr/bin/env bash
+
+# Licensed to the Apache Software Foundation (ASF) under one
+# or more contributor license agreements.  See the NOTICE file
+# distributed with this work for additional information
+# regarding copyright ownership.  The ASF licenses this file
+# to you under the Apache License, Version 2.0 (the
+# "License"); you may not use this file except in compliance
+# with the License.  You may obtain a copy of the License at
+#
+#   http://www.apache.org/licenses/LICENSE-2.0
+#
+#   Unless required by applicable law or agreed to in writing,
+#   software distributed under the License is distributed on an
+#   "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+#   KIND, either express or implied.  See the License for the
+#   specific language governing permissions and limitations
+#   under the License.
+
+set -e
+
+# The Docker containers need the root directory of this repository as their
+# build context (because they need the Ansible files).
+pushd `dirname $0`/../.. > /dev/null
+
+docker build -f docker/centos-7-erlang-default/Dockerfile -t basti1302/couchdb-build-centos-7-erlang-default .
+
+popd > /dev/null

http://git-wip-us.apache.org/repos/asf/couchdb-ci/blob/ebe4a3e8/bin/centos-7-erlang-default/enter-container.sh
----------------------------------------------------------------------
diff --git a/bin/centos-7-erlang-default/enter-container.sh b/bin/centos-7-erlang-default/enter-container.sh
new file mode 100755
index 0000000..064f232
--- /dev/null
+++ b/bin/centos-7-erlang-default/enter-container.sh
@@ -0,0 +1,20 @@
+#!/usr/bin/env bash
+
+# Licensed to the Apache Software Foundation (ASF) under one
+# or more contributor license agreements.  See the NOTICE file
+# distributed with this work for additional information
+# regarding copyright ownership.  The ASF licenses this file
+# to you under the Apache License, Version 2.0 (the
+# "License"); you may not use this file except in compliance
+# with the License.  You may obtain a copy of the License at
+#
+#   http://www.apache.org/licenses/LICENSE-2.0
+#
+#   Unless required by applicable law or agreed to in writing,
+#   software distributed under the License is distributed on an
+#   "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+#   KIND, either express or implied.  See the License for the
+#   specific language governing permissions and limitations
+#   under the License.
+
+docker run -it basti1302/couchdb-build-centos-7-erlang-default bash

http://git-wip-us.apache.org/repos/asf/couchdb-ci/blob/ebe4a3e8/bin/centos-7-erlang-default/publish-container.sh
----------------------------------------------------------------------
diff --git a/bin/centos-7-erlang-default/publish-container.sh b/bin/centos-7-erlang-default/publish-container.sh
new file mode 100755
index 0000000..060dbe0
--- /dev/null
+++ b/bin/centos-7-erlang-default/publish-container.sh
@@ -0,0 +1,20 @@
+#!/usr/bin/env bash
+
+# Licensed to the Apache Software Foundation (ASF) under one
+# or more contributor license agreements.  See the NOTICE file
+# distributed with this work for additional information
+# regarding copyright ownership.  The ASF licenses this file
+# to you under the Apache License, Version 2.0 (the
+# "License"); you may not use this file except in compliance
+# with the License.  You may obtain a copy of the License at
+#
+#   http://www.apache.org/licenses/LICENSE-2.0
+#
+#   Unless required by applicable law or agreed to in writing,
+#   software distributed under the License is distributed on an
+#   "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+#   KIND, either express or implied.  See the License for the
+#   specific language governing permissions and limitations
+#   under the License.
+
+docker push basti1302/couchdb-build-centos-7-erlang-default

http://git-wip-us.apache.org/repos/asf/couchdb-ci/blob/ebe4a3e8/bin/centos-7-erlang-default/run-build-in-container.sh
----------------------------------------------------------------------
diff --git a/bin/centos-7-erlang-default/run-build-in-container.sh b/bin/centos-7-erlang-default/run-build-in-container.sh
new file mode 100755
index 0000000..6881835
--- /dev/null
+++ b/bin/centos-7-erlang-default/run-build-in-container.sh
@@ -0,0 +1,20 @@
+#!/usr/bin/env bash
+
+# Licensed to the Apache Software Foundation (ASF) under one
+# or more contributor license agreements.  See the NOTICE file
+# distributed with this work for additional information
+# regarding copyright ownership.  The ASF licenses this file
+# to you under the Apache License, Version 2.0 (the
+# "License"); you may not use this file except in compliance
+# with the License.  You may obtain a copy of the License at
+#
+#   http://www.apache.org/licenses/LICENSE-2.0
+#
+#   Unless required by applicable law or agreed to in writing,
+#   software distributed under the License is distributed on an
+#   "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+#   KIND, either express or implied.  See the License for the
+#   specific language governing permissions and limitations
+#   under the License.
+
+docker run basti1302/couchdb-build-centos-7-erlang-default

http://git-wip-us.apache.org/repos/asf/couchdb-ci/blob/ebe4a3e8/docker/centos-7-erlang-18/Dockerfile
----------------------------------------------------------------------
diff --git a/docker/centos-7-erlang-18/Dockerfile b/docker/centos-7-erlang-18/Dockerfile
new file mode 100644
index 0000000..330c124
--- /dev/null
+++ b/docker/centos-7-erlang-18/Dockerfile
@@ -0,0 +1,38 @@
+# Licensed to the Apache Software Foundation (ASF) under one
+# or more contributor license agreements.  See the NOTICE file
+# distributed with this work for additional information
+# regarding copyright ownership.  The ASF licenses this file
+# to you under the Apache License, Version 2.0 (the
+# "License"); you may not use this file except in compliance
+# with the License.  You may obtain a copy of the License at
+#
+#   http://www.apache.org/licenses/LICENSE-2.0
+#
+#   Unless required by applicable law or agreed to in writing,
+#   software distributed under the License is distributed on an
+#   "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+#   KIND, either express or implied.  See the License for the
+#   specific language governing permissions and limitations
+
+# NOTE: All docker files need to be run from ../../, that is
+# docker build -f /docker/<container>/Dockerfile
+
+# Base Image: Plain Vanilla CentOS with Ansible installed
+FROM williamyeh/ansible:centos7-onbuild
+
+# Add ansible directory and cd to it
+ADD ./ansible /ansible
+WORKDIR /ansible
+
+# Install Ansible roles
+RUN ansible-galaxy install geerlingguy.repo-epel
+RUN ansible-galaxy install nodesource.node
+
+# Run Ansible to provision container
+RUN ansible-playbook site.yml \
+  --connection=local \
+  --inventory-file=./docker-inventories/centos-7-erlang-18
+
+USER couchdb
+
+CMD ["/home/couchdb/build-ci.sh"]

http://git-wip-us.apache.org/repos/asf/couchdb-ci/blob/ebe4a3e8/docker/centos-7-erlang-default/Dockerfile
----------------------------------------------------------------------
diff --git a/docker/centos-7-erlang-default/Dockerfile b/docker/centos-7-erlang-default/Dockerfile
new file mode 100644
index 0000000..851ff1e
--- /dev/null
+++ b/docker/centos-7-erlang-default/Dockerfile
@@ -0,0 +1,38 @@
+# Licensed to the Apache Software Foundation (ASF) under one
+# or more contributor license agreements.  See the NOTICE file
+# distributed with this work for additional information
+# regarding copyright ownership.  The ASF licenses this file
+# to you under the Apache License, Version 2.0 (the
+# "License"); you may not use this file except in compliance
+# with the License.  You may obtain a copy of the License at
+#
+#   http://www.apache.org/licenses/LICENSE-2.0
+#
+#   Unless required by applicable law or agreed to in writing,
+#   software distributed under the License is distributed on an
+#   "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+#   KIND, either express or implied.  See the License for the
+#   specific language governing permissions and limitations
+
+# NOTE: All docker files need to be run from ../../, that is
+# docker build -f /docker/<container>/Dockerfile
+
+# Base Image: Plain Vanilla CentOS with Ansible installed
+FROM williamyeh/ansible:centos7-onbuild
+
+# Add ansible directory and cd to it
+ADD ./ansible /ansible
+WORKDIR /ansible
+
+# Install Ansible roles
+RUN ansible-galaxy install geerlingguy.repo-epel
+RUN ansible-galaxy install nodesource.node
+
+# Run Ansible to provision container
+RUN ansible-playbook site.yml \
+  --connection=local \
+  --inventory-file=./docker-inventories/centos-7-erlang-default
+
+# USER couchdb
+
+CMD ["/home/couchdb/build-ci.sh"]

http://git-wip-us.apache.org/repos/asf/couchdb-ci/blob/ebe4a3e8/docker/debian-8-erlang-18/Dockerfile
----------------------------------------------------------------------
diff --git a/docker/debian-8-erlang-18/Dockerfile b/docker/debian-8-erlang-18/Dockerfile
index 5455412..06d1f0f 100644
--- a/docker/debian-8-erlang-18/Dockerfile
+++ b/docker/debian-8-erlang-18/Dockerfile
@@ -24,7 +24,8 @@ FROM williamyeh/ansible:debian8-onbuild
 ADD ./ansible /ansible
 WORKDIR /ansible
 
-# Install Node.js role
+# Install Ansible roles
+RUN ansible-galaxy install geerlingguy.repo-epel
 RUN ansible-galaxy install nodesource.node
 
 # Run Ansible to provision container

http://git-wip-us.apache.org/repos/asf/couchdb-ci/blob/ebe4a3e8/docker/debian-8-erlang-default/Dockerfile
----------------------------------------------------------------------
diff --git a/docker/debian-8-erlang-default/Dockerfile b/docker/debian-8-erlang-default/Dockerfile
index 95bde23..aeeec08 100644
--- a/docker/debian-8-erlang-default/Dockerfile
+++ b/docker/debian-8-erlang-default/Dockerfile
@@ -24,7 +24,8 @@ FROM williamyeh/ansible:debian8-onbuild
 ADD ./ansible /ansible
 WORKDIR /ansible
 
-# Install Node.js role
+# Install Ansible roles
+RUN ansible-galaxy install geerlingguy.repo-epel
 RUN ansible-galaxy install nodesource.node
 
 # Run Ansible to provision container

http://git-wip-us.apache.org/repos/asf/couchdb-ci/blob/ebe4a3e8/docker/ubuntu-14.04-erlang-18/Dockerfile
----------------------------------------------------------------------
diff --git a/docker/ubuntu-14.04-erlang-18/Dockerfile b/docker/ubuntu-14.04-erlang-18/Dockerfile
index f53b0bf..c1dceeb 100644
--- a/docker/ubuntu-14.04-erlang-18/Dockerfile
+++ b/docker/ubuntu-14.04-erlang-18/Dockerfile
@@ -24,7 +24,8 @@ FROM williamyeh/ansible:ubuntu14.04-onbuild
 ADD ./ansible /ansible
 WORKDIR /ansible
 
-# Install Node.js role
+# Install Ansible roles
+RUN ansible-galaxy install geerlingguy.repo-epel
 RUN ansible-galaxy install nodesource.node
 
 # Run Ansible to provision container

http://git-wip-us.apache.org/repos/asf/couchdb-ci/blob/ebe4a3e8/docker/ubuntu-14.04-erlang-default/Dockerfile
----------------------------------------------------------------------
diff --git a/docker/ubuntu-14.04-erlang-default/Dockerfile b/docker/ubuntu-14.04-erlang-default/Dockerfile
index 52db492..ad966a3 100644
--- a/docker/ubuntu-14.04-erlang-default/Dockerfile
+++ b/docker/ubuntu-14.04-erlang-default/Dockerfile
@@ -24,7 +24,8 @@ FROM williamyeh/ansible:ubuntu14.04-onbuild
 ADD ./ansible /ansible
 WORKDIR /ansible
 
-# Install Node.js role
+# Install Ansible roles
+RUN ansible-galaxy install geerlingguy.repo-epel
 RUN ansible-galaxy install nodesource.node
 
 # Run Ansible to provision container

http://git-wip-us.apache.org/repos/asf/couchdb-ci/blob/ebe4a3e8/jenkins/build.sh
----------------------------------------------------------------------
diff --git a/jenkins/build.sh b/jenkins/build.sh
index 4c515a3..a6e6754 100755
--- a/jenkins/build.sh
+++ b/jenkins/build.sh
@@ -39,14 +39,18 @@ rm -f $DOCKERFILE # Just in case a stale one exists.
 DOCKER_IMAGE="basti1302/couchdb-build-"
 
 case $OS in
-  ubuntu-14.04*)
-    echo "Using Ubuntu 14.04"
-    DOCKER_IMAGE=$DOCKER_IMAGE"ubuntu-14.04-"
+  centos-7*)
+    echo "Using CentOS 7"
+    DOCKER_IMAGE=$DOCKER_IMAGE"centos-7-"
     ;;
   debian-8*)
     echo "Using Debian 8"
     DOCKER_IMAGE=$DOCKER_IMAGE"debian-8-"
     ;;
+  ubuntu-14.04*)
+    echo "Using Ubuntu 14.04"
+    DOCKER_IMAGE=$DOCKER_IMAGE"ubuntu-14.04-"
+    ;;
   *)
     echo "Unknown OS $OS"
     exit 1
@@ -54,14 +58,14 @@ case $OS in
 esac
 
 case $ERLANG in
-  18.2*)
-    echo "Using Erlang 18.2"
-    DOCKER_IMAGE=$DOCKER_IMAGE"erlang-18.2"
-    ;;
   default*)
     echo "Using Erlang 18.2"
     DOCKER_IMAGE=$DOCKER_IMAGE"erlang-default"
     ;;
+  18.2*)
+    echo "Using Erlang 18.2"
+    DOCKER_IMAGE=$DOCKER_IMAGE"erlang-18.2"
+    ;;
   *)
     echo "Unknown Erlang version $ERLANG"
     exit 1
@@ -70,9 +74,4 @@ esac
 
 docker pull $DOCKER_IMAGE
 
-# Set a trap to delete the image on exit.
-# trap "docker rmi $TAG" EXIT
-
-#--privileged ?
-#--rm ?
 docker run $DOCKER_IMAGE