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>.