diff --git a/Dockerfile b/Dockerfile index 0ace3a3ccee23090696dfefaf6aaadf63a475c1a..bf0a7100101cf6b50e2cf2194b3eb1875ebd8293 100644 --- a/Dockerfile +++ b/Dockerfile @@ -8,25 +8,19 @@ EXPOSE 46656 EXPOSE 46657 #----------------------------------------------------------------------------- -# install eris-db +# install eris-db's dependencies # set the source code path and copy the repository in ENV ERIS_DB_SRC_PATH $GOPATH/src/github.com/eris-ltd/eris-db -COPY . $ERIS_DB_SRC_PATH +ADD glide.yaml $ERIS_DB_SRC_PATH/ +ADD glide.lock $ERIS_DB_SRC_PATH/ +# [csk] if we vendor the dependencies we should import them b4 the glide install, no? -# fetch and install eris-db and its dependencies - # install glide for dependency management +# install glide for dependency management RUN go get github.com/Masterminds/glide \ # install dependencies for eris-db with glide && cd $ERIS_DB_SRC_PATH \ - && glide install \ - # build the main eris-db target - && cd $ERIS_DB_SRC_PATH/cmd/eris-db \ - && go build \ - && cp eris-db $INSTALL_BASE/eris-db \ - # copy the start script for eris-db \ - && cp $ERIS_DB_SRC_PATH/bin/start_eris_db $INSTALL_BASE/erisdb-wrapper \ - && chmod 755 $INSTALL_BASE/erisdb-wrapper + && glide install #----------------------------------------------------------------------------- # install mint-client [to be deprecated] @@ -48,6 +42,21 @@ RUN git clone --quiet https://$ERIS_DB_MINT_REPO . \ # && go build -o $INSTALL_BASE/mintgen ./mintgen \ # && go build -o $INSTALL_BASE/mintsync ./mintsync +#----------------------------------------------------------------------------- +# install eris-db + +# copy in the entire repo now (after dependencies installed) +COPY . $ERIS_DB_SRC_PATH + +# build the main eris-db target +RUN cd $ERIS_DB_SRC_PATH/cmd/eris-db \ + # statically link Alpine's c library to provide X-Linux buildability + # [csk] see -> https://github.com/eris-ltd/eris-pm/commit/e24c49c7ba1e62509377adacf8da650b51e84e6a + && go build --ldflags '-extldflags "-static"' -o $INSTALL_BASE/eris-db \ + # copy the start script for eris-db \ + && cp $ERIS_DB_SRC_PATH/bin/start_eris_db $INSTALL_BASE/erisdb-wrapper \ + && chmod 755 $INSTALL_BASE/erisdb-wrapper + #----------------------------------------------------------------------------- # clean up [build container needs to be separated from shipped container]