-
Pierre Guilleminot authoredPierre Guilleminot authored
Dockerfile 2.34 KiB
# This Dockerfile should be used to create an development environment to
# develop applications for cozy-stack. It installs go and couchdb 2.
# It should not be used for hosting your cozy cloud in production.
FROM debian:jessie
# CouchDB and CGo dependencies
RUN apt-get update && apt-get install -y --no-install-recommends \
bash \
git \
ca-certificates \
curl \
libicu52 \
libmozjs185-1.0 \
erlang \
libicu-dev \
libmozjs185-dev \
openssl \
g++ \
gcc \
libc6-dev \
make \
pkg-config \
&& rm -rf /var/lib/apt/lists/*
# Golang
ENV GOLANG_VERSION 1.7.4
ENV GOLANG_DOWNLOAD_URL https://golang.org/dl/go$GOLANG_VERSION.linux-amd64.tar.gz
ENV GOLANG_DOWNLOAD_SHA256 47fda42e46b4c3ec93fa5d4d4cc6a748aa3f9411a2a2b7e08e3a6d80d753ec8b
RUN curl -fsSL "$GOLANG_DOWNLOAD_URL" -o golang.tar.gz \
&& echo "$GOLANG_DOWNLOAD_SHA256 golang.tar.gz" | sha256sum -c - \
&& tar -xzf golang.tar.gz -C /usr/local \
&& rm golang.tar.gz
ENV GOPATH /go
ENV PATH $GOPATH/bin:/usr/local/go/bin:$PATH
RUN mkdir -p "$GOPATH/src" "$GOPATH/bin" && chmod -R 777 "$GOPATH"
RUN go get github.com/mholt/caddy/caddy \
&& go get github.com/cozy/cozy-stack
# CouchDB
ENV COUCHDB_VERSION 2.0.0
ENV COUCHDB_SRC_URL https://dist.apache.org/repos/dist/release/couchdb/source/2.0.0/apache-couchdb-$COUCHDB_VERSION.tar.gz
ENV COUCHDB_SRC_SHA256 ccaf3ce9cb06c50a73e091696e557e2a57c5ba02c5b299e1ac2f5b959ee96eca
RUN mkdir /usr/src/couchdb \
&& curl -fsSL "$COUCHDB_SRC_URL" -o couchdb.tar.gz \
&& echo "$COUCHDB_SRC_SHA256 couchdb.tar.gz" | sha256sum -c - \
&& tar -xzf couchdb.tar.gz -C /usr/src/couchdb --strip-components=1 \
&& rm couchdb.tar.gz \
&& cd /usr/src/couchdb \
&& ./configure --disable-docs \
&& make release \
&& mv ./rel/couchdb /usr/local \
&& rm -rf /usr/src/couchdb
ENV PATH $PATH:/usr/local/couchdb/bin
# Cleanup
RUN apt-get purge -y \
erlang-dev \
libicu-dev \
libmozjs185-dev \
&& apt-get autoremove -y \
&& apt-get clean
COPY cozy-app-dev.sh /usr/bin
RUN chmod +x /usr/bin/cozy-app-dev.sh
ENV COZY_PROXY_HOST cozy.local
ENV COZY_PROXY_PORT 8080
ENV COZY_STACK_HOST localhost
ENV COZY_STACK_PORT 8081
RUN mkdir -p /data/cozy-app && mkdir -p /data/cozy-storage
EXPOSE 8080 5984
CMD couchdb 2>/dev/null 1>/dev/null & \
/usr/bin/cozy-app-dev.sh \
-d /data/cozy-app \
-f /data/cozy-storage