From 09b7b5c32294df86c91357db0395d0703c32cb61 Mon Sep 17 00:00:00 2001 From: Sahil Phule Date: Tue, 22 May 2018 12:14:33 -0400 Subject: [PATCH 01/29] Update base image for 2.1.1 --- 2.1.1/Dockerfile | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/2.1.1/Dockerfile b/2.1.1/Dockerfile index ed5c8f4..47fc321 100644 --- a/2.1.1/Dockerfile +++ b/2.1.1/Dockerfile @@ -10,7 +10,7 @@ # License for the specific language governing permissions and limitations under # the License. -FROM resin/armv7hf-debian-qemu +FROM multiarch/ubuntu-core:armhf-xenial LABEL maintainer="sahil@ole.org,mappuji@ole.org" # Add CouchDB user account @@ -123,4 +123,4 @@ EXPOSE 5984 4369 9100 VOLUME ["/opt/couchdb/data"] ENTRYPOINT ["tini", "--", "/docker-entrypoint.sh"] -CMD ["/opt/couchdb/bin/couchdb"] \ No newline at end of file +CMD ["/opt/couchdb/bin/couchdb"] From a330f473e41c692eca2c07ef4af935fd3725ad4d Mon Sep 17 00:00:00 2001 From: Sahil Phule Date: Tue, 22 May 2018 12:20:45 -0400 Subject: [PATCH 02/29] Change base for 2.1.0 --- 2.1.0/Dockerfile | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/2.1.0/Dockerfile b/2.1.0/Dockerfile index 737c7c7..9c1677b 100644 --- a/2.1.0/Dockerfile +++ b/2.1.0/Dockerfile @@ -10,7 +10,7 @@ # License for the specific language governing permissions and limitations under # the License. -FROM resin/armv7hf-debian-qemu +FROM multiarch/ubuntu-core:armhf-xenial LABEL maintainer="sahil@ole.org,mappuji@ole.org" @@ -123,4 +123,4 @@ EXPOSE 5984 4369 9100 VOLUME ["/opt/couchdb/data"] ENTRYPOINT ["tini", "--", "/docker-entrypoint.sh"] -CMD ["/opt/couchdb/bin/couchdb"] \ No newline at end of file +CMD ["/opt/couchdb/bin/couchdb"] From ce14cc6f00bdeb460ffbb024c1f3068b972da539 Mon Sep 17 00:00:00 2001 From: Sahil Phule Date: Tue, 22 May 2018 12:21:57 -0400 Subject: [PATCH 03/29] Change base for 2.0.0 --- 2.0.0/Dockerfile | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/2.0.0/Dockerfile b/2.0.0/Dockerfile index a37065a..d881f1d 100644 --- a/2.0.0/Dockerfile +++ b/2.0.0/Dockerfile @@ -16,7 +16,7 @@ LABEL maintainer="sahil@ole.org,mappuji@ole.org" COPY ./crosscompile.sh . RUN bash ./crosscompile.sh armv7 install -FROM resin/armv7hf-debian-qemu +FROM multiarch/ubuntu-core:armhf-xenial ENV COUCHDB_VERSION 2.0.0 @@ -119,4 +119,4 @@ EXPOSE 5984 4369 9100 VOLUME ["/opt/couchdb/data"] ENTRYPOINT ["tini", "--", "/docker-entrypoint.sh"] -CMD ["/opt/couchdb/bin/couchdb"] \ No newline at end of file +CMD ["/opt/couchdb/bin/couchdb"] From 0eaa494207086dc15228847cca89c3b1874f8d25 Mon Sep 17 00:00:00 2001 From: Sahil Phule Date: Tue, 22 May 2018 12:22:26 -0400 Subject: [PATCH 04/29] Change base for 1.7.1 --- 1.7.1/Dockerfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/1.7.1/Dockerfile b/1.7.1/Dockerfile index 934e45e..3f121b6 100644 --- a/1.7.1/Dockerfile +++ b/1.7.1/Dockerfile @@ -10,7 +10,7 @@ # License for the specific language governing permissions and limitations under # the License. -FROM resin/armv7hf-debian-qemu +FROM multiarch/ubuntu-core:armhf-xenial LABEL maintainer="sahil@ole.org,mappuji@ole.org" # Install instructions from https://cwiki.apache.org/confluence/display/COUCHDB/Debian From 4892d40afa5e862f4c17222a960cfaf4b46b5bbc Mon Sep 17 00:00:00 2001 From: Sahil Phule Date: Tue, 22 May 2018 13:13:47 -0400 Subject: [PATCH 05/29] Updated libicu version to 55 --- 1.7.1/Dockerfile | 2 +- 2.0.0/Dockerfile | 2 +- 2.1.0/Dockerfile | 2 +- 2.1.1/Dockerfile | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) diff --git a/1.7.1/Dockerfile b/1.7.1/Dockerfile index 3f121b6..5e1b8f0 100644 --- a/1.7.1/Dockerfile +++ b/1.7.1/Dockerfile @@ -21,7 +21,7 @@ RUN apt-get update -y && apt-get install -y --no-install-recommends \ ca-certificates \ curl \ erlang-nox \ - libicu52 \ + libicu55 \ libmozjs185-1.0 \ libnspr4 \ libnspr4-0d \ diff --git a/2.0.0/Dockerfile b/2.0.0/Dockerfile index d881f1d..2cd2dfa 100644 --- a/2.0.0/Dockerfile +++ b/2.0.0/Dockerfile @@ -35,7 +35,7 @@ RUN apt-get update -y && apt-get install -y --no-install-recommends \ erlang-nox \ erlang-reltool \ haproxy \ - libicu52 \ + libicu55 \ libmozjs185-1.0 \ openssl \ && rm -rf /var/lib/apt/lists/* diff --git a/2.1.0/Dockerfile b/2.1.0/Dockerfile index 9c1677b..d3a3f2f 100644 --- a/2.1.0/Dockerfile +++ b/2.1.0/Dockerfile @@ -23,7 +23,7 @@ RUN apt-get update -y && apt-get install -y --no-install-recommends \ erlang-nox \ erlang-reltool \ haproxy \ - libicu52 \ + libicu55 \ libmozjs185-1.0 \ openssl \ && rm -rf /var/lib/apt/lists/* diff --git a/2.1.1/Dockerfile b/2.1.1/Dockerfile index 47fc321..f04e391 100644 --- a/2.1.1/Dockerfile +++ b/2.1.1/Dockerfile @@ -22,7 +22,7 @@ RUN apt-get update -y && apt-get install -y --no-install-recommends \ erlang-nox \ erlang-reltool \ haproxy \ - libicu52 \ + libicu55 \ libmozjs185-1.0 \ openssl \ && rm -rf /var/lib/apt/lists/* From 238e8fd757e1527819641266a9be066d7c73d9fc Mon Sep 17 00:00:00 2001 From: Sahil Phule Date: Tue, 22 May 2018 13:13:47 -0400 Subject: [PATCH 06/29] Revert "Updated libicu version to 55" This reverts commit 4892d40afa5e862f4c17222a960cfaf4b46b5bbc. --- 1.7.1/Dockerfile | 2 +- 2.0.0/Dockerfile | 2 +- 2.1.0/Dockerfile | 2 +- 2.1.1/Dockerfile | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) diff --git a/1.7.1/Dockerfile b/1.7.1/Dockerfile index 5e1b8f0..3f121b6 100644 --- a/1.7.1/Dockerfile +++ b/1.7.1/Dockerfile @@ -21,7 +21,7 @@ RUN apt-get update -y && apt-get install -y --no-install-recommends \ ca-certificates \ curl \ erlang-nox \ - libicu55 \ + libicu52 \ libmozjs185-1.0 \ libnspr4 \ libnspr4-0d \ diff --git a/2.0.0/Dockerfile b/2.0.0/Dockerfile index 2cd2dfa..d881f1d 100644 --- a/2.0.0/Dockerfile +++ b/2.0.0/Dockerfile @@ -35,7 +35,7 @@ RUN apt-get update -y && apt-get install -y --no-install-recommends \ erlang-nox \ erlang-reltool \ haproxy \ - libicu55 \ + libicu52 \ libmozjs185-1.0 \ openssl \ && rm -rf /var/lib/apt/lists/* diff --git a/2.1.0/Dockerfile b/2.1.0/Dockerfile index d3a3f2f..9c1677b 100644 --- a/2.1.0/Dockerfile +++ b/2.1.0/Dockerfile @@ -23,7 +23,7 @@ RUN apt-get update -y && apt-get install -y --no-install-recommends \ erlang-nox \ erlang-reltool \ haproxy \ - libicu55 \ + libicu52 \ libmozjs185-1.0 \ openssl \ && rm -rf /var/lib/apt/lists/* diff --git a/2.1.1/Dockerfile b/2.1.1/Dockerfile index f04e391..47fc321 100644 --- a/2.1.1/Dockerfile +++ b/2.1.1/Dockerfile @@ -22,7 +22,7 @@ RUN apt-get update -y && apt-get install -y --no-install-recommends \ erlang-nox \ erlang-reltool \ haproxy \ - libicu55 \ + libicu52 \ libmozjs185-1.0 \ openssl \ && rm -rf /var/lib/apt/lists/* From cca54eb3361b478735ae1a19e6f1e249a2b44329 Mon Sep 17 00:00:00 2001 From: Sahil Phule Date: Tue, 22 May 2018 15:36:37 -0400 Subject: [PATCH 07/29] Change all bases to raspbian --- 1.7.1/Dockerfile | 2 +- 2.0.0/Dockerfile | 2 +- 2.1.0/Dockerfile | 2 +- 2.1.1/Dockerfile | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) diff --git a/1.7.1/Dockerfile b/1.7.1/Dockerfile index 3f121b6..bbef8f5 100644 --- a/1.7.1/Dockerfile +++ b/1.7.1/Dockerfile @@ -10,7 +10,7 @@ # License for the specific language governing permissions and limitations under # the License. -FROM multiarch/ubuntu-core:armhf-xenial +FROM resin/rpi-raspbian LABEL maintainer="sahil@ole.org,mappuji@ole.org" # Install instructions from https://cwiki.apache.org/confluence/display/COUCHDB/Debian diff --git a/2.0.0/Dockerfile b/2.0.0/Dockerfile index d881f1d..985e12f 100644 --- a/2.0.0/Dockerfile +++ b/2.0.0/Dockerfile @@ -16,7 +16,7 @@ LABEL maintainer="sahil@ole.org,mappuji@ole.org" COPY ./crosscompile.sh . RUN bash ./crosscompile.sh armv7 install -FROM multiarch/ubuntu-core:armhf-xenial +FROM resin/rpi-raspbian ENV COUCHDB_VERSION 2.0.0 diff --git a/2.1.0/Dockerfile b/2.1.0/Dockerfile index 9c1677b..5ce0c91 100644 --- a/2.1.0/Dockerfile +++ b/2.1.0/Dockerfile @@ -10,7 +10,7 @@ # License for the specific language governing permissions and limitations under # the License. -FROM multiarch/ubuntu-core:armhf-xenial +FROM resin/rpi-raspbian LABEL maintainer="sahil@ole.org,mappuji@ole.org" diff --git a/2.1.1/Dockerfile b/2.1.1/Dockerfile index 47fc321..5e5691c 100644 --- a/2.1.1/Dockerfile +++ b/2.1.1/Dockerfile @@ -10,7 +10,7 @@ # License for the specific language governing permissions and limitations under # the License. -FROM multiarch/ubuntu-core:armhf-xenial +FROM resin/rpi-raspbian LABEL maintainer="sahil@ole.org,mappuji@ole.org" # Add CouchDB user account From 328ce3da564e4b16c56cf6b21fb0bb2ac7c9a1d7 Mon Sep 17 00:00:00 2001 From: Sahil Phule Date: Tue, 22 May 2018 15:38:50 -0400 Subject: [PATCH 08/29] Add travis update param --- .travis.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.travis.yml b/.travis.yml index a9e8bd7..8887abf 100644 --- a/.travis.yml +++ b/.travis.yml @@ -4,6 +4,7 @@ node_js: - '8' addons: apt: + update: true packages: - docker-ce - wget From 57628283d4e2d4158b7c5de874496ff379ed8bfd Mon Sep 17 00:00:00 2001 From: Sahil Phule Date: Tue, 22 May 2018 15:55:01 -0400 Subject: [PATCH 09/29] No need to check tini --- 1.7.1/Dockerfile | 2 -- 2.1.0/Dockerfile | 2 -- 2.1.1/Dockerfile | 2 -- 3 files changed, 6 deletions(-) diff --git a/1.7.1/Dockerfile b/1.7.1/Dockerfile index bbef8f5..a979db5 100644 --- a/1.7.1/Dockerfile +++ b/1.7.1/Dockerfile @@ -54,8 +54,6 @@ RUN set -ex; \ gpg --batch --verify /usr/local/bin/tini.asc /usr/local/bin/tini; \ rm -r "$GNUPGHOME" /usr/local/bin/tini.asc; \ chmod +x /usr/local/bin/tini; \ - tini --version; \ - \ apt-get purge -y --auto-remove wget # https://www.apache.org/dist/couchdb/KEYS diff --git a/2.1.0/Dockerfile b/2.1.0/Dockerfile index 5ce0c91..42a3564 100644 --- a/2.1.0/Dockerfile +++ b/2.1.0/Dockerfile @@ -57,8 +57,6 @@ RUN set -ex; \ gpg --batch --verify /usr/local/bin/tini.asc /usr/local/bin/tini; \ rm -r "$GNUPGHOME" /usr/local/bin/tini.asc; \ chmod +x /usr/local/bin/tini; \ - tini --version; \ - \ apt-get purge -y --auto-remove wget # https://www.apache.org/dist/couchdb/KEYS diff --git a/2.1.1/Dockerfile b/2.1.1/Dockerfile index 5e5691c..b9eb244 100644 --- a/2.1.1/Dockerfile +++ b/2.1.1/Dockerfile @@ -56,8 +56,6 @@ RUN set -ex; \ gpg --batch --verify /usr/local/bin/tini.asc /usr/local/bin/tini; \ rm -r "$GNUPGHOME" /usr/local/bin/tini.asc; \ chmod +x /usr/local/bin/tini; \ - tini --version; \ - \ apt-get purge -y --auto-remove wget # https://www.apache.org/dist/couchdb/KEYS From 71f2f5efcfc9af1751fd6656c62f281578e15cc2 Mon Sep 17 00:00:00 2001 From: Sahil Phule Date: Tue, 22 May 2018 15:55:01 -0400 Subject: [PATCH 10/29] Revert "No need to check tini" This reverts commit 57628283d4e2d4158b7c5de874496ff379ed8bfd. --- 1.7.1/Dockerfile | 2 ++ 2.1.0/Dockerfile | 2 ++ 2.1.1/Dockerfile | 2 ++ 3 files changed, 6 insertions(+) diff --git a/1.7.1/Dockerfile b/1.7.1/Dockerfile index a979db5..bbef8f5 100644 --- a/1.7.1/Dockerfile +++ b/1.7.1/Dockerfile @@ -54,6 +54,8 @@ RUN set -ex; \ gpg --batch --verify /usr/local/bin/tini.asc /usr/local/bin/tini; \ rm -r "$GNUPGHOME" /usr/local/bin/tini.asc; \ chmod +x /usr/local/bin/tini; \ + tini --version; \ + \ apt-get purge -y --auto-remove wget # https://www.apache.org/dist/couchdb/KEYS diff --git a/2.1.0/Dockerfile b/2.1.0/Dockerfile index 42a3564..5ce0c91 100644 --- a/2.1.0/Dockerfile +++ b/2.1.0/Dockerfile @@ -57,6 +57,8 @@ RUN set -ex; \ gpg --batch --verify /usr/local/bin/tini.asc /usr/local/bin/tini; \ rm -r "$GNUPGHOME" /usr/local/bin/tini.asc; \ chmod +x /usr/local/bin/tini; \ + tini --version; \ + \ apt-get purge -y --auto-remove wget # https://www.apache.org/dist/couchdb/KEYS diff --git a/2.1.1/Dockerfile b/2.1.1/Dockerfile index b9eb244..5e5691c 100644 --- a/2.1.1/Dockerfile +++ b/2.1.1/Dockerfile @@ -56,6 +56,8 @@ RUN set -ex; \ gpg --batch --verify /usr/local/bin/tini.asc /usr/local/bin/tini; \ rm -r "$GNUPGHOME" /usr/local/bin/tini.asc; \ chmod +x /usr/local/bin/tini; \ + tini --version; \ + \ apt-get purge -y --auto-remove wget # https://www.apache.org/dist/couchdb/KEYS From a8a070df7010b46a7bf41b348f891a39957a82b1 Mon Sep 17 00:00:00 2001 From: Sahil Phule Date: Thu, 24 May 2018 01:58:13 -0400 Subject: [PATCH 11/29] Check if tini exists --- 1.7.1/Dockerfile | 6 +++++- 2.0.0/Dockerfile | 11 ++++++++--- 2.1.0/Dockerfile | 6 +++++- 2.1.1/Dockerfile | 6 +++++- 4 files changed, 23 insertions(+), 6 deletions(-) diff --git a/1.7.1/Dockerfile b/1.7.1/Dockerfile index bbef8f5..6476e46 100644 --- a/1.7.1/Dockerfile +++ b/1.7.1/Dockerfile @@ -46,7 +46,10 @@ RUN set -ex; \ rm -r "$GNUPGHOME" /usr/local/bin/gosu.asc; \ chmod +x /usr/local/bin/gosu; \ \ -# install tini +# check if tini exists + if ! type "tini > /dev/null; then \ + \ +# if not then install tini wget -O /usr/local/bin/tini "https://github.com/krallin/tini/releases/download/v${TINI_VERSION}/tini-$dpkgArch"; \ wget -O /usr/local/bin/tini.asc "https://github.com/krallin/tini/releases/download/v${TINI_VERSION}/tini-$dpkgArch.asc"; \ export GNUPGHOME="$(mktemp -d)"; \ @@ -56,6 +59,7 @@ RUN set -ex; \ chmod +x /usr/local/bin/tini; \ tini --version; \ \ + fi; \ apt-get purge -y --auto-remove wget # https://www.apache.org/dist/couchdb/KEYS diff --git a/2.0.0/Dockerfile b/2.0.0/Dockerfile index 985e12f..25fafe4 100644 --- a/2.0.0/Dockerfile +++ b/2.0.0/Dockerfile @@ -47,12 +47,17 @@ RUN gpg --keyserver ha.pool.sks-keyservers.net --recv-keys B42F6819007F00F88E364 && gpg --verify /usr/local/bin/gosu.asc \ && rm /usr/local/bin/gosu.asc \ && chmod +x /usr/local/bin/gosu \ - && gpg --keyserver ha.pool.sks-keyservers.net --recv-keys 6380DC428747F6C393FEACA59A84159D7001A4E5 \ - && curl -o /usr/local/bin/tini -fSL "https://github.com/krallin/tini/releases/download/v0.14.0/tini" \ + && gpg --keyserver ha.pool.sks-keyservers.net --recv-keys 6380DC428747F6C393FEACA59A84159D7001A4E5; \ +# check if tini exists + if ! type "tini" > /dev/null; then \ + \ +# if not then install tini + curl -o /usr/local/bin/tini -fSL "https://github.com/krallin/tini/releases/download/v0.14.0/tini" \ && curl -o /usr/local/bin/tini.asc -fSL "https://github.com/krallin/tini/releases/download/v0.14.0/tini.asc" \ && gpg --verify /usr/local/bin/tini.asc \ && rm /usr/local/bin/tini.asc \ - && chmod +x /usr/local/bin/tini + && chmod +x /usr/local/bin/tini; \ + fi; # https://www.apache.org/dist/couchdb/KEYS ENV GPG_KEYS \ diff --git a/2.1.0/Dockerfile b/2.1.0/Dockerfile index 5ce0c91..bf66cb1 100644 --- a/2.1.0/Dockerfile +++ b/2.1.0/Dockerfile @@ -49,7 +49,10 @@ RUN set -ex; \ rm -r "$GNUPGHOME" /usr/local/bin/gosu.asc; \ chmod +x /usr/local/bin/gosu; \ \ -# install tini +# check if tini exists + if ! type "tini" > /dev/null; then \ + \ +# if not then install tini wget -O /usr/local/bin/tini "https://github.com/krallin/tini/releases/download/v${TINI_VERSION}/tini-$dpkgArch"; \ wget -O /usr/local/bin/tini.asc "https://github.com/krallin/tini/releases/download/v${TINI_VERSION}/tini-$dpkgArch.asc"; \ export GNUPGHOME="$(mktemp -d)"; \ @@ -59,6 +62,7 @@ RUN set -ex; \ chmod +x /usr/local/bin/tini; \ tini --version; \ \ + fi; \ apt-get purge -y --auto-remove wget # https://www.apache.org/dist/couchdb/KEYS diff --git a/2.1.1/Dockerfile b/2.1.1/Dockerfile index 5e5691c..38bf5f2 100644 --- a/2.1.1/Dockerfile +++ b/2.1.1/Dockerfile @@ -48,7 +48,10 @@ RUN set -ex; \ rm -r "$GNUPGHOME" /usr/local/bin/gosu.asc; \ chmod +x /usr/local/bin/gosu; \ \ -# install tini +# check if tini exists + if ! type "tini" > /dev/null; then \ + \ +# if not then install tini wget -O /usr/local/bin/tini "https://github.com/krallin/tini/releases/download/v${TINI_VERSION}/tini-$dpkgArch"; \ wget -O /usr/local/bin/tini.asc "https://github.com/krallin/tini/releases/download/v${TINI_VERSION}/tini-$dpkgArch.asc"; \ export GNUPGHOME="$(mktemp -d)"; \ @@ -58,6 +61,7 @@ RUN set -ex; \ chmod +x /usr/local/bin/tini; \ tini --version; \ \ + fi; \ apt-get purge -y --auto-remove wget # https://www.apache.org/dist/couchdb/KEYS From 3cd21c407a763b04b3395a116fe1d8af9d7d0f38 Mon Sep 17 00:00:00 2001 From: Sahil Phule Date: Thu, 24 May 2018 02:03:29 -0400 Subject: [PATCH 12/29] fix syntax --- 1.7.1/Dockerfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/1.7.1/Dockerfile b/1.7.1/Dockerfile index 6476e46..628dd29 100644 --- a/1.7.1/Dockerfile +++ b/1.7.1/Dockerfile @@ -47,7 +47,7 @@ RUN set -ex; \ chmod +x /usr/local/bin/gosu; \ \ # check if tini exists - if ! type "tini > /dev/null; then \ + if ! type "tini" > /dev/null; then \ \ # if not then install tini wget -O /usr/local/bin/tini "https://github.com/krallin/tini/releases/download/v${TINI_VERSION}/tini-$dpkgArch"; \ From e084018a544cf321a007f4bb0cb44622c8ca02f7 Mon Sep 17 00:00:00 2001 From: Sahil Phule Date: Tue, 29 May 2018 07:46:06 -0400 Subject: [PATCH 13/29] Add support for arm64 (Fixes #22) --- .travis/deploy_docker_rpi.sh | 8 ++++++++ .../multiarch_manifest_latest.yml | 6 +++++- .../multiarch_manifest_v1.7.1.yml | 5 +++++ .../multiarch_manifest_v2.1.1.yml | 5 +++++ .travis/travis_utils.sh | 18 ++++++++++++++++++ 5 files changed, 41 insertions(+), 1 deletion(-) diff --git a/.travis/deploy_docker_rpi.sh b/.travis/deploy_docker_rpi.sh index 0ab42a2..037a451 100755 --- a/.travis/deploy_docker_rpi.sh +++ b/.travis/deploy_docker_rpi.sh @@ -67,6 +67,14 @@ build_message Build V211 image started... deploy_v211 build_message Build V211 image finished, check build result! +build_message Build V171 arm64 image started... +deploy_v171_arm64 +build_message Build V171 arm64 image finished, check build result! + +build_message Build V211 arm64 image started... +deploy_v211_arm64 +build_message Build V211 arm64 image finished, check build result! + build_message Preparing to Push multi-arch manifest to Docker Cloud .. deploy_multiarch diff --git a/.travis/multiarch_manifests/multiarch_manifest_latest.yml b/.travis/multiarch_manifests/multiarch_manifest_latest.yml index 9b1bd06..05b8a3d 100644 --- a/.travis/multiarch_manifests/multiarch_manifest_latest.yml +++ b/.travis/multiarch_manifests/multiarch_manifest_latest.yml @@ -5,9 +5,13 @@ manifests: platform: architecture: arm os: linux + - + image: treehouses/arm64-rpi-couchdb:2.1.1 + platform: + architecture: arm64 + os: linux - image: amd64/couchdb:2.1.1 platform: architecture: amd64 os: linux - diff --git a/.travis/multiarch_manifests/multiarch_manifest_v1.7.1.yml b/.travis/multiarch_manifests/multiarch_manifest_v1.7.1.yml index ee2cae2..9e0a361 100644 --- a/.travis/multiarch_manifests/multiarch_manifest_v1.7.1.yml +++ b/.travis/multiarch_manifests/multiarch_manifest_v1.7.1.yml @@ -5,6 +5,11 @@ manifests: platform: architecture: arm os: linux + - + image: treehouses/arm64-rpi-couchdb:1.7.1 + platform: + architecture: arm64 + os: linux - image: amd64/couchdb:1.7.1 platform: diff --git a/.travis/multiarch_manifests/multiarch_manifest_v2.1.1.yml b/.travis/multiarch_manifests/multiarch_manifest_v2.1.1.yml index 7b044fc..6e5332d 100644 --- a/.travis/multiarch_manifests/multiarch_manifest_v2.1.1.yml +++ b/.travis/multiarch_manifests/multiarch_manifest_v2.1.1.yml @@ -5,6 +5,11 @@ manifests: platform: architecture: arm os: linux + - + image: treehouses/arm64-rpi-couchdb:2.1.1 + platform: + architecture: arm64 + os: linux - image: amd64/couchdb:2.1.1 platform: diff --git a/.travis/travis_utils.sh b/.travis/travis_utils.sh index f649a39..de0c53d 100755 --- a/.travis/travis_utils.sh +++ b/.travis/travis_utils.sh @@ -153,6 +153,24 @@ deploy_v211(){ push_v211 } +deploy_v171_arm64(){ + login_docker + sed -i -e "s/\(resin\/rpi-raspbian\)/resin\/aarch64-debian/" 1.7.1/Dockerfile + $V171_DOCKER_NAME_LATEST="arm64-$V171_DOCKER_NAME_LATEST" + $V171_DOCKER_NAME="arm64-$V171_DOCKER_NAME" + package_v171 + push_v171 +} + +deploy_v211_arm64(){ + login_docker + sed -i -e "s/\(resin\/rpi-raspbian\)/resin\/aarch64-debian/" 2.1.1/Dockerfile + $V211_DOCKER_NAME_LATEST="arm64-$V211_DOCKER_NAME_LATEST" + $V211_DOCKER_NAME="arm64-$V211_DOCKER_NAME" + package_v211 + push_v211 +} + deploy_multiarch(){ if [ "$BRANCH" = "master" ] then From f7573c5626c6fe7d80530272df06385878454071 Mon Sep 17 00:00:00 2001 From: Sahil Phule Date: Tue, 29 May 2018 08:19:51 -0400 Subject: [PATCH 14/29] Fix Syntax for arm64 --- .travis/travis_utils.sh | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/.travis/travis_utils.sh b/.travis/travis_utils.sh index de0c53d..14eab75 100755 --- a/.travis/travis_utils.sh +++ b/.travis/travis_utils.sh @@ -156,8 +156,8 @@ deploy_v211(){ deploy_v171_arm64(){ login_docker sed -i -e "s/\(resin\/rpi-raspbian\)/resin\/aarch64-debian/" 1.7.1/Dockerfile - $V171_DOCKER_NAME_LATEST="arm64-$V171_DOCKER_NAME_LATEST" - $V171_DOCKER_NAME="arm64-$V171_DOCKER_NAME" + V171_DOCKER_NAME_LATEST="arm64-$V171_DOCKER_NAME_LATEST" + V171_DOCKER_NAME="arm64-$V171_DOCKER_NAME" package_v171 push_v171 } @@ -165,8 +165,8 @@ deploy_v171_arm64(){ deploy_v211_arm64(){ login_docker sed -i -e "s/\(resin\/rpi-raspbian\)/resin\/aarch64-debian/" 2.1.1/Dockerfile - $V211_DOCKER_NAME_LATEST="arm64-$V211_DOCKER_NAME_LATEST" - $V211_DOCKER_NAME="arm64-$V211_DOCKER_NAME" + V211_DOCKER_NAME_LATEST="arm64-$V211_DOCKER_NAME_LATEST" + V211_DOCKER_NAME="arm64-$V211_DOCKER_NAME" package_v211 push_v211 } From 0b7c209d76706a29e1c3acaf66d57c7556488d6c Mon Sep 17 00:00:00 2001 From: Sahil Phule Date: Tue, 29 May 2018 09:04:48 -0400 Subject: [PATCH 15/29] fix arm64 vars --- .travis/travis_utils.sh | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/.travis/travis_utils.sh b/.travis/travis_utils.sh index 14eab75..bef4dba 100755 --- a/.travis/travis_utils.sh +++ b/.travis/travis_utils.sh @@ -156,8 +156,8 @@ deploy_v211(){ deploy_v171_arm64(){ login_docker sed -i -e "s/\(resin\/rpi-raspbian\)/resin\/aarch64-debian/" 1.7.1/Dockerfile - V171_DOCKER_NAME_LATEST="arm64-$V171_DOCKER_NAME_LATEST" - V171_DOCKER_NAME="arm64-$V171_DOCKER_NAME" + V171_DOCKER_NAME_LATEST="$DOCKER_ORG/$DOCKER_REPO:arm64-1.7.1" + V171_DOCKER_NAME="arm64-$DOCKER_ORG/$DOCKER_REPO:1.7.1-$VERSION-$BRANCH-$COMMIT" package_v171 push_v171 } @@ -165,8 +165,8 @@ deploy_v171_arm64(){ deploy_v211_arm64(){ login_docker sed -i -e "s/\(resin\/rpi-raspbian\)/resin\/aarch64-debian/" 2.1.1/Dockerfile - V211_DOCKER_NAME_LATEST="arm64-$V211_DOCKER_NAME_LATEST" - V211_DOCKER_NAME="arm64-$V211_DOCKER_NAME" + V211_DOCKER_NAME_LATEST="$DOCKER_ORG/$DOCKER_REPO:arm64-2.1.1" + V211_DOCKER_NAME="arm64-$DOCKER_ORG/$DOCKER_REPO:2.1.1-$VERSION-$BRANCH-$COMMIT" package_v211 push_v211 } From af644c686963f715cc3a0c5f2d8009e7739749ff Mon Sep 17 00:00:00 2001 From: Sahil Phule Date: Tue, 29 May 2018 09:50:08 -0400 Subject: [PATCH 16/29] Even more var fixes --- .travis/travis_utils.sh | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.travis/travis_utils.sh b/.travis/travis_utils.sh index bef4dba..55364e0 100755 --- a/.travis/travis_utils.sh +++ b/.travis/travis_utils.sh @@ -157,7 +157,7 @@ deploy_v171_arm64(){ login_docker sed -i -e "s/\(resin\/rpi-raspbian\)/resin\/aarch64-debian/" 1.7.1/Dockerfile V171_DOCKER_NAME_LATEST="$DOCKER_ORG/$DOCKER_REPO:arm64-1.7.1" - V171_DOCKER_NAME="arm64-$DOCKER_ORG/$DOCKER_REPO:1.7.1-$VERSION-$BRANCH-$COMMIT" + V171_DOCKER_NAME="$DOCKER_ORG/$DOCKER_REPO:arm64-1.7.1-$VERSION-$BRANCH-$COMMIT" package_v171 push_v171 } @@ -166,7 +166,7 @@ deploy_v211_arm64(){ login_docker sed -i -e "s/\(resin\/rpi-raspbian\)/resin\/aarch64-debian/" 2.1.1/Dockerfile V211_DOCKER_NAME_LATEST="$DOCKER_ORG/$DOCKER_REPO:arm64-2.1.1" - V211_DOCKER_NAME="arm64-$DOCKER_ORG/$DOCKER_REPO:2.1.1-$VERSION-$BRANCH-$COMMIT" + V211_DOCKER_NAME="$DOCKER_ORG/$DOCKER_REPO:arm64-2.1.1-$VERSION-$BRANCH-$COMMIT" package_v211 push_v211 } From 7a81fe44474637689e743434116113e78085c9aa Mon Sep 17 00:00:00 2001 From: Sahil Phule Date: Mon, 11 Jun 2018 11:38:10 -0400 Subject: [PATCH 17/29] 32 on 64 --- 2.1.1/Dockerfile-arm64 | 112 +++++++++++++++++++++++++++++++++++++++++ 1 file changed, 112 insertions(+) create mode 100644 2.1.1/Dockerfile-arm64 diff --git a/2.1.1/Dockerfile-arm64 b/2.1.1/Dockerfile-arm64 new file mode 100644 index 0000000..43f14d7 --- /dev/null +++ b/2.1.1/Dockerfile-arm64 @@ -0,0 +1,112 @@ +# Licensed under the Apache License, Version 2.1 (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. + +#We will be building 64-bit after 32-bit. So we can use this as builder +FROM treehouses/rpi-couchdb:2.1.1 as builder + +RUN mkdir /pkgs \ + && cd /pkgs \ + && apt-get update \ + && apt-get install -y wget \ + && wget $(apt-get install --reinstall --print-uris -qq libmozjs185-1.0 | cut -d"'" -f2 | grep "/libmozjs185-1.0_") + +FROM resin/aarch64-debian +LABEL maintainer="sahil@ole.org,mappuji@ole.org" + +# Add CouchDB user account +RUN groupadd -r couchdb && useradd -d /opt/couchdb -g couchdb couchdb + +RUN dpkg --add-architecture armhf \ + && apt-get update -y && apt-get install -y --no-install-recommends \ + ca-certificates \ + ca-certificates:armhf \ + curl:armhf \ + #erlang-nox: dummy packages dont support different architecture install. Hence install all separately. + erlang-base:armhf erlang-asn1:armhf erlang-corba:armhf erlang-crypto:armhf erlang-diameter:armhf erlang-edoc:armhf erlang-eldap:armhf erlang-erl-docgen:armhf erlang-eunit:armhf erlang-ic:armhf erlang-inets:armhf erlang-mnesia:armhf erlang-odbc:armhf erlang-os-mon:armhf erlang-parsetools:armhf erlang-percept:armhf erlang-public-key:armhf erlang-runtime-tools:armhf erlang-snmp:armhf erlang-ssh:armhf erlang-ssl:armhf erlang-syntax-tools:armhf erlang-tools:armhf erlang-webtool:armhf erlang-xmerl:armhf \ + erlang-reltool:armhf \ + haproxy:armhf \ + libicu52:armhf \ + openssl \ + && rm -rf /var/lib/apt/lists/* + +# grab gosu for easy step-down from root and tini for signal handling +# see https://github.com/apache/couchdb-docker/pull/28#discussion_r141112407 +ENV GOSU_VERSION 1.10 +ENV TINI_VERSION 0.16.1 +RUN set -ex; \ + \ + apt-get update; \ + apt-get install -y --no-install-recommends wget; \ + rm -rf /var/lib/apt/lists/*; \ + \ + dpkgArch="$(dpkg --print-architecture | awk -F- '{ print $NF }')"; \ + \ +# install gosu + wget -O /usr/local/bin/gosu "https://github.com/tianon/gosu/releases/download/${GOSU_VERSION}/gosu-$dpkgArch"; \ + wget -O /usr/local/bin/gosu.asc "https://github.com/tianon/gosu/releases/download/$GOSU_VERSION/gosu-$dpkgArch.asc"; \ + export GNUPGHOME="$(mktemp -d)"; \ + gpg --keyserver ha.pool.sks-keyservers.net --recv-keys B42F6819007F00F88E364FD4036A9C25BF357DD4; \ + gpg --batch --verify /usr/local/bin/gosu.asc /usr/local/bin/gosu; \ + rm -r "$GNUPGHOME" /usr/local/bin/gosu.asc; \ + chmod +x /usr/local/bin/gosu; \ + \ +# check if tini exists + if ! type "tini" > /dev/null; then \ + \ +# if not then install tini + wget -O /usr/local/bin/tini "https://github.com/krallin/tini/releases/download/v${TINI_VERSION}/tini-$dpkgArch"; \ + wget -O /usr/local/bin/tini.asc "https://github.com/krallin/tini/releases/download/v${TINI_VERSION}/tini-$dpkgArch.asc"; \ + export GNUPGHOME="$(mktemp -d)"; \ + gpg --keyserver ha.pool.sks-keyservers.net --recv-keys 595E85A6B1B4779EA4DAAEC70B588DFF0527A9B7; \ + gpg --batch --verify /usr/local/bin/tini.asc /usr/local/bin/tini; \ + rm -r "$GNUPGHOME" /usr/local/bin/tini.asc; \ + chmod +x /usr/local/bin/tini; \ + tini --version; \ + \ + fi; \ + apt-get purge -y --auto-remove wget + +#Copy 32bit mozjs deb From builder +COPY --from=builder /pkgs /root +RUN mkdir -p /opt/couchdb \ + && apt-get update && apt-get -y install gdebi-core \ + && for f in `ls -1 /root/*.deb | sed 's/\(.*\)\..*/\1/'`; \ + do \ + echo $f "\n"; \ + apt-get update; \ + gdebi $f.deb; \ + #apt-get install -f; \ + rm -rf /var/lib/apt/lists/*; \ + done; \ + apt-get purge -y --auto-remove gdebi-core; +#remove pkgs + +#Copy pre-compiled couchdb From builder +#This is to be done as CouchDB doesn't compile on arm64 +COPY --from=builder /opt/couchdb /opt/couchdb + + +# Add configuration +COPY local.ini /opt/couchdb/etc/local.d/ +COPY vm.args /opt/couchdb/etc/ + +COPY ./docker-entrypoint.sh / + +# Setup directories and permissions +RUN chown -R couchdb:couchdb /opt/couchdb + +WORKDIR /opt/couchdb +EXPOSE 5984 4369 9100 +VOLUME ["/opt/couchdb/data"] + +ENTRYPOINT ["tini", "--", "/docker-entrypoint.sh"] +CMD ["/opt/couchdb/bin/couchdb"] From 4125c14aa935056786f41fd8001a6948f791db51 Mon Sep 17 00:00:00 2001 From: Sahil Phule Date: Mon, 11 Jun 2018 11:40:39 -0400 Subject: [PATCH 18/29] Change mozjs get method --- 2.1.1/Dockerfile-arm64 | 7 +------ 1 file changed, 1 insertion(+), 6 deletions(-) diff --git a/2.1.1/Dockerfile-arm64 b/2.1.1/Dockerfile-arm64 index 43f14d7..60eed0c 100644 --- a/2.1.1/Dockerfile-arm64 +++ b/2.1.1/Dockerfile-arm64 @@ -13,12 +13,6 @@ #We will be building 64-bit after 32-bit. So we can use this as builder FROM treehouses/rpi-couchdb:2.1.1 as builder -RUN mkdir /pkgs \ - && cd /pkgs \ - && apt-get update \ - && apt-get install -y wget \ - && wget $(apt-get install --reinstall --print-uris -qq libmozjs185-1.0 | cut -d"'" -f2 | grep "/libmozjs185-1.0_") - FROM resin/aarch64-debian LABEL maintainer="sahil@ole.org,mappuji@ole.org" @@ -35,6 +29,7 @@ RUN dpkg --add-architecture armhf \ erlang-reltool:armhf \ haproxy:armhf \ libicu52:armhf \ + libmozjs185-1.0:armhf openssl \ && rm -rf /var/lib/apt/lists/* From 656662e6ad15d7deabab01e601dc77d62c0a8fee Mon Sep 17 00:00:00 2001 From: Sahil Phule Date: Mon, 11 Jun 2018 11:42:14 -0400 Subject: [PATCH 19/29] No need of the gdebi and mozjs copy --- 2.1.1/Dockerfile-arm64 | 15 +-------------- 1 file changed, 1 insertion(+), 14 deletions(-) diff --git a/2.1.1/Dockerfile-arm64 b/2.1.1/Dockerfile-arm64 index 60eed0c..1d6dff4 100644 --- a/2.1.1/Dockerfile-arm64 +++ b/2.1.1/Dockerfile-arm64 @@ -70,21 +70,8 @@ RUN set -ex; \ fi; \ apt-get purge -y --auto-remove wget -#Copy 32bit mozjs deb From builder -COPY --from=builder /pkgs /root -RUN mkdir -p /opt/couchdb \ - && apt-get update && apt-get -y install gdebi-core \ - && for f in `ls -1 /root/*.deb | sed 's/\(.*\)\..*/\1/'`; \ - do \ - echo $f "\n"; \ - apt-get update; \ - gdebi $f.deb; \ - #apt-get install -f; \ - rm -rf /var/lib/apt/lists/*; \ - done; \ - apt-get purge -y --auto-remove gdebi-core; -#remove pkgs +RUN mkdir -p /opt/couchdb #Copy pre-compiled couchdb From builder #This is to be done as CouchDB doesn't compile on arm64 COPY --from=builder /opt/couchdb /opt/couchdb From 538f9fbfc07b374cdfc07af740065c26c3e3a425 Mon Sep 17 00:00:00 2001 From: Sahil Phule Date: Mon, 11 Jun 2018 12:19:27 -0400 Subject: [PATCH 20/29] Fix syntax --- 2.1.1/Dockerfile-arm64 | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/2.1.1/Dockerfile-arm64 b/2.1.1/Dockerfile-arm64 index 1d6dff4..e151a68 100644 --- a/2.1.1/Dockerfile-arm64 +++ b/2.1.1/Dockerfile-arm64 @@ -10,7 +10,7 @@ # License for the specific language governing permissions and limitations under # the License. -#We will be building 64-bit after 32-bit. So we can use this as builder +#We will be building 64-bit after 32-bit. So we can use this as builder. FROM treehouses/rpi-couchdb:2.1.1 as builder FROM resin/aarch64-debian @@ -29,7 +29,7 @@ RUN dpkg --add-architecture armhf \ erlang-reltool:armhf \ haproxy:armhf \ libicu52:armhf \ - libmozjs185-1.0:armhf + libmozjs185-1.0:armhf \ openssl \ && rm -rf /var/lib/apt/lists/* From d3e792cb72f928dba6cfff82c8c8a575e8fb927f Mon Sep 17 00:00:00 2001 From: Sahil Phule Date: Mon, 11 Jun 2018 12:19:48 -0400 Subject: [PATCH 21/29] Modify travis util --- .travis/travis_utils.sh | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/.travis/travis_utils.sh b/.travis/travis_utils.sh index 55364e0..6bc324c 100755 --- a/.travis/travis_utils.sh +++ b/.travis/travis_utils.sh @@ -164,7 +164,14 @@ deploy_v171_arm64(){ deploy_v211_arm64(){ login_docker - sed -i -e "s/\(resin\/rpi-raspbian\)/resin\/aarch64-debian/" 2.1.1/Dockerfile + rm 2.1.1/Dockerfile + mv 2.1.1/Dockerfile-arm64 2.1.1/Dockerfile + if [ "$BRANCH" = "master" ] + then + sed -i -e "s/\(treehouses\/rpi-couchdb:2\.1\.1\)/$V211_DOCKER_NAME_LATEST/" 2.1.1/Dockerfile + else + sed -i -e "s/\(treehouses\/rpi-couchdb:2\.1\.1\)/$V211_DOCKER_NAME/" 2.1.1/Dockerfile + fi V211_DOCKER_NAME_LATEST="$DOCKER_ORG/$DOCKER_REPO:arm64-2.1.1" V211_DOCKER_NAME="$DOCKER_ORG/$DOCKER_REPO:arm64-2.1.1-$VERSION-$BRANCH-$COMMIT" package_v211 From 3f295a105094429dbbfd18ee91d3db6a0f437309 Mon Sep 17 00:00:00 2001 From: Sahil Phule Date: Mon, 11 Jun 2018 12:21:42 -0400 Subject: [PATCH 22/29] Change branch condition to current branch for testing --- .travis/travis_utils.sh | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/.travis/travis_utils.sh b/.travis/travis_utils.sh index 6bc324c..bb13a0e 100755 --- a/.travis/travis_utils.sh +++ b/.travis/travis_utils.sh @@ -37,7 +37,7 @@ package_v171(){ build_message processing $V171_DOCKER_NAME docker build 1.7.1/ -t $V171_DOCKER_NAME build_message done processing $V171_DOCKER_NAME - if [ "$BRANCH" = "master" ] + if [ "$BRANCH" = "add-arm64-support" ] then build_message processing $V171_DOCKER_NAME_LATEST docker tag $V171_DOCKER_NAME $V171_DOCKER_NAME_LATEST @@ -49,7 +49,7 @@ package_v200(){ build_message processing $V200_DOCKER_NAME docker build 2.0.0/ -t $V200_DOCKER_NAME build_message done processing $V200_DOCKER_NAME - if [ "$BRANCH" = "master" ] + if [ "$BRANCH" = "add-arm64-support" ] then build_message processing $V200_DOCKER_NAME_LATEST docker tag $V200_DOCKER_NAME $V200_DOCKER_NAME_LATEST @@ -61,7 +61,7 @@ package_v210(){ build_message processing $V210_DOCKER_NAME docker build 2.1.0/ -t $V210_DOCKER_NAME build_message done processing $V210_DOCKER_NAME - if [ "$BRANCH" = "master" ] + if [ "$BRANCH" = "add-arm64-support" ] then build_message processing $V210_DOCKER_NAME_LATEST docker tag $V210_DOCKER_NAME $V210_DOCKER_NAME_LATEST @@ -73,7 +73,7 @@ package_v211(){ build_message processing $V211_DOCKER_NAME docker build 2.1.1/ -t $V211_DOCKER_NAME build_message done processing $V211_DOCKER_NAME - if [ "$BRANCH" = "master" ] + if [ "$BRANCH" = "add-arm64-support" ] then build_message processing $V211_DOCKER_NAME_LATEST docker tag $V211_DOCKER_NAME $V211_DOCKER_NAME_LATEST @@ -85,7 +85,7 @@ push_v171(){ build_message pushing $V171_DOCKER_NAME docker push $V171_DOCKER_NAME build_message done pushing $V171_DOCKER_NAME - if [ "$BRANCH" = "master" ] + if [ "$BRANCH" = "add-arm64-support" ] then build_message pushing $V171_DOCKER_NAME_LATEST docker push $V171_DOCKER_NAME_LATEST @@ -97,7 +97,7 @@ push_v200(){ build_message pushing $V200_DOCKER_NAME docker push $V200_DOCKER_NAME build_message done pushing $V200_DOCKER_NAME - if [ "$BRANCH" = "master" ] + if [ "$BRANCH" = "add-arm64-support" ] then build_message pushing $V200_DOCKER_NAME_LATEST docker push $V200_DOCKER_NAME_LATEST @@ -109,7 +109,7 @@ push_v210(){ build_message pushing $V210_DOCKER_NAME docker push $V210_DOCKER_NAME build_message done pushing $V210_DOCKER_NAME - if [ "$BRANCH" = "master" ] + if [ "$BRANCH" = "add-arm64-support" ] then build_message pushing $V210_DOCKER_NAME_LATEST docker push $V210_DOCKER_NAME_LATEST @@ -121,7 +121,7 @@ push_v211(){ build_message pushing $V211_DOCKER_NAME docker push $V211_DOCKER_NAME build_message done pushing $V211_DOCKER_NAME - if [ "$BRANCH" = "master" ] + if [ "$BRANCH" = "add-arm64-support" ] then build_message pushing $V211_DOCKER_NAME_LATEST docker push $V211_DOCKER_NAME_LATEST @@ -166,7 +166,7 @@ deploy_v211_arm64(){ login_docker rm 2.1.1/Dockerfile mv 2.1.1/Dockerfile-arm64 2.1.1/Dockerfile - if [ "$BRANCH" = "master" ] + if [ "$BRANCH" = "add-arm64-support" ] then sed -i -e "s/\(treehouses\/rpi-couchdb:2\.1\.1\)/$V211_DOCKER_NAME_LATEST/" 2.1.1/Dockerfile else @@ -179,7 +179,7 @@ deploy_v211_arm64(){ } deploy_multiarch(){ - if [ "$BRANCH" = "master" ] + if [ "$BRANCH" = "add-arm64-support" ] then build_message Pushing multi-arch manifest to Docker Cloud login_docker From 5067b7626e8ccda44d8c69ae6e456bc5164d9c92 Mon Sep 17 00:00:00 2001 From: Sahil Phule Date: Mon, 11 Jun 2018 12:21:42 -0400 Subject: [PATCH 23/29] Revert "Change branch condition to current branch for testing" This reverts commit 3f295a105094429dbbfd18ee91d3db6a0f437309. --- .travis/travis_utils.sh | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/.travis/travis_utils.sh b/.travis/travis_utils.sh index bb13a0e..6bc324c 100755 --- a/.travis/travis_utils.sh +++ b/.travis/travis_utils.sh @@ -37,7 +37,7 @@ package_v171(){ build_message processing $V171_DOCKER_NAME docker build 1.7.1/ -t $V171_DOCKER_NAME build_message done processing $V171_DOCKER_NAME - if [ "$BRANCH" = "add-arm64-support" ] + if [ "$BRANCH" = "master" ] then build_message processing $V171_DOCKER_NAME_LATEST docker tag $V171_DOCKER_NAME $V171_DOCKER_NAME_LATEST @@ -49,7 +49,7 @@ package_v200(){ build_message processing $V200_DOCKER_NAME docker build 2.0.0/ -t $V200_DOCKER_NAME build_message done processing $V200_DOCKER_NAME - if [ "$BRANCH" = "add-arm64-support" ] + if [ "$BRANCH" = "master" ] then build_message processing $V200_DOCKER_NAME_LATEST docker tag $V200_DOCKER_NAME $V200_DOCKER_NAME_LATEST @@ -61,7 +61,7 @@ package_v210(){ build_message processing $V210_DOCKER_NAME docker build 2.1.0/ -t $V210_DOCKER_NAME build_message done processing $V210_DOCKER_NAME - if [ "$BRANCH" = "add-arm64-support" ] + if [ "$BRANCH" = "master" ] then build_message processing $V210_DOCKER_NAME_LATEST docker tag $V210_DOCKER_NAME $V210_DOCKER_NAME_LATEST @@ -73,7 +73,7 @@ package_v211(){ build_message processing $V211_DOCKER_NAME docker build 2.1.1/ -t $V211_DOCKER_NAME build_message done processing $V211_DOCKER_NAME - if [ "$BRANCH" = "add-arm64-support" ] + if [ "$BRANCH" = "master" ] then build_message processing $V211_DOCKER_NAME_LATEST docker tag $V211_DOCKER_NAME $V211_DOCKER_NAME_LATEST @@ -85,7 +85,7 @@ push_v171(){ build_message pushing $V171_DOCKER_NAME docker push $V171_DOCKER_NAME build_message done pushing $V171_DOCKER_NAME - if [ "$BRANCH" = "add-arm64-support" ] + if [ "$BRANCH" = "master" ] then build_message pushing $V171_DOCKER_NAME_LATEST docker push $V171_DOCKER_NAME_LATEST @@ -97,7 +97,7 @@ push_v200(){ build_message pushing $V200_DOCKER_NAME docker push $V200_DOCKER_NAME build_message done pushing $V200_DOCKER_NAME - if [ "$BRANCH" = "add-arm64-support" ] + if [ "$BRANCH" = "master" ] then build_message pushing $V200_DOCKER_NAME_LATEST docker push $V200_DOCKER_NAME_LATEST @@ -109,7 +109,7 @@ push_v210(){ build_message pushing $V210_DOCKER_NAME docker push $V210_DOCKER_NAME build_message done pushing $V210_DOCKER_NAME - if [ "$BRANCH" = "add-arm64-support" ] + if [ "$BRANCH" = "master" ] then build_message pushing $V210_DOCKER_NAME_LATEST docker push $V210_DOCKER_NAME_LATEST @@ -121,7 +121,7 @@ push_v211(){ build_message pushing $V211_DOCKER_NAME docker push $V211_DOCKER_NAME build_message done pushing $V211_DOCKER_NAME - if [ "$BRANCH" = "add-arm64-support" ] + if [ "$BRANCH" = "master" ] then build_message pushing $V211_DOCKER_NAME_LATEST docker push $V211_DOCKER_NAME_LATEST @@ -166,7 +166,7 @@ deploy_v211_arm64(){ login_docker rm 2.1.1/Dockerfile mv 2.1.1/Dockerfile-arm64 2.1.1/Dockerfile - if [ "$BRANCH" = "add-arm64-support" ] + if [ "$BRANCH" = "master" ] then sed -i -e "s/\(treehouses\/rpi-couchdb:2\.1\.1\)/$V211_DOCKER_NAME_LATEST/" 2.1.1/Dockerfile else @@ -179,7 +179,7 @@ deploy_v211_arm64(){ } deploy_multiarch(){ - if [ "$BRANCH" = "add-arm64-support" ] + if [ "$BRANCH" = "master" ] then build_message Pushing multi-arch manifest to Docker Cloud login_docker From 8390b4c7dcf2b8370a6b3c765e4c41dfbe74c4da Mon Sep 17 00:00:00 2001 From: Sahil Phule Date: Mon, 11 Jun 2018 13:11:33 -0400 Subject: [PATCH 24/29] Manifest tag fix --- .travis/multiarch_manifests/multiarch_manifest_latest.yml | 2 +- .travis/multiarch_manifests/multiarch_manifest_v1.7.1.yml | 2 +- .travis/multiarch_manifests/multiarch_manifest_v2.1.1.yml | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/.travis/multiarch_manifests/multiarch_manifest_latest.yml b/.travis/multiarch_manifests/multiarch_manifest_latest.yml index 05b8a3d..eebbc6b 100644 --- a/.travis/multiarch_manifests/multiarch_manifest_latest.yml +++ b/.travis/multiarch_manifests/multiarch_manifest_latest.yml @@ -6,7 +6,7 @@ manifests: architecture: arm os: linux - - image: treehouses/arm64-rpi-couchdb:2.1.1 + image: treehouses/rpi-couchdb:arm64-2.1.1 platform: architecture: arm64 os: linux diff --git a/.travis/multiarch_manifests/multiarch_manifest_v1.7.1.yml b/.travis/multiarch_manifests/multiarch_manifest_v1.7.1.yml index 9e0a361..f04ff54 100644 --- a/.travis/multiarch_manifests/multiarch_manifest_v1.7.1.yml +++ b/.travis/multiarch_manifests/multiarch_manifest_v1.7.1.yml @@ -6,7 +6,7 @@ manifests: architecture: arm os: linux - - image: treehouses/arm64-rpi-couchdb:1.7.1 + image: treehouses/rpi-couchdb:arm64-1.7.1 platform: architecture: arm64 os: linux diff --git a/.travis/multiarch_manifests/multiarch_manifest_v2.1.1.yml b/.travis/multiarch_manifests/multiarch_manifest_v2.1.1.yml index 6e5332d..fe613e3 100644 --- a/.travis/multiarch_manifests/multiarch_manifest_v2.1.1.yml +++ b/.travis/multiarch_manifests/multiarch_manifest_v2.1.1.yml @@ -6,7 +6,7 @@ manifests: architecture: arm os: linux - - image: treehouses/arm64-rpi-couchdb:2.1.1 + image: treehouses/rpi-couchdb:arm64-2.1.1 platform: architecture: arm64 os: linux From 5a2b63cab64ec334850d1dc18255d3b0334374b7 Mon Sep 17 00:00:00 2001 From: Sahil Phule Date: Tue, 12 Jun 2018 10:42:59 -0400 Subject: [PATCH 25/29] sed fix --- .travis/travis_utils.sh | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.travis/travis_utils.sh b/.travis/travis_utils.sh index 6bc324c..9d57e25 100755 --- a/.travis/travis_utils.sh +++ b/.travis/travis_utils.sh @@ -168,9 +168,9 @@ deploy_v211_arm64(){ mv 2.1.1/Dockerfile-arm64 2.1.1/Dockerfile if [ "$BRANCH" = "master" ] then - sed -i -e "s/\(treehouses\/rpi-couchdb:2\.1\.1\)/$V211_DOCKER_NAME_LATEST/" 2.1.1/Dockerfile + sed -i -e "s|\(treehouses\/rpi-couchdb:2\.1\.1\)|$V211_DOCKER_NAME_LATEST|" 2.1.1/Dockerfile else - sed -i -e "s/\(treehouses\/rpi-couchdb:2\.1\.1\)/$V211_DOCKER_NAME/" 2.1.1/Dockerfile + sed -i -e "s|\(treehouses\/rpi-couchdb:2\.1\.1\)|$V211_DOCKER_NAME|" 2.1.1/Dockerfile fi V211_DOCKER_NAME_LATEST="$DOCKER_ORG/$DOCKER_REPO:arm64-2.1.1" V211_DOCKER_NAME="$DOCKER_ORG/$DOCKER_REPO:arm64-2.1.1-$VERSION-$BRANCH-$COMMIT" From 0dd16718a3464f14a91ee6d65677e6961a5b4a2a Mon Sep 17 00:00:00 2001 From: Sahil Phule Date: Tue, 12 Jun 2018 13:00:13 -0400 Subject: [PATCH 26/29] Update readme --- README.md | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 107d6e4..2a4527d 100644 --- a/README.md +++ b/README.md @@ -10,11 +10,16 @@ Credits to [klaemo](https://github.com/klaemo) and [apache](https://github.com/a ## Where it hosted -This work is hosted in [treehouses/couchdb](https://hub.docker.com/r/treehouses/couchdb/) +This work is hosted in [treehouses/couchdb](https://hub.docker.com/r/treehouses/couchdb/). It is a multi architecture image. + +## Supported architectures + `amd64`, `arm`, `arm64` + + (Note: The image for `amd64` is the official couchdb docker image, which can also be found at [amd64/couchdb](https://hub.docker.com/r/amd64/couchdb/)) ## Naming and Versioning -Currently we maintain multi-architecture repository of 2.x.x version as well as 1.7.1 of CouchDB. Supported architectures: `amd64, arm` +Currently we maintain multi-architecture repository of 2.x.x version as well as 1.7.1 of CouchDB. For RPi CouchDB 1.7.1 ``` From 0dfca2ecc1998d01247d65eb9f71ebe7bcbfdf45 Mon Sep 17 00:00:00 2001 From: Sahil Phule Date: Mon, 23 Jul 2018 22:04:22 -0400 Subject: [PATCH 27/29] Fix Conflicts, Delete Obselete versions --- .travis/deploy_docker_rpi.sh | 12 +- .../multiarch_manifest_latest.yml | 2 +- .../multiarch_manifest_v1.7.2.yml | 5 + .../multiarch_manifest_v2.1.2.yml | 5 + .travis/travis_utils.sh | 89 ++---------- 2.0.0/Dockerfile | 127 ----------------- 2.0.0/crosscompile.sh | 32 ----- 2.0.0/docker-entrypoint.sh | 57 -------- 2.0.0/local.ini | 11 -- 2.0.0/vm.args | 28 ---- 2.1.0/Dockerfile | 130 ------------------ 2.1.0/docker-entrypoint.sh | 74 ---------- 2.1.0/local.ini | 11 -- 2.1.0/vm.args | 28 ---- {2.1.1 => 2.1.2}/Dockerfile-arm64 | 2 +- 15 files changed, 33 insertions(+), 580 deletions(-) delete mode 100644 2.0.0/Dockerfile delete mode 100644 2.0.0/crosscompile.sh delete mode 100755 2.0.0/docker-entrypoint.sh delete mode 100644 2.0.0/local.ini delete mode 100644 2.0.0/vm.args delete mode 100644 2.1.0/Dockerfile delete mode 100755 2.1.0/docker-entrypoint.sh delete mode 100644 2.1.0/local.ini delete mode 100644 2.1.0/vm.args rename {2.1.1 => 2.1.2}/Dockerfile-arm64 (98%) diff --git a/.travis/deploy_docker_rpi.sh b/.travis/deploy_docker_rpi.sh index 1b02282..a50219e 100755 --- a/.travis/deploy_docker_rpi.sh +++ b/.travis/deploy_docker_rpi.sh @@ -67,13 +67,13 @@ build_message Build V212 image started... deploy_v212 build_message Build V212 image finished, check build result! -build_message Build V171 arm64 image started... -deploy_v171_arm64 -build_message Build V171 arm64 image finished, check build result! +build_message Build V172 arm64 image started... +deploy_v172_arm64 +build_message Build V172 arm64 image finished, check build result! -build_message Build V211 arm64 image started... -deploy_v211_arm64 -build_message Build V211 arm64 image finished, check build result! +build_message Build V212 arm64 image started... +deploy_v212_arm64 +build_message Build V212 arm64 image finished, check build result! build_message Preparing to Push multi-arch manifest to Docker Cloud .. deploy_multiarch diff --git a/.travis/multiarch_manifests/multiarch_manifest_latest.yml b/.travis/multiarch_manifests/multiarch_manifest_latest.yml index 71c91b4..7b4a45d 100644 --- a/.travis/multiarch_manifests/multiarch_manifest_latest.yml +++ b/.travis/multiarch_manifests/multiarch_manifest_latest.yml @@ -6,7 +6,7 @@ manifests: architecture: arm os: linux - - image: treehouses/rpi-couchdb:arm64-2.1.1 + image: treehouses/rpi-couchdb:arm64-2.1.2 platform: architecture: arm64 os: linux diff --git a/.travis/multiarch_manifests/multiarch_manifest_v1.7.2.yml b/.travis/multiarch_manifests/multiarch_manifest_v1.7.2.yml index b85cf8d..d434c05 100644 --- a/.travis/multiarch_manifests/multiarch_manifest_v1.7.2.yml +++ b/.travis/multiarch_manifests/multiarch_manifest_v1.7.2.yml @@ -5,6 +5,11 @@ manifests: platform: architecture: arm os: linux + - + image: treehouses/rpi-couchdb:arm64-1.7.2 + platform: + architecture: arm64 + os: linux - image: amd64/couchdb:1.7.2 platform: diff --git a/.travis/multiarch_manifests/multiarch_manifest_v2.1.2.yml b/.travis/multiarch_manifests/multiarch_manifest_v2.1.2.yml index 369e0db..4ab6535 100644 --- a/.travis/multiarch_manifests/multiarch_manifest_v2.1.2.yml +++ b/.travis/multiarch_manifests/multiarch_manifest_v2.1.2.yml @@ -5,6 +5,11 @@ manifests: platform: architecture: arm os: linux + - + image: treehouses/rpi-couchdb:arm64-2.1.2 + platform: + architecture: arm64 + os: linux - image: amd64/couchdb:2.1.2 platform: diff --git a/.travis/travis_utils.sh b/.travis/travis_utils.sh index a873f3f..50b33c8 100755 --- a/.travis/travis_utils.sh +++ b/.travis/travis_utils.sh @@ -45,30 +45,6 @@ package_v172(){ fi } -package_v200(){ - build_message processing $V200_DOCKER_NAME - docker build 2.0.0/ -t $V200_DOCKER_NAME - build_message done processing $V200_DOCKER_NAME - if [ "$BRANCH" = "master" ] - then - build_message processing $V200_DOCKER_NAME_LATEST - docker tag $V200_DOCKER_NAME $V200_DOCKER_NAME_LATEST - build_message done processing $V200_DOCKER_NAME_LATEST - fi -} - -package_v210(){ - build_message processing $V210_DOCKER_NAME - docker build 2.1.0/ -t $V210_DOCKER_NAME - build_message done processing $V210_DOCKER_NAME - if [ "$BRANCH" = "master" ] - then - build_message processing $V210_DOCKER_NAME_LATEST - docker tag $V210_DOCKER_NAME $V210_DOCKER_NAME_LATEST - build_message done processing $V210_DOCKER_NAME_LATEST - fi -} - package_v212(){ build_message processing $v212_DOCKER_NAME docker build 2.1.2/ -t $v212_DOCKER_NAME @@ -93,30 +69,6 @@ push_v172(){ fi } -push_v200(){ - build_message pushing $V200_DOCKER_NAME - docker push $V200_DOCKER_NAME - build_message done pushing $V200_DOCKER_NAME - if [ "$BRANCH" = "master" ] - then - build_message pushing $V200_DOCKER_NAME_LATEST - docker push $V200_DOCKER_NAME_LATEST - build_message done pushing $V200_DOCKER_NAME_LATEST - fi -} - -push_v210(){ - build_message pushing $V210_DOCKER_NAME - docker push $V210_DOCKER_NAME - build_message done pushing $V210_DOCKER_NAME - if [ "$BRANCH" = "master" ] - then - build_message pushing $V210_DOCKER_NAME_LATEST - docker push $V210_DOCKER_NAME_LATEST - build_message done pushing $V210_DOCKER_NAME_LATEST - fi -} - push_v212(){ build_message pushing $v212_DOCKER_NAME docker push $v212_DOCKER_NAME @@ -135,17 +87,6 @@ deploy_v172(){ push_v172 } -deploy_v200(){ - login_docker - package_v200 - push_v200 -} - -deploy_v210(){ - login_docker - package_v210 - push_v210 -} deploy_v212(){ login_docker @@ -153,29 +94,29 @@ deploy_v212(){ push_v212 } -deploy_v171_arm64(){ +deploy_v172_arm64(){ login_docker - sed -i -e "s/\(resin\/rpi-raspbian\)/resin\/aarch64-debian/" 1.7.1/Dockerfile - V171_DOCKER_NAME_LATEST="$DOCKER_ORG/$DOCKER_REPO:arm64-1.7.1" - V171_DOCKER_NAME="$DOCKER_ORG/$DOCKER_REPO:arm64-1.7.1-$VERSION-$BRANCH-$COMMIT" - package_v171 - push_v171 + sed -i -e "s/\(resin\/rpi-raspbian\)/resin\/aarch64-debian/" 1.7.2/Dockerfile + V172_DOCKER_NAME_LATEST="$DOCKER_ORG/$DOCKER_REPO:arm64-1.7.2" + V172_DOCKER_NAME="$DOCKER_ORG/$DOCKER_REPO:arm64-1.7.2-$VERSION-$BRANCH-$COMMIT" + package_v172 + push_v172 } -deploy_v211_arm64(){ +deploy_v212_arm64(){ login_docker - rm 2.1.1/Dockerfile - mv 2.1.1/Dockerfile-arm64 2.1.1/Dockerfile + rm 2.1.2/Dockerfile + mv 2.1.2/Dockerfile-arm64 2.1.2/Dockerfile if [ "$BRANCH" = "master" ] then - sed -i -e "s|\(treehouses\/rpi-couchdb:2\.1\.1\)|$V211_DOCKER_NAME_LATEST|" 2.1.1/Dockerfile + sed -i -e "s|\(treehouses\/rpi-couchdb:2\.1\.2\)|$V211_DOCKER_NAME_LATEST|" 2.1.2/Dockerfile else - sed -i -e "s|\(treehouses\/rpi-couchdb:2\.1\.1\)|$V211_DOCKER_NAME|" 2.1.1/Dockerfile + sed -i -e "s|\(treehouses\/rpi-couchdb:2\.1\.2\)|$V211_DOCKER_NAME|" 2.1.2/Dockerfile fi - V211_DOCKER_NAME_LATEST="$DOCKER_ORG/$DOCKER_REPO:arm64-2.1.1" - V211_DOCKER_NAME="$DOCKER_ORG/$DOCKER_REPO:arm64-2.1.1-$VERSION-$BRANCH-$COMMIT" - package_v211 - push_v211 + V212_DOCKER_NAME_LATEST="$DOCKER_ORG/$DOCKER_REPO:arm64-2.1.2" + V212_DOCKER_NAME="$DOCKER_ORG/$DOCKER_REPO:arm64-2.1.2-$VERSION-$BRANCH-$COMMIT" + package_v212 + push_v212 } deploy_multiarch(){ diff --git a/2.0.0/Dockerfile b/2.0.0/Dockerfile deleted file mode 100644 index 25fafe4..0000000 --- a/2.0.0/Dockerfile +++ /dev/null @@ -1,127 +0,0 @@ -# Licensed 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. - -FROM ubuntu as builder -LABEL maintainer="sahil@ole.org,mappuji@ole.org" - -COPY ./crosscompile.sh . -RUN bash ./crosscompile.sh armv7 install - -FROM resin/rpi-raspbian - -ENV COUCHDB_VERSION 2.0.0 - -#create dirs and links for the npm module -RUN mkdir -p /usr/lib/node_modules; \ - ln -s /usr/lib/node_modules/grunt-cli/bin/grunt /usr/bin/grunt - -COPY --from=builder /usr/lib/node_modules /usr/lib/node_modules - -# Add CouchDB user account -RUN groupadd -r couchdb && useradd -d /opt/couchdb -g couchdb couchdb - -RUN apt-get update -y && apt-get install -y --no-install-recommends \ - ca-certificates \ - curl \ - erlang-nox \ - erlang-reltool \ - haproxy \ - libicu52 \ - libmozjs185-1.0 \ - openssl \ - && rm -rf /var/lib/apt/lists/* - -# grab gosu for easy step-down from root and tini for signal handling -RUN gpg --keyserver ha.pool.sks-keyservers.net --recv-keys B42F6819007F00F88E364FD4036A9C25BF357DD4 \ - && curl -o /usr/local/bin/gosu -fSL "https://github.com/tianon/gosu/releases/download/1.7/gosu-$(dpkg --print-architecture)" \ - && curl -o /usr/local/bin/gosu.asc -fSL "https://github.com/tianon/gosu/releases/download/1.7/gosu-$(dpkg --print-architecture).asc" \ - && gpg --verify /usr/local/bin/gosu.asc \ - && rm /usr/local/bin/gosu.asc \ - && chmod +x /usr/local/bin/gosu \ - && gpg --keyserver ha.pool.sks-keyservers.net --recv-keys 6380DC428747F6C393FEACA59A84159D7001A4E5; \ -# check if tini exists - if ! type "tini" > /dev/null; then \ - \ -# if not then install tini - curl -o /usr/local/bin/tini -fSL "https://github.com/krallin/tini/releases/download/v0.14.0/tini" \ - && curl -o /usr/local/bin/tini.asc -fSL "https://github.com/krallin/tini/releases/download/v0.14.0/tini.asc" \ - && gpg --verify /usr/local/bin/tini.asc \ - && rm /usr/local/bin/tini.asc \ - && chmod +x /usr/local/bin/tini; \ - fi; - -# https://www.apache.org/dist/couchdb/KEYS -ENV GPG_KEYS \ - 15DD4F3B8AACA54740EB78C7B7B7C53943ECCEE1 \ - 1CFBFA43C19B6DF4A0CA3934669C02FFDF3CEBA3 \ - 25BBBAC113C1BFD5AA594A4C9F96B92930380381 \ - 4BFCA2B99BADC6F9F105BEC9C5E32E2D6B065BFB \ - 5D680346FAA3E51B29DBCB681015F68F9DA248BC \ - 7BCCEB868313DDA925DF1805ECA5BCB7BB9656B0 \ - C3F4DFAEAD621E1C94523AEEC376457E61D50B88 \ - D2B17F9DA23C0A10991AF2E3D9EE01E47852AEE4 \ - E0AF0A194D55C84E4A19A801CDB0C0F904F4EE9B -RUN set -xe \ - && for key in $GPG_KEYS; do \ - gpg --keyserver ha.pool.sks-keyservers.net --recv-keys "$key"; \ - done - -ENV COUCHDB_VERSION 2.0.0 - -# Download dev dependencies -RUN buildDeps=' \ - apt-transport-https \ - gcc \ - git \ - g++ \ - erlang-dev \ - libcurl4-openssl-dev \ - libicu-dev \ - libmozjs185-dev \ - make \ - ' \ - && apt-get update -y -qq && apt-get install -y --no-install-recommends $buildDeps \ - && curl -s https://deb.nodesource.com/gpgkey/nodesource.gpg.key | apt-key add - \ - && echo 'deb https://deb.nodesource.com/node_4.x jessie main' > /etc/apt/sources.list.d/nodesource.list \ - && echo 'deb-src https://deb.nodesource.com/node_4.x jessie main' >> /etc/apt/sources.list.d/nodesource.list \ - && apt-get update -y -qq \ - && apt-get install -y nodejs \ - # Acquire CouchDB source code - && cd /usr/src && mkdir couchdb \ - && curl -fSL https://github.com/apache/couchdb/archive/$COUCHDB_VERSION.tar.gz -o couchdb.tar.gz \ - && tar -xzf couchdb.tar.gz -C couchdb --strip-components=1 \ - && cd couchdb \ - # Build the release and install into /opt - && ./configure --disable-docs \ - && make release \ - && mv /usr/src/couchdb/rel/couchdb /opt/ \ - # Cleanup build detritus - && apt-get purge -y --auto-remove $buildDeps \ - && rm -rf /var/lib/apt/lists/* /usr/lib/node_modules /usr/src/couchdb* - -# Add configuration -COPY local.ini /opt/couchdb/etc/local.d/ -COPY vm.args /opt/couchdb/etc/ - -COPY ./docker-entrypoint.sh / - -# Setup directories and permissions -RUN chmod +x /docker-entrypoint.sh \ - && mkdir /opt/couchdb/data /opt/couchdb/etc/default.d \ - && chown -R couchdb:couchdb /opt/couchdb/ - -WORKDIR /opt/couchdb -EXPOSE 5984 4369 9100 -VOLUME ["/opt/couchdb/data"] - -ENTRYPOINT ["tini", "--", "/docker-entrypoint.sh"] -CMD ["/opt/couchdb/bin/couchdb"] diff --git a/2.0.0/crosscompile.sh b/2.0.0/crosscompile.sh deleted file mode 100644 index 3c30e82..0000000 --- a/2.0.0/crosscompile.sh +++ /dev/null @@ -1,32 +0,0 @@ -#!/bin/bash - -ARCH=$1 -ACT=$2 - -if [[ "${ARCH}" == "armv7" ]]; then - TRIPLE="arm-linux-gnueabihf" - GCC="4.8" -elif [[ "${ARCH}" == "armv8" ]]; then - TRIPLE="aarch64-linux-gnu" - GCC="4.8" -else - exit 1 -fi - -PACKAGES="gcc-${GCC}-${TRIPLE} g++-${GCC}-${TRIPLE}" -export CC="${TRIPLE}-gcc-${GCC}" -export CXX="${TRIPLE}-g++-${GCC}" -export STRIP="${TRIPLE}-strip" -export ZMQ_BUILD_OPTIONS="--host=${TRIPLE}" - -echo "Building grunt-cli for ${ARCH}" - -if [[ "${ACT}" == "install" ]]; then - apt-get update -qq - apt-get install -y curl - curl -sL https://deb.nodesource.com/setup_4.x | bash - - apt-get install -y nodejs build-essential ${PACKAGES} - npm install "--arch=${TRIPLE}" -g grunt-cli -else - echo "Error: No action Specified" -fi diff --git a/2.0.0/docker-entrypoint.sh b/2.0.0/docker-entrypoint.sh deleted file mode 100755 index 2ff1715..0000000 --- a/2.0.0/docker-entrypoint.sh +++ /dev/null @@ -1,57 +0,0 @@ -#!/bin/bash -# Licensed 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 - -if [ "$1" = '/opt/couchdb/bin/couchdb' ]; then - # we need to set the permissions here because docker mounts volumes as root - chown -R couchdb:couchdb /opt/couchdb - - chmod -R 0770 /opt/couchdb/data - - chmod 664 /opt/couchdb/etc/*.ini - chmod 664 /opt/couchdb/etc/local.d/*.ini - chmod 775 /opt/couchdb/etc/*.d - - if [ ! -z "$NODENAME" ] && ! grep "couchdb@" /opt/couchdb/etc/vm.args; then - echo "-name couchdb@$NODENAME" >> /opt/couchdb/etc/vm.args - fi - - if [ "$COUCHDB_USER" ] && [ "$COUCHDB_PASSWORD" ]; then - # Create admin - printf "[admins]\n%s = %s\n" "$COUCHDB_USER" "$COUCHDB_PASSWORD" > /opt/couchdb/etc/local.d/docker.ini - chown couchdb:couchdb /opt/couchdb/etc/local.d/docker.ini - fi - - # if we don't find an [admins] section followed by a non-comment, display a warning - if ! grep -Pzoqr '\[admins\]\n[^;]\w+' /opt/couchdb/etc/local.d/*.ini; then - # The - option suppresses leading tabs but *not* spaces. :) - cat >&2 <<-'EOWARN' - **************************************************** - WARNING: CouchDB is running in Admin Party mode. - This will allow anyone with access to the - CouchDB port to access your database. In - Docker's default configuration, this is - effectively any other container on the same - system. - Use "-e COUCHDB_USER=admin -e COUCHDB_PASSWORD=password" - to set it in "docker run". - **************************************************** - EOWARN - fi - - - exec gosu couchdb "$@" -fi - -exec "$@" diff --git a/2.0.0/local.ini b/2.0.0/local.ini deleted file mode 100644 index e5d7bc0..0000000 --- a/2.0.0/local.ini +++ /dev/null @@ -1,11 +0,0 @@ -; CouchDB Configuration Settings - -; Custom settings should be made in this file. They will override settings -; in default.ini, but unlike changes made to default.ini, this file won't be -; overwritten on server upgrade. - -[chttpd] -bind_address = any -[log] -writer = file -file = /opt/couchdb/var/log/couch.log diff --git a/2.0.0/vm.args b/2.0.0/vm.args deleted file mode 100644 index 0425756..0000000 --- a/2.0.0/vm.args +++ /dev/null @@ -1,28 +0,0 @@ -# Licensed 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. - -# Ensure that the Erlang VM listens on a known port --kernel inet_dist_listen_min 9100 --kernel inet_dist_listen_max 9100 - -# Tell kernel and SASL not to log anything --kernel error_logger silent --sasl sasl_error_logger false - -# Use kernel poll functionality if supported by emulator -+K true - -# Start a pool of asynchronous IO threads -+A 16 - -# Comment this line out to enable the interactive Erlang shell on startup -+Bd -noinput diff --git a/2.1.0/Dockerfile b/2.1.0/Dockerfile deleted file mode 100644 index bf66cb1..0000000 --- a/2.1.0/Dockerfile +++ /dev/null @@ -1,130 +0,0 @@ -# Licensed under the Apache License, Version 2.1 (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. - -FROM resin/rpi-raspbian -LABEL maintainer="sahil@ole.org,mappuji@ole.org" - - -# Add CouchDB user account -RUN groupadd -r couchdb && useradd -d /opt/couchdb -g couchdb couchdb - -RUN apt-get update -y && apt-get install -y --no-install-recommends \ - ca-certificates \ - curl \ - erlang-nox \ - erlang-reltool \ - haproxy \ - libicu52 \ - libmozjs185-1.0 \ - openssl \ - && rm -rf /var/lib/apt/lists/* - -# grab gosu for easy step-down from root and tini for signal handling -# see https://github.com/apache/couchdb-docker/pull/28#discussion_r141112407 -ENV GOSU_VERSION 1.10 -ENV TINI_VERSION 0.16.1 -RUN set -ex; \ - \ - apt-get update; \ - apt-get install -y --no-install-recommends wget; \ - rm -rf /var/lib/apt/lists/*; \ - \ - dpkgArch="$(dpkg --print-architecture | awk -F- '{ print $NF }')"; \ - \ -# install gosu - wget -O /usr/local/bin/gosu "https://github.com/tianon/gosu/releases/download/${GOSU_VERSION}/gosu-$dpkgArch"; \ - wget -O /usr/local/bin/gosu.asc "https://github.com/tianon/gosu/releases/download/$GOSU_VERSION/gosu-$dpkgArch.asc"; \ - export GNUPGHOME="$(mktemp -d)"; \ - gpg --keyserver ha.pool.sks-keyservers.net --recv-keys B42F6819007F00F88E364FD4036A9C25BF357DD4; \ - gpg --batch --verify /usr/local/bin/gosu.asc /usr/local/bin/gosu; \ - rm -r "$GNUPGHOME" /usr/local/bin/gosu.asc; \ - chmod +x /usr/local/bin/gosu; \ - \ -# check if tini exists - if ! type "tini" > /dev/null; then \ - \ -# if not then install tini - wget -O /usr/local/bin/tini "https://github.com/krallin/tini/releases/download/v${TINI_VERSION}/tini-$dpkgArch"; \ - wget -O /usr/local/bin/tini.asc "https://github.com/krallin/tini/releases/download/v${TINI_VERSION}/tini-$dpkgArch.asc"; \ - export GNUPGHOME="$(mktemp -d)"; \ - gpg --keyserver ha.pool.sks-keyservers.net --recv-keys 595E85A6B1B4779EA4DAAEC70B588DFF0527A9B7; \ - gpg --batch --verify /usr/local/bin/tini.asc /usr/local/bin/tini; \ - rm -r "$GNUPGHOME" /usr/local/bin/tini.asc; \ - chmod +x /usr/local/bin/tini; \ - tini --version; \ - \ - fi; \ - apt-get purge -y --auto-remove wget - -# https://www.apache.org/dist/couchdb/KEYS -ENV GPG_KEYS \ - 15DD4F3B8AACA54740EB78C7B7B7C53943ECCEE1 \ - 1CFBFA43C19B6DF4A0CA3934669C02FFDF3CEBA3 \ - 25BBBAC113C1BFD5AA594A4C9F96B92930380381 \ - 4BFCA2B99BADC6F9F105BEC9C5E32E2D6B065BFB \ - 5D680346FAA3E51B29DBCB681015F68F9DA248BC \ - 7BCCEB868313DDA925DF1805ECA5BCB7BB9656B0 \ - C3F4DFAEAD621E1C94523AEEC376457E61D50B88 \ - D2B17F9DA23C0A10991AF2E3D9EE01E47852AEE4 \ - E0AF0A194D55C84E4A19A801CDB0C0F904F4EE9B \ - 29E4F38113DF707D722A6EF91FE9AF73118F1A7C \ - 2EC788AE3F239FA13E82D215CDE711289384AE37 -RUN set -xe \ - && for key in $GPG_KEYS; do \ - gpg --keyserver ha.pool.sks-keyservers.net --recv-keys "$key"; \ - done - -ENV COUCHDB_VERSION 2.1.0 - -# Download dev dependencies -RUN buildDeps=' \ - apt-transport-https \ - gcc \ - g++ \ - git \ - erlang-dev \ - libcurl4-openssl-dev \ - libicu-dev \ - libmozjs185-dev \ - make \ - ' \ - && apt-get update -y -qq && apt-get install -y --no-install-recommends $buildDeps \ - # Acquire CouchDB source code - && cd /usr/src && mkdir couchdb \ - && curl -fSL https://github.com/apache/couchdb/archive/$COUCHDB_VERSION.tar.gz -o couchdb.tar.gz \ - && tar -xzf couchdb.tar.gz -C couchdb --strip-components=1 \ - && cd couchdb \ - # Build the release and install into /opt - && ./configure --disable-docs \ - && make release \ - && mv /usr/src/couchdb/rel/couchdb /opt/ \ - # Cleanup build detritus - && apt-get purge -y --auto-remove $buildDeps \ - && rm -rf /var/lib/apt/lists/* /usr/src/couchdb* \ - && mkdir /opt/couchdb/data \ - && chown -R couchdb:couchdb /opt/couchdb - -# Add configuration -COPY local.ini /opt/couchdb/etc/local.d/ -COPY vm.args /opt/couchdb/etc/ - -COPY ./docker-entrypoint.sh / - -# Setup directories and permissions -RUN chown -R couchdb:couchdb /opt/couchdb/etc/local.d/ /opt/couchdb/etc/vm.args - -WORKDIR /opt/couchdb -EXPOSE 5984 4369 9100 -VOLUME ["/opt/couchdb/data"] - -ENTRYPOINT ["tini", "--", "/docker-entrypoint.sh"] -CMD ["/opt/couchdb/bin/couchdb"] diff --git a/2.1.0/docker-entrypoint.sh b/2.1.0/docker-entrypoint.sh deleted file mode 100755 index dda823d..0000000 --- a/2.1.0/docker-entrypoint.sh +++ /dev/null @@ -1,74 +0,0 @@ -#!/bin/bash -# Licensed 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 - -# first arg is `-something` or `+something` -if [ "${1#-}" != "$1" ] || [ "${1#+}" != "$1" ]; then - set -- /opt/couchdb/bin/couchdb "$@" -fi - -# first arg is the bare word `couchdb` -if [ "$1" = 'couchdb' ]; then - shift - set -- /opt/couchdb/bin/couchdb "$@" -fi - -if [ "$1" = '/opt/couchdb/bin/couchdb' ]; then - # we need to set the permissions here because docker mounts volumes as root - chown -R couchdb:couchdb /opt/couchdb - - chmod -R 0770 /opt/couchdb/data - - chmod 664 /opt/couchdb/etc/*.ini - chmod 664 /opt/couchdb/etc/local.d/*.ini - chmod 775 /opt/couchdb/etc/*.d - - if [ ! -z "$NODENAME" ] && ! grep "couchdb@" /opt/couchdb/etc/vm.args; then - echo "-name couchdb@$NODENAME" >> /opt/couchdb/etc/vm.args - fi - - if [ "$COUCHDB_USER" ] && [ "$COUCHDB_PASSWORD" ]; then - # Create admin - printf "[admins]\n%s = %s\n" "$COUCHDB_USER" "$COUCHDB_PASSWORD" > /opt/couchdb/etc/local.d/docker.ini - chown couchdb:couchdb /opt/couchdb/etc/local.d/docker.ini - fi - - if [ "$COUCHDB_SECRET" ]; then - # Set secret - printf "[couch_httpd_auth]\nsecret = %s\n" "$COUCHDB_SECRET" >> /opt/couchdb/etc/local.d/docker.ini - chown couchdb:couchdb /opt/couchdb/etc/local.d/docker.ini - fi - - # if we don't find an [admins] section followed by a non-comment, display a warning - if ! grep -Pzoqr '\[admins\]\n[^;]\w+' /opt/couchdb/etc/local.d/*.ini; then - # The - option suppresses leading tabs but *not* spaces. :) - cat >&2 <<-'EOWARN' - **************************************************** - WARNING: CouchDB is running in Admin Party mode. - This will allow anyone with access to the - CouchDB port to access your database. In - Docker's default configuration, this is - effectively any other container on the same - system. - Use "-e COUCHDB_USER=admin -e COUCHDB_PASSWORD=password" - to set it in "docker run". - **************************************************** - EOWARN - fi - - - exec gosu couchdb "$@" -fi - -exec "$@" diff --git a/2.1.0/local.ini b/2.1.0/local.ini deleted file mode 100644 index e5d7bc0..0000000 --- a/2.1.0/local.ini +++ /dev/null @@ -1,11 +0,0 @@ -; CouchDB Configuration Settings - -; Custom settings should be made in this file. They will override settings -; in default.ini, but unlike changes made to default.ini, this file won't be -; overwritten on server upgrade. - -[chttpd] -bind_address = any -[log] -writer = file -file = /opt/couchdb/var/log/couch.log diff --git a/2.1.0/vm.args b/2.1.0/vm.args deleted file mode 100644 index 6dcfb85..0000000 --- a/2.1.0/vm.args +++ /dev/null @@ -1,28 +0,0 @@ -# Licensed under the Apache License, Version 2.1 (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. - -# Ensure that the Erlang VM listens on a known port --kernel inet_dist_listen_min 9100 --kernel inet_dist_listen_max 9100 - -# Tell kernel and SASL not to log anything --kernel error_logger silent --sasl sasl_error_logger false - -# Use kernel poll functionality if supported by emulator -+K true - -# Start a pool of asynchronous IO threads -+A 16 - -# Comment this line out to enable the interactive Erlang shell on startup -+Bd -noinput diff --git a/2.1.1/Dockerfile-arm64 b/2.1.2/Dockerfile-arm64 similarity index 98% rename from 2.1.1/Dockerfile-arm64 rename to 2.1.2/Dockerfile-arm64 index e151a68..3ee0bc7 100644 --- a/2.1.1/Dockerfile-arm64 +++ b/2.1.2/Dockerfile-arm64 @@ -11,7 +11,7 @@ # the License. #We will be building 64-bit after 32-bit. So we can use this as builder. -FROM treehouses/rpi-couchdb:2.1.1 as builder +FROM treehouses/rpi-couchdb:2.1.2 as builder FROM resin/aarch64-debian LABEL maintainer="sahil@ole.org,mappuji@ole.org" From 883ab46b9a1d28153510e9ea0d008a4c7712b846 Mon Sep 17 00:00:00 2001 From: Sahil Phule Date: Mon, 23 Jul 2018 23:36:52 -0400 Subject: [PATCH 28/29] Fix vars --- .travis/travis_utils.sh | 16 ++++++---------- 1 file changed, 6 insertions(+), 10 deletions(-) diff --git a/.travis/travis_utils.sh b/.travis/travis_utils.sh index 50b33c8..56fe280 100755 --- a/.travis/travis_utils.sh +++ b/.travis/travis_utils.sh @@ -23,10 +23,6 @@ prepare_package(){ if [ -z "$COMMIT" ]; then COMMIT=${TRAVIS_COMMIT::8} fi - V200_DOCKER_NAME=$DOCKER_ORG/$DOCKER_REPO:2.0.0-$VERSION-$BRANCH-$COMMIT - V200_DOCKER_NAME_LATEST=$DOCKER_ORG/$DOCKER_REPO:2.0.0 - V210_DOCKER_NAME=$DOCKER_ORG/$DOCKER_REPO:2.1.0-$VERSION-$BRANCH-$COMMIT - V210_DOCKER_NAME_LATEST=$DOCKER_ORG/$DOCKER_REPO:2.1.0 v212_DOCKER_NAME=$DOCKER_ORG/$DOCKER_REPO:2.1.2-$VERSION-$BRANCH-$COMMIT v212_DOCKER_NAME_LATEST=$DOCKER_ORG/$DOCKER_REPO:2.1.2 v172_DOCKER_NAME=$DOCKER_ORG/$DOCKER_REPO:1.7.2-$VERSION-$BRANCH-$COMMIT @@ -97,8 +93,8 @@ deploy_v212(){ deploy_v172_arm64(){ login_docker sed -i -e "s/\(resin\/rpi-raspbian\)/resin\/aarch64-debian/" 1.7.2/Dockerfile - V172_DOCKER_NAME_LATEST="$DOCKER_ORG/$DOCKER_REPO:arm64-1.7.2" - V172_DOCKER_NAME="$DOCKER_ORG/$DOCKER_REPO:arm64-1.7.2-$VERSION-$BRANCH-$COMMIT" + v172_DOCKER_NAME_LATEST="$DOCKER_ORG/$DOCKER_REPO:arm64-1.7.2" + v172_DOCKER_NAME="$DOCKER_ORG/$DOCKER_REPO:arm64-1.7.2-$VERSION-$BRANCH-$COMMIT" package_v172 push_v172 } @@ -109,12 +105,12 @@ deploy_v212_arm64(){ mv 2.1.2/Dockerfile-arm64 2.1.2/Dockerfile if [ "$BRANCH" = "master" ] then - sed -i -e "s|\(treehouses\/rpi-couchdb:2\.1\.2\)|$V211_DOCKER_NAME_LATEST|" 2.1.2/Dockerfile + sed -i -e "s|\(treehouses\/rpi-couchdb:2\.1\.2\)|$v211_DOCKER_NAME_LATEST|" 2.1.2/Dockerfile else - sed -i -e "s|\(treehouses\/rpi-couchdb:2\.1\.2\)|$V211_DOCKER_NAME|" 2.1.2/Dockerfile + sed -i -e "s|\(treehouses\/rpi-couchdb:2\.1\.2\)|$v211_DOCKER_NAME|" 2.1.2/Dockerfile fi - V212_DOCKER_NAME_LATEST="$DOCKER_ORG/$DOCKER_REPO:arm64-2.1.2" - V212_DOCKER_NAME="$DOCKER_ORG/$DOCKER_REPO:arm64-2.1.2-$VERSION-$BRANCH-$COMMIT" + v212_DOCKER_NAME_LATEST="$DOCKER_ORG/$DOCKER_REPO:arm64-2.1.2" + v212_DOCKER_NAME="$DOCKER_ORG/$DOCKER_REPO:arm64-2.1.2-$VERSION-$BRANCH-$COMMIT" package_v212 push_v212 } From e3fff74bd77915432594c3d8f23fc58b3dcfab9e Mon Sep 17 00:00:00 2001 From: Sahil Phule Date: Tue, 24 Jul 2018 11:10:20 -0400 Subject: [PATCH 29/29] Fix even more vars --- .travis/travis_utils.sh | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.travis/travis_utils.sh b/.travis/travis_utils.sh index 56fe280..85f45a6 100755 --- a/.travis/travis_utils.sh +++ b/.travis/travis_utils.sh @@ -105,9 +105,9 @@ deploy_v212_arm64(){ mv 2.1.2/Dockerfile-arm64 2.1.2/Dockerfile if [ "$BRANCH" = "master" ] then - sed -i -e "s|\(treehouses\/rpi-couchdb:2\.1\.2\)|$v211_DOCKER_NAME_LATEST|" 2.1.2/Dockerfile + sed -i -e "s|\(treehouses\/rpi-couchdb:2\.1\.2\)|$v212_DOCKER_NAME_LATEST|" 2.1.2/Dockerfile else - sed -i -e "s|\(treehouses\/rpi-couchdb:2\.1\.2\)|$v211_DOCKER_NAME|" 2.1.2/Dockerfile + sed -i -e "s|\(treehouses\/rpi-couchdb:2\.1\.2\)|$v212_DOCKER_NAME|" 2.1.2/Dockerfile fi v212_DOCKER_NAME_LATEST="$DOCKER_ORG/$DOCKER_REPO:arm64-2.1.2" v212_DOCKER_NAME="$DOCKER_ORG/$DOCKER_REPO:arm64-2.1.2-$VERSION-$BRANCH-$COMMIT"