github.com/adnan-c/fabric_e2e_couchdb@v0.6.1-preview.0.20170228180935-21ce6b23cf91/images/couchdb/Dockerfile.in (about) 1 FROM hyperledger/fabric-baseimage:_BASE_TAG_ 2 3 # Based on https://github.com/klaemo/docker-couchdb/blob/master/2.0.0/Dockerfile 4 5 # Add CouchDB user account 6 RUN groupadd -r couchdb && useradd -d /opt/couchdb -g couchdb couchdb 7 8 RUN apt-get update -y && apt-get install -y --no-install-recommends \ 9 ca-certificates \ 10 curl \ 11 erlang-nox \ 12 erlang-reltool \ 13 haproxy \ 14 libicu5. \ 15 libmozjs185-1.0 \ 16 openssl \ 17 cmake \ 18 apt-transport-https \ 19 gcc \ 20 g++ \ 21 erlang-dev \ 22 libcurl4-openssl-dev \ 23 libicu-dev \ 24 libmozjs185-dev \ 25 make \ 26 && rm -rf /var/lib/apt/lists/* 27 28 # Grab su-exec and tini 29 RUN set -x \ 30 && git clone https://github.com/ncopa/su-exec /tmp/su-exec/ \ 31 && cd /tmp/su-exec \ 32 && make all \ 33 && cp su-exec /usr/bin/ \ 34 && git clone https://github.com/krallin/tini/ /tmp/tini/ \ 35 && cd /tmp/tini/ \ 36 && git checkout v0.14.0 \ 37 && cmake . && make \ 38 && cp tini tini-static /usr/local/bin/ \ 39 # Clean up su-exec and tini 40 && rm -rf /tmp/tini \ 41 && rm -rf /tmp/su-exec 42 43 ARG COUCHDB_VERSION=2.0.0 44 45 # Download dev dependencies 46 RUN set -x \ 47 && npm install -g grunt-cli \ 48 # Acquire CouchDB source code 49 && cd /usr/src && mkdir couchdb \ 50 && curl -fSL https://dist.apache.org/repos/dist/release/couchdb/source/$COUCHDB_VERSION/apache-couchdb-$COUCHDB_VERSION.tar.gz -o couchdb.tar.gz \ 51 && tar -xzf couchdb.tar.gz -C couchdb --strip-components=1 \ 52 && cd couchdb \ 53 # Build the release and install into /opt 54 && ./configure --disable-docs \ 55 && make release \ 56 && mv /usr/src/couchdb/rel/couchdb /opt/ \ 57 # Cleanup build detritus 58 && rm -rf /var/lib/apt/lists/* /usr/lib/node_modules /usr/src/couchdb* 59 60 # Add configuration 61 COPY payload/local.ini /opt/couchdb/etc/local.d/ 62 COPY payload/vm.args /opt/couchdb/etc/ 63 COPY payload/docker-entrypoint.sh / 64 65 # Setup directories and permissions 66 RUN chmod +x /docker-entrypoint.sh \ 67 && mkdir /opt/couchdb/data /opt/couchdb/etc/default.d \ 68 && chown -R couchdb:couchdb /opt/couchdb/ 69 70 WORKDIR /opt/couchdb 71 EXPOSE 5984 4369 9100 72 VOLUME ["/opt/couchdb/data"] 73 74 ENTRYPOINT ["tini", "--", "/docker-entrypoint.sh"] 75 CMD ["/opt/couchdb/bin/couchdb"]