Update with jfrog artifactory repo (#202)
diff --git a/.travis.yml b/.travis.yml
index 9c0a4d4..4bf6261 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -5,7 +5,7 @@
# Avoid double build on PRs (See https://github.com/travis-ci/travis-ci/issues/1147)
branches:
only:
- - master
+ - main
services:
- docker
@@ -15,8 +15,9 @@
- RELEASES=2.3.1-ubi
- RELEASES=3.1.1
- RELEASES=3.1.1-ubi
- - RELEASES=dev
- - RELEASES=dev-cluster
+# Needs updating for fdb
+# - RELEASES=dev
+# - RELEASES=dev-cluster
script:
- for rel in $RELEASES; do docker build -t couchdb:$rel $rel; docker run -d --name $rel -e COUCHDB_USER=admin -e COUCHDB_PASSWORD=password -p 5984:5984 couchdb:$rel && sleep 10 && curl http://admin:password@localhost:5984/ && docker kill $rel; done
diff --git a/2.3.1-ubi/Dockerfile b/2.3.1-ubi/Dockerfile
index 442bd45..7daba2a 100644
--- a/2.3.1-ubi/Dockerfile
+++ b/2.3.1-ubi/Dockerfile
@@ -31,7 +31,7 @@
io.openshift.min-cpu="1"
COPY imeyer_runit.repo /etc/yum.repos.d/imeyer_runit.repo
-COPY bintray-apache-couchdb-rpm.repo /etc/yum.repos.d/bintray-apache-couchdb-rpm.repo
+COPY couchdb.repo /etc/yum.repos.d/couchdb.repo
ENV COUCHDB_VERSION 2.3.1
@@ -55,28 +55,10 @@
microdnf clean all; \
rm -rf /var/cache/yum
-# https://docs.couchdb.org/en/stable/install/unix.html
-# ENV GPG_COUCH_KEY \
-# # gpg: key D401AB61: public key "Bintray (by JFrog) <bintray@bintray.com> imported
-# 8756C4F765C9AC3CB6B85D62379CE192D401AB61
-# RUN set -xe; \
-# export GNUPGHOME="$(mktemp -d)"; \
-# echo "disable-ipv6" >> ${GNUPGHOME}/dirmngr.conf; \
-# for server in $(shuf -e pgpkeys.mit.edu \
-# ha.pool.sks-keyservers.net \
-# hkp://p80.pool.sks-keyservers.net:80 \
-# pgp.mit.edu) ; do \
-# gpg --batch --keyserver $server --recv-keys $GPG_COUCH_KEY && break || : ; \
-# done; \
-# gpg --batch --export $GPG_COUCH_KEY > /etc/apt/trusted.gpg.d/couchdb.gpg; \
-# command -v gpgconf && gpgconf --kill all || :; \
-# rm -rf "$GNUPGHOME"; \
-# apt-key list
-
# Install CouchDB
RUN set -xe; \
microdnf update --disableplugin=subscription-manager -y && rm -rf /var/cache/yum; \
- microdnf install --enablerepo=bintray-apache-couchdb-rpm -y couchdb-2.3.1; \
+ microdnf install --enablerepo=couchdb -y couchdb-${COUCHDB_VERSION}; \
microdnf clean all; \
rm -rf /var/cache/yum; \
# remove defaults that force writing logs to file
diff --git a/2.3.1-ubi/bintray-apache-couchdb-rpm.repo b/2.3.1-ubi/bintray-apache-couchdb-rpm.repo
deleted file mode 100644
index e131b6a..0000000
--- a/2.3.1-ubi/bintray-apache-couchdb-rpm.repo
+++ /dev/null
@@ -1,6 +0,0 @@
-[bintray-apache-couchdb-rpm]
-name=bintray--apache-couchdb-rpm
-baseurl=http://apache.bintray.com/couchdb-rpm/el8/x86_64
-gpgcheck=0
-repo_gpgcheck=0
-enabled=1
diff --git a/2.3.1-ubi/couchdb.repo b/2.3.1-ubi/couchdb.repo
new file mode 100644
index 0000000..b4f33d7
--- /dev/null
+++ b/2.3.1-ubi/couchdb.repo
@@ -0,0 +1,7 @@
+[couchdb]
+name=couchdb
+baseurl=https://apache.jfrog.io/artifactory/couchdb-rpm/el$releasever/$basearch/
+gpgkey=https://couchdb.apache.org/repo/keys.asc https://couchdb.apache.org/repo/rpm-package-key.asc
+gpgcheck=1
+repo_gpgcheck=1
+enabled=1
diff --git a/2.3.1/Dockerfile b/2.3.1/Dockerfile
index 9d5706c..75d0c24 100644
--- a/2.3.1/Dockerfile
+++ b/2.3.1/Dockerfile
@@ -39,29 +39,31 @@
# http://docs.couchdb.org/en/latest/install/unix.html#installing-the-apache-couchdb-packages
ENV GPG_COUCH_KEY \
-# gpg: key D401AB61: public key "Bintray (by JFrog) <bintray@bintray.com> imported
- 8756C4F765C9AC3CB6B85D62379CE192D401AB61
-RUN set -xe; \
+# gpg: rsa8192 205-01-19 The Apache Software Foundation (Package repository signing key) <root@apache.org>
+ 390EF70BB1EA12B2773962950EE62FB37A00258D
+RUN set -eux; \
+ apt-get update; \
+ apt-get install -y curl; \
export GNUPGHOME="$(mktemp -d)"; \
echo "disable-ipv6" >> ${GNUPGHOME}/dirmngr.conf; \
- for server in $(shuf -e pgpkeys.mit.edu \
- ha.pool.sks-keyservers.net \
- hkp://p80.pool.sks-keyservers.net:80 \
- hkps://hkps.pool.sks-keyservers.net \
- pgp.mit.edu) ; do \
- gpg --batch --keyserver $server --recv-keys $GPG_COUCH_KEY && break || : ; \
- done; \
- gpg --batch --export $GPG_COUCH_KEY > /etc/apt/trusted.gpg.d/couchdb.gpg; \
+ curl https://couchdb.apache.org/repo/keys.asc | \
+ gpg --dearmor | \
+ tee /usr/share/keyrings/couchdb-archive-keyring.gpg >/dev/null 2>&1; \
+ gpg --show-keys /usr/share/keyrings/couchdb-archive-keyring.gpg | grep -q ${GPG_COUCH_KEY}; \
command -v gpgconf && gpgconf --kill all || :; \
rm -rf "$GNUPGHOME"; \
- apt-key list
+ apt-key list; \
+ apt purge -y --autoremove curl; \
+ rm -rf /var/lib/apt/lists/*
ENV COUCHDB_VERSION 2.3.1-1
-RUN echo "deb https://apache.bintray.com/couchdb-deb buster main" > /etc/apt/sources.list.d/couchdb.list
+RUN . /etc/os-release; \
+ echo "deb [signed-by=/usr/share/keyrings/couchdb-archive-keyring.gpg] https://apache.jfrog.io/artifactory/couchdb-deb/ ${VERSION_CODENAME} main" | \
+ tee /etc/apt/sources.list.d/couchdb.list >/dev/null
# https://github.com/apache/couchdb-pkg/blob/master/debian/README.Debian
-RUN set -xe; \
+RUN set -eux; \
apt-get update; \
\
echo "couchdb couchdb/mode select none" | debconf-set-selections; \
diff --git a/3.1.1-ubi-clouseau/Dockerfile b/3.1.1-ubi-clouseau/Dockerfile
index 7d918a9..fe304af 100644
--- a/3.1.1-ubi-clouseau/Dockerfile
+++ b/3.1.1-ubi-clouseau/Dockerfile
@@ -49,9 +49,9 @@
io.openshift.min-cpu="1"
COPY imeyer_runit.repo /etc/yum.repos.d/imeyer_runit.repo
-COPY bintray-apache-couchdb-rpm.repo /etc/yum.repos.d/bintray-apache-couchdb-rpm.repo
+COPY couchdb.repo /etc/yum.repos.d/couchdb.repo
-ENV COUCHDB_VERSION 3.1.1 \
+ENV COUCHDB_VERSION=3.1.1 \
CLOUSEAU_VERSION=${CLOUSEAU_VERSION} \
JAVA_MAJOR_VERSION=8 \
JAVA_HOME=/usr/lib/jvm/jre-1.8.0 \
@@ -78,28 +78,10 @@
microdnf clean all; \
rm -rf /var/cache/yum
-# https://docs.couchdb.org/en/stable/install/unix.html
-# ENV GPG_COUCH_KEY \
-# # gpg: key D401AB61: public key "Bintray (by JFrog) <bintray@bintray.com> imported
-# 8756C4F765C9AC3CB6B85D62379CE192D401AB61
-# RUN set -xe; \
-# export GNUPGHOME="$(mktemp -d)"; \
-# echo "disable-ipv6" >> ${GNUPGHOME}/dirmngr.conf; \
-# for server in $(shuf -e pgpkeys.mit.edu \
-# ha.pool.sks-keyservers.net \
-# hkp://p80.pool.sks-keyservers.net:80 \
-# pgp.mit.edu) ; do \
-# gpg --batch --keyserver $server --recv-keys $GPG_COUCH_KEY && break || : ; \
-# done; \
-# gpg --batch --export $GPG_COUCH_KEY > /etc/apt/trusted.gpg.d/couchdb.gpg; \
-# command -v gpgconf && gpgconf --kill all || :; \
-# rm -rf "$GNUPGHOME"; \
-# apt-key list
-
# Install CouchDB
RUN set -xe; \
microdnf update --disableplugin=subscription-manager -y && rm -rf /var/cache/yum; \
- microdnf install --enablerepo=bintray-apache-couchdb-rpm -y couchdb-3.1.1; \
+ microdnf install --enablerepo=couchdb -y couchdb-${COUCHDB_VERSION}; \
microdnf clean all; \
rm -rf /var/cache/yum; \
# remove defaults that force writing logs to file
diff --git a/3.1.1-ubi-clouseau/bintray-apache-couchdb-rpm.repo b/3.1.1-ubi-clouseau/bintray-apache-couchdb-rpm.repo
deleted file mode 100644
index e131b6a..0000000
--- a/3.1.1-ubi-clouseau/bintray-apache-couchdb-rpm.repo
+++ /dev/null
@@ -1,6 +0,0 @@
-[bintray-apache-couchdb-rpm]
-name=bintray--apache-couchdb-rpm
-baseurl=http://apache.bintray.com/couchdb-rpm/el8/x86_64
-gpgcheck=0
-repo_gpgcheck=0
-enabled=1
diff --git a/3.1.1-ubi-clouseau/couchdb.repo b/3.1.1-ubi-clouseau/couchdb.repo
new file mode 100644
index 0000000..b4f33d7
--- /dev/null
+++ b/3.1.1-ubi-clouseau/couchdb.repo
@@ -0,0 +1,7 @@
+[couchdb]
+name=couchdb
+baseurl=https://apache.jfrog.io/artifactory/couchdb-rpm/el$releasever/$basearch/
+gpgkey=https://couchdb.apache.org/repo/keys.asc https://couchdb.apache.org/repo/rpm-package-key.asc
+gpgcheck=1
+repo_gpgcheck=1
+enabled=1
diff --git a/3.1.1-ubi/Dockerfile b/3.1.1-ubi/Dockerfile
index 6e6146c..055cd0c 100644
--- a/3.1.1-ubi/Dockerfile
+++ b/3.1.1-ubi/Dockerfile
@@ -31,7 +31,7 @@
io.openshift.min-cpu="1"
COPY imeyer_runit.repo /etc/yum.repos.d/imeyer_runit.repo
-COPY bintray-apache-couchdb-rpm.repo /etc/yum.repos.d/bintray-apache-couchdb-rpm.repo
+COPY couchdb.repo /etc/yum.repos.d/couchdb.repo
ENV COUCHDB_VERSION 3.1.1
@@ -55,28 +55,10 @@
microdnf clean all; \
rm -rf /var/cache/yum
-# https://docs.couchdb.org/en/stable/install/unix.html
-# ENV GPG_COUCH_KEY \
-# # gpg: key D401AB61: public key "Bintray (by JFrog) <bintray@bintray.com> imported
-# 8756C4F765C9AC3CB6B85D62379CE192D401AB61
-# RUN set -xe; \
-# export GNUPGHOME="$(mktemp -d)"; \
-# echo "disable-ipv6" >> ${GNUPGHOME}/dirmngr.conf; \
-# for server in $(shuf -e pgpkeys.mit.edu \
-# ha.pool.sks-keyservers.net \
-# hkp://p80.pool.sks-keyservers.net:80 \
-# pgp.mit.edu) ; do \
-# gpg --batch --keyserver $server --recv-keys $GPG_COUCH_KEY && break || : ; \
-# done; \
-# gpg --batch --export $GPG_COUCH_KEY > /etc/apt/trusted.gpg.d/couchdb.gpg; \
-# command -v gpgconf && gpgconf --kill all || :; \
-# rm -rf "$GNUPGHOME"; \
-# apt-key list
-
# Install CouchDB
RUN set -xe; \
microdnf update --disableplugin=subscription-manager -y && rm -rf /var/cache/yum; \
- microdnf install --enablerepo=bintray-apache-couchdb-rpm -y couchdb-3.1.1; \
+ microdnf install --enablerepo=couchdb -y couchdb-${COUCHDB_VERSION}; \
microdnf clean all; \
rm -rf /var/cache/yum; \
# remove defaults that force writing logs to file
@@ -85,8 +67,8 @@
find /opt/couchdb \! \( -user couchdb -group 0 \) -exec chown -f couchdb:0 '{}' +; \
# Setup directories and permissions for config. Technically these could be 555 and 444 respectively
# but we keep them as 775 and 664 for consistency with the dockerfile_entrypoint.
- find /opt/couchdb/etc -type d ! -perm 0755 -exec chmod -f 0755 '{}' +; \
- find /opt/couchdb/etc -type f ! -perm 0644 -exec chmod -f 0644 '{}' +; \
+ find /opt/couchdb/etc -type d ! -perm 0775 -exec chmod -f 0775 '{}' +; \
+ find /opt/couchdb/etc -type f ! -perm 0664 -exec chmod -f 0664 '{}' +; \
# Setup directories and permissions for data.
chmod 777 /opt/couchdb/data
diff --git a/3.1.1-ubi/bintray-apache-couchdb-rpm.repo b/3.1.1-ubi/bintray-apache-couchdb-rpm.repo
deleted file mode 100644
index e131b6a..0000000
--- a/3.1.1-ubi/bintray-apache-couchdb-rpm.repo
+++ /dev/null
@@ -1,6 +0,0 @@
-[bintray-apache-couchdb-rpm]
-name=bintray--apache-couchdb-rpm
-baseurl=http://apache.bintray.com/couchdb-rpm/el8/x86_64
-gpgcheck=0
-repo_gpgcheck=0
-enabled=1
diff --git a/3.1.1-ubi/couchdb.repo b/3.1.1-ubi/couchdb.repo
new file mode 100644
index 0000000..b4f33d7
--- /dev/null
+++ b/3.1.1-ubi/couchdb.repo
@@ -0,0 +1,7 @@
+[couchdb]
+name=couchdb
+baseurl=https://apache.jfrog.io/artifactory/couchdb-rpm/el$releasever/$basearch/
+gpgkey=https://couchdb.apache.org/repo/keys.asc https://couchdb.apache.org/repo/rpm-package-key.asc
+gpgcheck=1
+repo_gpgcheck=1
+enabled=1
diff --git a/3.1.1/Dockerfile b/3.1.1/Dockerfile
index 06280ee..4677c45 100644
--- a/3.1.1/Dockerfile
+++ b/3.1.1/Dockerfile
@@ -37,32 +37,33 @@
gosu nobody true; \
tini --version
-
# http://docs.couchdb.org/en/latest/install/unix.html#installing-the-apache-couchdb-packages
ENV GPG_COUCH_KEY \
-# gpg: key D401AB61: public key "Bintray (by JFrog) <bintray@bintray.com> imported
- 8756C4F765C9AC3CB6B85D62379CE192D401AB61
-RUN set -xe; \
+# gpg: rsa8192 205-01-19 The Apache Software Foundation (Package repository signing key) <root@apache.org>
+ 390EF70BB1EA12B2773962950EE62FB37A00258D
+RUN set -eux; \
+ apt-get update; \
+ apt-get install -y curl; \
export GNUPGHOME="$(mktemp -d)"; \
echo "disable-ipv6" >> ${GNUPGHOME}/dirmngr.conf; \
- for server in $(shuf -e pgpkeys.mit.edu \
- ha.pool.sks-keyservers.net \
- hkp://p80.pool.sks-keyservers.net:80 \
- hkps://hkps.pool.sks-keyservers.net \
- pgp.mit.edu) ; do \
- gpg --batch --keyserver $server --recv-keys $GPG_COUCH_KEY && break || : ; \
- done; \
- gpg --batch --export $GPG_COUCH_KEY > /etc/apt/trusted.gpg.d/couchdb.gpg; \
+ curl https://couchdb.apache.org/repo/keys.asc | \
+ gpg --dearmor | \
+ tee /usr/share/keyrings/couchdb-archive-keyring.gpg >/dev/null 2>&1; \
+ gpg --show-keys /usr/share/keyrings/couchdb-archive-keyring.gpg | grep -q ${GPG_COUCH_KEY}; \
command -v gpgconf && gpgconf --kill all || :; \
rm -rf "$GNUPGHOME"; \
- apt-key list
+ apt-key list; \
+ apt purge -y --autoremove curl; \
+ rm -rf /var/lib/apt/lists/*
ENV COUCHDB_VERSION 3.1.1
-RUN echo "deb https://apache.bintray.com/couchdb-deb buster main" > /etc/apt/sources.list.d/couchdb.list
+RUN . /etc/os-release; \
+ echo "deb [signed-by=/usr/share/keyrings/couchdb-archive-keyring.gpg] https://apache.jfrog.io/artifactory/couchdb-deb/ ${VERSION_CODENAME} main" | \
+ tee /etc/apt/sources.list.d/couchdb.list >/dev/null
# https://github.com/apache/couchdb-pkg/blob/master/debian/README.Debian
-RUN set -xe; \
+RUN set -eux; \
apt-get update; \
\
echo "couchdb couchdb/mode select none" | debconf-set-selections; \
diff --git a/build.sh b/build.sh
index 09a3020..44a4f58 100755
--- a/build.sh
+++ b/build.sh
@@ -109,11 +109,21 @@
build() {
VERSION=$1
ARCH=${2:-amd64}
- FROMIMG="$(awk '$1 == toupper("FROM") { print $2 }' $VERSION/Dockerfile)"
- CURRARCH=$(docker run --rm -t ${FROMIMG} uname -m)
-
- if [ ${CURRARCH} != ${ARCH} ]
+ FROMIMG="$(awk '$1 == toupper("FROM") { print $2; exit; }' $VERSION/Dockerfile)"
+ echo ${FROMIMG}
+ CURRARCH="$(docker run --rm -t ${FROMIMG} uname -m | sed -e 's/[[:space:]]*$//')"
+ if [ "${CURRARCH}" == "x86_64" ]
then
+ CURRARCH="amd64"
+ fi
+
+ if [ "${CURRARCH}" != "${ARCH}" ]
+ then
+ if [[ "${FROMIMG}" == *"redhat.com"* ]]
+ then
+ echo "Script does not handle multiarch for ubi images. Please fix me!"
+ exit 1
+ fi
docker rmi ${FROMIMG}
docker pull "${ARCH}/${FROMIMG}"
docker tag "${ARCH}/${FROMIMG}" "${FROMIMG}"
diff --git a/dev/Dockerfile b/dev/Dockerfile
index b493e97..104de9d 100644
--- a/dev/Dockerfile
+++ b/dev/Dockerfile
@@ -28,17 +28,6 @@
libicu63 \
libssl1.1 \
openssl \
- && echo "deb https://apache.bintray.com/couchdb-deb buster main" \
- | tee /etc/apt/sources.list.d/couchdb.list \
- && cat /etc/apt/sources.list.d/couchdb.list \
- && for server in $(shuf -e pgpkeys.mit.edu \
- ha.pool.sks-keyservers.net \
- hkp://p80.pool.sks-keyservers.net:80 \
- hkps://hkps.pool.sks-keyservers.net \
- pgp.mit.edu) ; do \
- gpg --batch --keyserver $server --recv-keys 8756C4F765C9AC3CB6B85D62379CE192D401AB61 && break || : ; \
- done \
- && gpg -a --export 8756C4F765C9AC3CB6B85D62379CE192D401AB61 > /etc/apt/trusted.gpg.d/couchdb.gpg.asc \
&& apt-get update -y && apt-get install -y --no-install-recommends libmozjs-60-0 \
&& rm -rf /var/lib/apt/lists/*
@@ -46,7 +35,7 @@
# 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; \
+RUN set -eux; \
apt-get update; \
apt-get install -y --no-install-recommends gosu tini; \
rm -rf /var/lib/apt/lists/*; \
@@ -56,12 +45,14 @@
# Dependencies only needed during build time. This layer will also be cached
FROM runtime AS build_dependencies
-RUN apt-get update -y && apt-get install -y --no-install-recommends \
+RUN set -eux; \
+ apt-get update -y && apt-get install -y --no-install-recommends \
build-essential \
libmozjs-60-dev \
erlang-nox \
erlang-reltool \
erlang-dev \
+ erlang-dialyzer \
git \
libcurl4-openssl-dev \
libicu-dev \
@@ -69,16 +60,25 @@
libpython3-dev \
python3-pip \
python3-sphinx \
- python3-setuptools
+ python3-setuptools \
+ wget
-RUN pip3 install --upgrade \
+RUN set -eux; \
+ pip3 install --upgrade \
sphinx_rtd_theme \
nose \
requests \
hypothesis
+RUN set -eux; \
+ wget https://www.foundationdb.org/downloads/6.3.9/ubuntu/installers/foundationdb-clients_6.3.9-1_amd64.deb; \
+ wget https://www.foundationdb.org/downloads/6.3.9/ubuntu/installers/foundationdb-server_6.3.9-1_amd64.deb; \
+ dpkg -i ./foundationdb*deb; \
+ pkill -f fdb || true; pkill -f foundation || true; \
+ rm -rf ./foundationdb*deb
+
# Node is special
-RUN set -ex; \
+RUN set -eux; \
curl -s https://deb.nodesource.com/gpgkey/nodesource.gpg.key | apt-key add -; \
echo 'deb https://deb.nodesource.com/node_10.x buster main' > /etc/apt/sources.list.d/nodesource.list; \
echo 'deb-src https://deb.nodesource.com/node_10.x buster main' >> /etc/apt/sources.list.d/nodesource.list; \