You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@couchdb.apache.org by ga...@apache.org on 2017/04/25 12:38:14 UTC

[couchdb-docker] 02/39: 1.6: allow configuration of admin user via env vars (#46)

This is an automated email from the ASF dual-hosted git repository.

garren pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/couchdb-docker.git

commit 2a3d644e868b7977e82acca14e5d4e3e7b3092a5
Author: Clemens Stolle <kl...@fastmail.fm>
AuthorDate: Fri May 6 17:38:10 2016 +0200

    1.6: allow configuration of admin user via env vars (#46)
---
 1.6.1/docker-entrypoint.sh | 62 ++++++++++++++++++++++++++++++++++------------
 1 file changed, 46 insertions(+), 16 deletions(-)

diff --git a/1.6.1/docker-entrypoint.sh b/1.6.1/docker-entrypoint.sh
index ba4dac3..763d285 100755
--- a/1.6.1/docker-entrypoint.sh
+++ b/1.6.1/docker-entrypoint.sh
@@ -14,22 +14,52 @@
 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
-  exec gosu couchdb "$@"
+
+	if [ "$COUCHDB_USER" ] && [ "$COUCHDB_PASSWORD" ]; then
+		# Create admin
+		printf "[admins]\n$COUCHDB_USER = $COUCHDB_PASSWORD\n" > /usr/local/etc/couchdb/local.d/docker.ini
+	fi
+
+	# Start CouchDB
+	couchdb -b > /dev/null 2>&1
+	while ! curl -s 127.0.0.1:5984 > /dev/null; do sleep 1; done
+
+	if [ "$(curl -s 127.0.0.1:5984/_config/admins)" == "{}" ]; 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
+
+	# Stop CouchDB
+	couchdb -d > /dev/null 2>&1
+
+	# 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
+
+	exec gosu couchdb "$@"
 fi
 
 exec "$@"

-- 
To stop receiving notification emails like this one, please contact
"commits@couchdb.apache.org" <co...@couchdb.apache.org>.