From 97d48efeb67f4f7566752625ad3ce233f31985be Mon Sep 17 00:00:00 2001 From: William Yeh Date: Mon, 9 May 2016 16:34:32 +0800 Subject: Add: support for Ubuntu 16.04 LTS (Xenial). Fix: 1. OS-level packages `libffi-dev` and `libssl-dev`/`openssl-dev` should be installed explicitly since Ansible 2.0.2.0(???). 2. Python package cffi should be installed explicitly since Ansible 2.0.2.0(???). 3. add '--fix-missing' for apt. @see https://github.com/boxcutter/ubuntu/issues/62 @see https://github.com/pyca/cryptography/issues/2280 --- master-ubuntu16.04-onbuild/Dockerfile | 77 +++++++++++++++++++++++++++++++++++ 1 file changed, 77 insertions(+) create mode 100644 master-ubuntu16.04-onbuild/Dockerfile (limited to 'master-ubuntu16.04-onbuild/Dockerfile') diff --git a/master-ubuntu16.04-onbuild/Dockerfile b/master-ubuntu16.04-onbuild/Dockerfile new file mode 100644 index 0000000..bbd0029 --- /dev/null +++ b/master-ubuntu16.04-onbuild/Dockerfile @@ -0,0 +1,77 @@ +# Dockerfile for building Ansible image from source for Ubuntu 16.04 (Xenial), with as few additional software as possible. +# +# @see http://docs.ansible.com/ansible/intro_installation.html#running-from-source +# +# Version 1.0 +# + + +# pull base image +FROM ubuntu:16.04 + +MAINTAINER William Yeh + + +RUN echo "===> Adding Ansible's prerequisites..." && \ + apt-get update -y && \ + DEBIAN_FRONTEND=noninteractive \ + apt-get install --no-install-recommends -y -q \ + build-essential \ + python-pip python-dev python-yaml \ + libffi-dev libssl-dev \ + libxml2-dev libxslt1-dev zlib1g-dev \ + git && \ + pip install --upgrade wheel setuptools && \ + pip install --upgrade pyyaml jinja2 pycrypto && \ + \ + \ + echo "===> Downloading Ansible's source tree..." && \ + git clone git://github.com/ansible/ansible.git --recursive && \ + \ + \ + echo "===> Compiling Ansible..." && \ + cd ansible && \ + bash -c 'source ./hacking/env-setup' && \ + \ + \ + echo "===> Moving useful Ansible stuff to /opt/ansible ..." && \ + mkdir -p /opt/ansible && \ + mv /ansible/bin /opt/ansible/bin && \ + mv /ansible/lib /opt/ansible/lib && \ + mv /ansible/docs /opt/ansible/docs && \ + rm -rf /ansible && \ + \ + \ + echo "===> Clean up..." && \ + apt-get remove -y --auto-remove \ + build-essential python-pip python-dev git libffi-dev libssl-dev && \ + apt-get clean && \ + rm -rf /var/lib/apt/lists/* && \ + \ + \ + echo "===> Adding hosts for convenience..." && \ + mkdir -p /etc/ansible && \ + echo 'localhost' > /etc/ansible/hosts + + +ENV PATH /opt/ansible/bin:$PATH +ENV PYTHONPATH /opt/ansible/lib:$PYTHONPATH +ENV MANPATH /opt/ansible/docs/man:$MANPATH + + +COPY ansible-playbook-wrapper /usr/local/bin/ + +ONBUILD RUN DEBIAN_FRONTEND=noninteractive apt-get update && \ + echo "===> Updating TLS certificates..." && \ + apt-get install -y openssl ca-certificates + +ONBUILD WORKDIR /tmp +ONBUILD COPY . /tmp +ONBUILD RUN \ + echo "===> Diagnosis: host information..." && \ + ansible -c local -m setup all + + + +# default command: display Ansible version +CMD [ "ansible-playbook", "--version" ] -- cgit v1.2.3