From dfe7fe3c3cf02ab7cf053fddc4b32c3fcff0a3e7 Mon Sep 17 00:00:00 2001 From: Luis Lavena Date: Wed, 19 Jun 2019 08:47:42 +0000 Subject: [PATCH 1/6] Remove obsolete/deprecated versions Get rid of old versions of Ansible aiming to introduce new versions. --- .travis.yml | 4 ---- 1.9/Dockerfile | 38 -------------------------------------- 2.0/Dockerfile | 38 -------------------------------------- 2.2/Dockerfile | 38 -------------------------------------- 2.3/Dockerfile | 38 -------------------------------------- 5 files changed, 156 deletions(-) delete mode 100644 1.9/Dockerfile delete mode 100644 2.0/Dockerfile delete mode 100644 2.2/Dockerfile delete mode 100644 2.3/Dockerfile diff --git a/.travis.yml b/.travis.yml index 6434beb..5057dee 100644 --- a/.travis.yml +++ b/.travis.yml @@ -5,10 +5,6 @@ services: docker env: - VERSION=2.5 - VERSION=2.4 LATEST=true - - VERSION=2.3 - - VERSION=2.2 - - VERSION=2.0 - - VERSION=1.9 before_install: - sudo add-apt-repository ppa:duggan/bats --yes diff --git a/1.9/Dockerfile b/1.9/Dockerfile deleted file mode 100644 index 5b8e86c..0000000 --- a/1.9/Dockerfile +++ /dev/null @@ -1,38 +0,0 @@ -# Latest Python 2.x using latest Alpine 3.7 -FROM python:2-alpine - -# default playbook directory -WORKDIR /data - -ENV ANSIBLE_VERSION 1.9.6 - -# install general runtime dependencies -RUN set -ex \ - && apk add --no-cache \ - openssh-client \ - openssl - -# 1. install build dependencies, then pip ansible. -# 2. detect any compiled extension that requires runtime dependencies. -# (copied from official Docker's Python image) -RUN set -ex \ - && apk add --no-cache --virtual .build-deps \ - gcc \ - libffi-dev \ - openssl-dev \ - linux-headers \ - make \ - musl-dev \ - && pip install --upgrade --no-cache-dir \ - ansible==$ANSIBLE_VERSION \ - passlib \ - && runDeps="$( \ - scanelf --needed --nobanner --format '%n#p' --recursive /usr/local \ - | tr ',' '\n' \ - | sort -u \ - | awk 'system("[ -e /usr/local/lib/" $1 " ]") == 0 { next } { print "so:" $1 }' \ - )" \ - && apk add --virtual .ansible-rundeps $runDeps \ - && apk del .build-deps - -CMD ["ansible-playbook", "--version"] diff --git a/2.0/Dockerfile b/2.0/Dockerfile deleted file mode 100644 index 0be88e2..0000000 --- a/2.0/Dockerfile +++ /dev/null @@ -1,38 +0,0 @@ -# Latest Python 2.x using Alpine -FROM python:2-alpine - -# default playbook directory -WORKDIR /data - -ENV ANSIBLE_VERSION 2.0.2 - -# install general runtime dependencies -RUN set -ex \ - && apk add --no-cache \ - openssh-client \ - openssl - -# 1. install build dependencies, then pip ansible. -# 2. detect any compiled extension that requires runtime dependencies. -# (copied from official Docker's Python image) -RUN set -ex \ - && apk add --no-cache --virtual .build-deps \ - gcc \ - libffi-dev \ - openssl-dev \ - linux-headers \ - make \ - musl-dev \ - && pip install --upgrade --no-cache-dir \ - ansible==$ANSIBLE_VERSION \ - passlib \ - && runDeps="$( \ - scanelf --needed --nobanner --format '%n#p' --recursive /usr/local \ - | tr ',' '\n' \ - | sort -u \ - | awk 'system("[ -e /usr/local/lib/" $1 " ]") == 0 { next } { print "so:" $1 }' \ - )" \ - && apk add --virtual .ansible-rundeps $runDeps \ - && apk del .build-deps - -CMD ["ansible-playbook", "--version"] diff --git a/2.2/Dockerfile b/2.2/Dockerfile deleted file mode 100644 index 21dfe15..0000000 --- a/2.2/Dockerfile +++ /dev/null @@ -1,38 +0,0 @@ -# Latest Python 2.x using latest Alpine 3.7 -FROM python:2-alpine3.7 - -# default playbook directory -WORKDIR /data - -ENV ANSIBLE_VERSION 2.2.1 - -# install general runtime dependencies -RUN set -ex \ - && apk add --no-cache \ - openssh-client \ - openssl - -# 1. install build dependencies, then pip ansible. -# 2. detect any compiled extension that requires runtime dependencies. -# (copied from official Docker's Python image) -RUN set -ex \ - && apk add --no-cache --virtual .build-deps \ - gcc \ - libffi-dev \ - libressl-dev \ - linux-headers \ - make \ - musl-dev \ - && pip install --upgrade --no-cache-dir \ - ansible==$ANSIBLE_VERSION \ - passlib \ - && runDeps="$( \ - scanelf --needed --nobanner --format '%n#p' --recursive /usr/local \ - | tr ',' '\n' \ - | sort -u \ - | awk 'system("[ -e /usr/local/lib/" $1 " ]") == 0 { next } { print "so:" $1 }' \ - )" \ - && apk add --virtual .ansible-rundeps $runDeps \ - && apk del .build-deps - -CMD ["ansible-playbook", "--version"] diff --git a/2.3/Dockerfile b/2.3/Dockerfile deleted file mode 100644 index 4bf457a..0000000 --- a/2.3/Dockerfile +++ /dev/null @@ -1,38 +0,0 @@ -# Latest Python 2.x using latest Alpine 3.7 -FROM python:2-alpine3.7 - -# default playbook directory -WORKDIR /data - -ENV ANSIBLE_VERSION 2.3.3 - -# install general runtime dependencies -RUN set -ex \ - && apk add --no-cache \ - openssh-client \ - openssl - -# 1. install build dependencies, then pip ansible. -# 2. detect any compiled extension that requires runtime dependencies. -# (copied from official Docker's Python image) -RUN set -ex \ - && apk add --no-cache --virtual .build-deps \ - gcc \ - libffi-dev \ - libressl-dev \ - linux-headers \ - make \ - musl-dev \ - && pip install --upgrade --no-cache-dir \ - ansible==$ANSIBLE_VERSION \ - passlib \ - && runDeps="$( \ - scanelf --needed --nobanner --format '%n#p' --recursive /usr/local \ - | tr ',' '\n' \ - | sort -u \ - | awk 'system("[ -e /usr/local/lib/" $1 " ]") == 0 { next } { print "so:" $1 }' \ - )" \ - && apk add --virtual .ansible-rundeps $runDeps \ - && apk del .build-deps - -CMD ["ansible-playbook", "--version"] From 1073c4c3bdbf79b87cd3432b58401e2179850120 Mon Sep 17 00:00:00 2001 From: Luis Lavena Date: Wed, 19 Jun 2019 09:07:50 +0000 Subject: [PATCH 2/6] Upgrade latest Ansible 2.5 --- 2.5/Dockerfile | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/2.5/Dockerfile b/2.5/Dockerfile index 4c6dedf..75d532b 100644 --- a/2.5/Dockerfile +++ b/2.5/Dockerfile @@ -1,10 +1,10 @@ # Latest Python 2.x using latest Alpine 3.7 -FROM python:2-alpine3.7 +FROM python:2-alpine3.9 # default playbook directory WORKDIR /data -ENV ANSIBLE_VERSION 2.5.0 +ENV ANSIBLE_VERSION 2.5.15 # install general runtime dependencies RUN set -ex \ From 619f454b9ad8aa2630b479ac838201eae8898f53 Mon Sep 17 00:00:00 2001 From: Luis Lavena Date: Wed, 19 Jun 2019 09:08:58 +0000 Subject: [PATCH 3/6] Improve image build process - Remove noise form `env` - Pull image and use as cache before building new one --- .travis.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.travis.yml b/.travis.yml index 5057dee..927f535 100644 --- a/.travis.yml +++ b/.travis.yml @@ -12,7 +12,6 @@ before_install: - sudo apt-get install -qq bats before_script: - - env | sort - export IMAGE="mini/ansible:${VERSION}" script: @@ -20,7 +19,8 @@ script: ( set -Eeuo pipefail set -x - travis_retry docker build -t "$IMAGE" $VERSION/ + docker pull "$IMAGE" + travis_retry docker build --cache-from "$IMAGE" -t "$IMAGE" $VERSION/ IMAGE=$IMAGE VERSION=$VERSION bats tests/ ) From 16dfef8e733375996b8880fae4138ffd5e358c0b Mon Sep 17 00:00:00 2001 From: Luis Lavena Date: Wed, 19 Jun 2019 09:15:39 +0000 Subject: [PATCH 4/6] Remove Ansible 2.4 And mark 2.5 as latest. --- .travis.yml | 3 +-- 2.4/Dockerfile | 38 -------------------------------------- 2 files changed, 1 insertion(+), 40 deletions(-) delete mode 100644 2.4/Dockerfile diff --git a/.travis.yml b/.travis.yml index 927f535..7441d50 100644 --- a/.travis.yml +++ b/.travis.yml @@ -3,8 +3,7 @@ language: bash services: docker env: - - VERSION=2.5 - - VERSION=2.4 LATEST=true + - VERSION=2.5 LATEST=true before_install: - sudo add-apt-repository ppa:duggan/bats --yes diff --git a/2.4/Dockerfile b/2.4/Dockerfile deleted file mode 100644 index a7877a8..0000000 --- a/2.4/Dockerfile +++ /dev/null @@ -1,38 +0,0 @@ -# Latest Python 2.x using latest Alpine 3.7 -FROM python:2-alpine3.7 - -# default playbook directory -WORKDIR /data - -ENV ANSIBLE_VERSION 2.4.4 - -# install general runtime dependencies -RUN set -ex \ - && apk add --no-cache \ - openssh-client \ - openssl - -# 1. install build dependencies, then pip ansible. -# 2. detect any compiled extension that requires runtime dependencies. -# (copied from official Docker's Python image) -RUN set -ex \ - && apk add --no-cache --virtual .build-deps \ - gcc \ - libffi-dev \ - libressl-dev \ - linux-headers \ - make \ - musl-dev \ - && pip install --upgrade --no-cache-dir \ - ansible==$ANSIBLE_VERSION \ - passlib \ - && runDeps="$( \ - scanelf --needed --nobanner --format '%n#p' --recursive /usr/local \ - | tr ',' '\n' \ - | sort -u \ - | awk 'system("[ -e /usr/local/lib/" $1 " ]") == 0 { next } { print "so:" $1 }' \ - )" \ - && apk add --virtual .ansible-rundeps $runDeps \ - && apk del .build-deps - -CMD ["ansible-playbook", "--version"] From bc85b9ef1a5768e8144585dc3a3b1a467ef6fdc6 Mon Sep 17 00:00:00 2001 From: Luis Lavena Date: Wed, 19 Jun 2019 09:25:55 +0000 Subject: [PATCH 5/6] Add Ansible 2.8 Also mark as latest version. --- .travis.yml | 3 ++- 2.8/Dockerfile | 38 ++++++++++++++++++++++++++++++++++++++ 2 files changed, 40 insertions(+), 1 deletion(-) create mode 100644 2.8/Dockerfile diff --git a/.travis.yml b/.travis.yml index 7441d50..c0a6f84 100644 --- a/.travis.yml +++ b/.travis.yml @@ -3,7 +3,8 @@ language: bash services: docker env: - - VERSION=2.5 LATEST=true + - VERSION=2.8 LATEST=true + - VERSION=2.5 before_install: - sudo add-apt-repository ppa:duggan/bats --yes diff --git a/2.8/Dockerfile b/2.8/Dockerfile new file mode 100644 index 0000000..e0eaa37 --- /dev/null +++ b/2.8/Dockerfile @@ -0,0 +1,38 @@ +# Latest Python 2.x using latest Alpine 3.9 +FROM python:2-alpine3.9 + +# default playbook directory +WORKDIR /data + +ENV ANSIBLE_VERSION 2.8.1 + +# install general runtime dependencies +RUN set -ex \ + && apk add --no-cache \ + openssh-client \ + openssl + +# 1. install build dependencies, then pip ansible. +# 2. detect any compiled extension that requires runtime dependencies. +# (copied from official Docker's Python image) +RUN set -ex \ + && apk add --no-cache --virtual .build-deps \ + gcc \ + libffi-dev \ + libressl-dev \ + linux-headers \ + make \ + musl-dev \ + && pip install --upgrade --no-cache-dir \ + ansible==$ANSIBLE_VERSION \ + passlib \ + && runDeps="$( \ + scanelf --needed --nobanner --format '%n#p' --recursive /usr/local \ + | tr ',' '\n' \ + | sort -u \ + | awk 'system("[ -e /usr/local/lib/" $1 " ]") == 0 { next } { print "so:" $1 }' \ + )" \ + && apk add --virtual .ansible-rundeps $runDeps \ + && apk del .build-deps + +CMD ["ansible-playbook", "--version"] From 6a7c21c3c70050b9651c69bcecc9517954045582 Mon Sep 17 00:00:00 2001 From: Luis Lavena Date: Wed, 19 Jun 2019 09:31:24 +0000 Subject: [PATCH 6/6] fixup! Improve image build process --- .travis.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.travis.yml b/.travis.yml index c0a6f84..9ba3e70 100644 --- a/.travis.yml +++ b/.travis.yml @@ -19,7 +19,7 @@ script: ( set -Eeuo pipefail set -x - docker pull "$IMAGE" + docker pull "$IMAGE" || true travis_retry docker build --cache-from "$IMAGE" -t "$IMAGE" $VERSION/ IMAGE=$IMAGE VERSION=$VERSION bats tests/ )