You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@couchdb.apache.org by wo...@apache.org on 2017/11/06 21:27:44 UTC
[couchdb-docker] branch master updated: Incorporate more feedback
from official Docker image maintainers
This is an automated email from the ASF dual-hosted git repository.
wohali pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/couchdb-docker.git
The following commit(s) were added to refs/heads/master by this push:
new 7df08e9 Incorporate more feedback from official Docker image maintainers
7df08e9 is described below
commit 7df08e930a1d0f1942a385603f07434e7c710837
Author: Joan Touzet <jo...@atypical.net>
AuthorDate: Mon Nov 6 16:14:53 2017 -0500
Incorporate more feedback from official Docker image maintainers
---
1.6.1/Dockerfile | 50 +++++++++++++++++++++---------------
{1.6.1 => 1.7.0}/Dockerfile | 4 +--
1.7.0/docker-entrypoint.sh | 62 +++++++++++++++++++++++++++++++++++++++++++++
2.1.0/Dockerfile | 52 ++++++++++++++++++++++---------------
4 files changed, 126 insertions(+), 42 deletions(-)
diff --git a/1.6.1/Dockerfile b/1.6.1/Dockerfile
index 32f9cee..6113501 100644
--- a/1.6.1/Dockerfile
+++ b/1.6.1/Dockerfile
@@ -28,27 +28,37 @@ RUN apt-get update -y && apt-get install -y --no-install-recommends \
libnspr4-0d \
&& rm -rf /var/lib/apt/lists/*
-# grab gosu for easy step-down from root
ENV GOSU_VERSION 1.10
-RUN set -x \
- && apt-get update && apt-get install -y --no-install-recommends ca-certificates wget && rm -rf /var/lib/apt/lists/* \
- && wget -O /usr/local/bin/gosu "https://github.com/tianon/gosu/releases/download/$GOSU_VERSION/gosu-$(dpkg --print-architecture)" \
- && wget -O /usr/local/bin/gosu.asc "https://github.com/tianon/gosu/releases/download/$GOSU_VERSION/gosu-$(dpkg --print-architecture).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 -rf "$GNUPGHOME" /usr/local/bin/gosu.asc \
- && chmod +x /usr/local/bin/gosu \
- && gosu nobody true \
-&& apt-get purge -y --auto-remove wget
-
-# grab tini for signal handling
-ENV TINI_VERSION v0.16.1
-ADD https://github.com/krallin/tini/releases/download/${TINI_VERSION}/tini /usr/local/bin/tini
-ADD https://github.com/krallin/tini/releases/download/${TINI_VERSION}/tini.asc /usr/local/bin/tini.asc
-RUN gpg --keyserver hkp://p80.pool.sks-keyservers.net:80 --recv-keys 595E85A6B1B4779EA4DAAEC70B588DFF0527A9B7 \
- && gpg --batch --verify /usr/local/bin/tini.asc /usr/local/bin/tini \
-&& chmod +x /usr/local/bin/tini
+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; \
+ gosu nobody true; \
+ \
+# 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; \
+ \
+ apt-get purge -y --auto-remove wget
# https://www.apache.org/dist/couchdb/KEYS
ENV GPG_KEYS \
diff --git a/1.6.1/Dockerfile b/1.7.0/Dockerfile
similarity index 96%
copy from 1.6.1/Dockerfile
copy to 1.7.0/Dockerfile
index 32f9cee..134d654 100644
--- a/1.6.1/Dockerfile
+++ b/1.7.0/Dockerfile
@@ -66,7 +66,7 @@ RUN set -xe \
gpg --keyserver ha.pool.sks-keyservers.net --recv-keys "$key"; \
done
-ENV COUCHDB_VERSION 1.6.1
+ENV COUCHDB_VERSION 1.7.0
# download dependencies, compile and install couchdb,
# set correct permissions, expose couchdb to the outside and disable logging to disk
@@ -81,7 +81,7 @@ RUN buildDeps=' \
make \
' \
&& apt-get update && apt-get install -y --no-install-recommends $buildDeps \
- && curl -fSL http://apache.osuosl.org/couchdb/source/$COUCHDB_VERSION/apache-couchdb-$COUCHDB_VERSION.tar.gz -o couchdb.tar.gz \
+ && curl -fSL https://apache.osuosl.org/couchdb/source/$COUCHDB_VERSION/apache-couchdb-$COUCHDB_VERSION.tar.gz -o couchdb.tar.gz \
&& curl -fSL https://www.apache.org/dist/couchdb/source/$COUCHDB_VERSION/apache-couchdb-$COUCHDB_VERSION.tar.gz.asc -o couchdb.tar.gz.asc \
&& gpg --batch --verify couchdb.tar.gz.asc couchdb.tar.gz \
&& mkdir -p /usr/src/couchdb \
diff --git a/1.7.0/docker-entrypoint.sh b/1.7.0/docker-entrypoint.sh
new file mode 100755
index 0000000..c1c9f56
--- /dev/null
+++ b/1.7.0/docker-entrypoint.sh
@@ -0,0 +1,62 @@
+#!/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" = 'couchdb' ]; then
+ # we need to set the permissions here because docker mounts volumes as root
+ chown -R couchdb:couchdb \
+ /usr/local/var/lib/couchdb \
+ /usr/local/var/log/couchdb \
+ /usr/local/var/run/couchdb \
+ /usr/local/etc/couchdb
+
+ chmod -R 0770 \
+ /usr/local/var/lib/couchdb \
+ /usr/local/var/log/couchdb \
+ /usr/local/var/run/couchdb \
+ /usr/local/etc/couchdb
+
+ chmod 664 /usr/local/etc/couchdb/*.ini
+ chmod 775 /usr/local/etc/couchdb/*.d
+
+ if [ "$COUCHDB_USER" ] && [ "$COUCHDB_PASSWORD" ]; then
+ # Create admin
+ printf "[admins]\n%s = %s\n" "$COUCHDB_USER" "$COUCHDB_PASSWORD" > /usr/local/etc/couchdb/local.d/docker.ini
+ chown couchdb:couchdb /usr/local/etc/couchdb/local.d/docker.ini
+ fi
+
+ printf "[httpd]\nport = %s\nbind_address = %s\n" ${COUCHDB_HTTP_PORT:=5984} ${COUCHDB_HTTP_BIND_ADDRESS:=0.0.0.0} > /usr/local/etc/couchdb/local.d/bind_address.ini
+ chown couchdb:couchdb /usr/local/etc/couchdb/local.d/bind_address.ini
+
+ # if we don't find an [admins] section followed by a non-comment, display a warning
+ if ! grep -Pzoqr '\[admins\]\n[^;]\w+' /usr/local/etc/couchdb; 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/Dockerfile b/2.1.0/Dockerfile
index 59a3d31..4cfeaa3 100644
--- a/2.1.0/Dockerfile
+++ b/2.1.0/Dockerfile
@@ -28,27 +28,39 @@ RUN apt-get update -y && apt-get install -y --no-install-recommends \
openssl \
&& rm -rf /var/lib/apt/lists/*
-# grab gosu for easy step-down from root
+# 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
-RUN set -x \
- && apt-get update && apt-get install -y --no-install-recommends ca-certificates wget && rm -rf /var/lib/apt/lists/* \
- && wget -O /usr/local/bin/gosu "https://github.com/tianon/gosu/releases/download/$GOSU_VERSION/gosu-$(dpkg --print-architecture)" \
- && wget -O /usr/local/bin/gosu.asc "https://github.com/tianon/gosu/releases/download/$GOSU_VERSION/gosu-$(dpkg --print-architecture).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 -rf "$GNUPGHOME" /usr/local/bin/gosu.asc \
- && chmod +x /usr/local/bin/gosu \
- && gosu nobody true \
-&& apt-get purge -y --auto-remove wget
-
-# grab tini for signal handling
-ENV TINI_VERSION v0.16.1
-ADD https://github.com/krallin/tini/releases/download/${TINI_VERSION}/tini /usr/local/bin/tini
-ADD https://github.com/krallin/tini/releases/download/${TINI_VERSION}/tini.asc /usr/local/bin/tini.asc
-RUN gpg --keyserver hkp://p80.pool.sks-keyservers.net:80 --recv-keys 595E85A6B1B4779EA4DAAEC70B588DFF0527A9B7 \
- && gpg --batch --verify /usr/local/bin/tini.asc /usr/local/bin/tini \
-&& chmod +x /usr/local/bin/tini
+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; \
+ gosu nobody true; \
+ \
+# 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; \
+ \
+ apt-get purge -y --auto-remove wget
# https://www.apache.org/dist/couchdb/KEYS
ENV GPG_KEYS \
--
To stop receiving notification emails like this one, please contact
['"commits@couchdb.apache.org" <co...@couchdb.apache.org>'].