2
2
3
3
set -e
4
4
5
+ if [ " $COUCHDB_DATA_DIR " ]; then
6
+ # Create a symbolic link to the CouchDB data so that we can prefix it with the service name and
7
+ # task slot
8
+ rm -rf /home/couchdb/couchdb/data
9
+
10
+ # Make sure directory exists
11
+ mkdir -p $COUCHDB_DATA_DIR
12
+
13
+ ln -s $COUCHDB_DATA_DIR /home/couchdb/couchdb/data
14
+ fi
15
+
5
16
# Use sname so that we can specify a short name, like those used by docker, instead of a host
6
17
if [ ! -z " $NODENAME " ] && ! grep " couchdb@" /home/couchdb/couchdb/etc/vm.args; then
7
18
# A cookie is needed so that the nodes can connect to each other using Erlang clustering
14
25
15
26
if [ " $COUCHDB_USER " ] && [ " $COUCHDB_PASSWORD " ] && [ -z " $COUCHDB_HASHED_PASSWORD " ]; then
16
27
# Create admin
17
- printf " [admins]\n%s = %s\n" " $COUCHDB_USER " " $COUCHDB_PASSWORD " > /home/couchdb/couchdb/etc/local.d/docker.ini
18
- chown couchdb:couchdb /home/couchdb/couchdb/etc/local.d/docker.ini
28
+ printf " [admins]\n%s = %s\n" " $COUCHDB_USER " " $COUCHDB_PASSWORD " >> /home/couchdb/couchdb/etc/local.d/docker.ini
19
29
fi
20
30
21
31
if [ " $COUCHDB_USER " ] && [ " $COUCHDB_HASHED_PASSWORD " ]; then
22
32
# Create the admin using the hashed password. As per https://stackoverflow.com/q/43958527/2831606
23
33
# we need all nodes to have the exact same password hash.
24
34
printf " [admins]\n%s = %s\n" " $COUCHDB_USER " " $COUCHDB_HASHED_PASSWORD " > /home/couchdb/couchdb/etc/local.d/docker.ini
25
- chown couchdb:couchdb /home/couchdb/couchdb/etc/local.d/docker.ini
26
35
fi
27
36
28
37
if [ " $COUCHDB_SECRET " ]; then
29
38
# Set secret
30
- printf " [couch_httpd_auth]\nsecret = %s\n" " $COUCHDB_SECRET " > /home/couchdb/couchdb/etc/local.d/secret.ini
31
- chown couchdb:couchdb /home/couchdb/couchdb/etc/local.d/secret.ini
39
+ printf " [couch_httpd_auth]\nsecret = %s\n" " $COUCHDB_SECRET " >> /home/couchdb/couchdb/etc/local.d/docker.ini
32
40
fi
33
41
34
42
if [ " $COUCHDB_CERT_FILE " ] && [ " $COUCHDB_KEY_FILE " ] && [ " $COUCHDB_CACERT_FILE " ]; then
@@ -40,8 +48,16 @@ if [ "$COUCHDB_CERT_FILE" ] && [ "$COUCHDB_KEY_FILE" ] && [ "$COUCHDB_CACERT_FIL
40
48
# https://issues.apache.org/jira/browse/COUCHDB-3162, we need the following lines. TODO: remove
41
49
# this in a later version of CouchDB 2.
42
50
printf " ciphers = undefined\ntls_versions = undefined\nsecure_renegotiate = undefined\n" >> /home/couchdb/couchdb/etc/local.d/ssl.ini
51
+ fi
52
+
53
+ # Set the permissions. This is not needed as we are running couchdb as root
54
+ # if [ -f /home/couchdb/couchdb/etc/local.d/docker.ini ];
55
+ # chown couchdb:couchdb /home/couchdb/couchdb/etc/local.d/docker.ini
56
+ # fi
43
57
44
- chown couchdb:couchdb /home/couchdb/couchdb/etc/local.d/ssl.ini
58
+ if [ " $COUCHDB_LOCAL_INI " ]; then
59
+ # If a custom local.ini file is specified, e.g. through a volume, then copy it to CouchDB
60
+ cp $COUCHDB_LOCAL_INI /home/couchdb/couchdb/etc/local.d/local.ini
45
61
fi
46
62
47
63
/home/couchdb/couchdb/bin/couchdb
0 commit comments