diff --git a/.travis.yml b/.travis.yml index 34e0fe7..e3cd2f7 100644 --- a/.travis.yml +++ b/.travis.yml @@ -2,9 +2,8 @@ after_script: - docker images before_script: - - env | sort - cd "$VERSION" - - image="bitcoind:$VERSION" + - IMAGE="bitcoind:$VERSION" env: - VERSION=0.12 @@ -15,7 +14,7 @@ env: language: bash script: - - docker build -t "$image" . - - docker run "$image" --version | grep "Bitcoin Core" + - docker build -t "$IMAGE" . + - docker run "$IMAGE" --version | grep "Bitcoin Core" services: docker diff --git a/0.11/Dockerfile b/0.11/Dockerfile index d86bb3d..9c8f221 100644 --- a/0.11/Dockerfile +++ b/0.11/Dockerfile @@ -2,9 +2,9 @@ FROM debian:latest MAINTAINER Rui Marinho (@ruimarinho) -RUN groupadd -r bitcoin && useradd -r -g bitcoin bitcoin +RUN useradd -r bitcoin -ENV GOSU_VERSION "1.7" +ENV GOSU_VERSION=1.7 RUN apt-get update -y \ && apt-get install -y curl \ @@ -13,23 +13,23 @@ RUN apt-get update -y \ RUN gpg --keyserver hkp://p80.pool.sks-keyservers.net:80 --recv-keys B42F6819007F00F88E364FD4036A9C25BF357DD4 -RUN curl -o /usr/local/bin/gosu -fSL "https://github.com/tianon/gosu/releases/download/${GOSU_VERSION}/gosu-$(dpkg --print-architecture)" \ - && curl -o /usr/local/bin/gosu.asc -fSL "https://github.com/tianon/gosu/releases/download/${GOSU_VERSION}/gosu-$(dpkg --print-architecture).asc" \ +RUN curl -o /usr/local/bin/gosu -fSL https://github.com/tianon/gosu/releases/download/${GOSU_VERSION}/gosu-$(dpkg --print-architecture) \ + && curl -o /usr/local/bin/gosu.asc -fSL https://github.com/tianon/gosu/releases/download/${GOSU_VERSION}/gosu-$(dpkg --print-architecture).asc \ && gpg --verify /usr/local/bin/gosu.asc \ && rm /usr/local/bin/gosu.asc \ && chmod +x /usr/local/bin/gosu -ENV BITCOIN_DATA /home/bitcoin/.bitcoin -ENV BITCOIN_VERSION 0.11.2 -ENV PATH /opt/bitcoin-${BITCOIN_VERSION}/bin:$PATH +ENV BITCOIN_VERSION=0.11.2 +ENV BITCOIN_DATA=/home/bitcoin/.bitcoin \ + PATH=/opt/bitcoin-${BITCOIN_VERSION}/bin:$PATH RUN curl -SL https://bitcoin.org/laanwj-releases.asc | gpg --import \ - && curl -SLO "https://bitcoin.org/bin/bitcoin-core-${BITCOIN_VERSION}/SHA256SUMS.asc" \ - && curl -SLO "https://bitcoin.org/bin/bitcoin-core-${BITCOIN_VERSION}/bitcoin-${BITCOIN_VERSION}-linux64.tar.gz" \ + && curl -SLO https://bitcoin.org/bin/bitcoin-core-${BITCOIN_VERSION}/SHA256SUMS.asc \ + && curl -SLO https://bitcoin.org/bin/bitcoin-core-${BITCOIN_VERSION}/bitcoin-${BITCOIN_VERSION}-linux64.tar.gz \ && gpg --verify SHA256SUMS.asc \ && grep " bitcoin-${BITCOIN_VERSION}-linux64.tar.gz\$" SHA256SUMS.asc | sha256sum -c - \ - && tar -xzf "bitcoin-${BITCOIN_VERSION}-linux64.tar.gz" -C /opt \ - && rm "bitcoin-${BITCOIN_VERSION}-linux64.tar.gz" SHA256SUMS.asc + && tar -xzf bitcoin-${BITCOIN_VERSION}-linux64.tar.gz -C /opt \ + && rm bitcoin-${BITCOIN_VERSION}-linux64.tar.gz SHA256SUMS.asc VOLUME ["/home/bitcoin/.bitcoin"] diff --git a/0.11/alpine/Dockerfile b/0.11/alpine/Dockerfile index 322c945..2f06e27 100644 --- a/0.11/alpine/Dockerfile +++ b/0.11/alpine/Dockerfile @@ -2,37 +2,36 @@ FROM alpine:latest MAINTAINER Rui Marinho (@ruimarinho) -RUN set -eof pipefail +RUN adduser -S bitcoin -RUN addgroup bitcoin && adduser -S -G bitcoin bitcoin - -ENV GOSU_VERSION "1.7" -ENV GOSU_SHASUM "34049cfc713e8b74b90d6de49690fa601dc040021980812b2f1f691534be8a50 /usr/local/bin/gosu" +ENV GOSU_VERSION=1.7 \ + GOSU_SHASUM="34049cfc713e8b74b90d6de49690fa601dc040021980812b2f1f691534be8a50 /usr/local/bin/gosu" RUN apk --no-cache add openssl \ - && wget -O /usr/local/bin/gosu "https://github.com/tianon/gosu/releases/download/${GOSU_VERSION}/gosu-amd64" \ + && wget -O /usr/local/bin/gosu https://github.com/tianon/gosu/releases/download/${GOSU_VERSION}/gosu-amd64 \ && echo "${GOSU_SHASUM}" | sha256sum -c \ && chmod +x /usr/local/bin/gosu -ENV BERKELEYDB_VERSION "db-4.8.30.NC" -ENV BERKELEYDB_PREFIX "/opt/${BERKELEYDB_VERSION}" -ENV BITCOIN_VERSION "0.11.2" -ENV BITCOIN_PREFIX "/opt/bitcoin-${BITCOIN_VERSION}" -ENV BITCOIN_SHASUM "aab2cd0c4f045970d259cf9fcee5785b43180d20ccbbedc1f90480e697696b25 v${BITCOIN_VERSION}.tar.gz" -ENV BITCOIN_DATA "/home/bitcoin/.bitcoin" -ENV PATH "${BITCOIN_PREFIX}/bin:$PATH" +ENV BERKELEYDB_VERSION=db-4.8.30.NC +ENV BERKELEYDB_PREFIX=/opt/${BERKELEYDB_VERSION} + +ENV BITCOIN_VERSION=0.11.2 +ENV BITCOIN_PREFIX=/opt/bitcoin-${BITCOIN_VERSION} \ + BITCOIN_SHASUM="aab2cd0c4f045970d259cf9fcee5785b43180d20ccbbedc1f90480e697696b25 v${BITCOIN_VERSION}.tar.gz" \ + BITCOIN_DATA=/home/bitcoin/.bitcoin +ENV PATH=${BITCOIN_PREFIX}/bin:$PATH RUN apk --no-cache --virtual build-dependendencies add autoconf \ - automake \ - boost-dev \ - build-base \ - chrpath \ - libevent-dev \ - libtool \ - linux-headers \ - openssl-dev \ - protobuf-dev \ - zeromq-dev \ + automake \ + boost-dev \ + build-base \ + chrpath \ + libevent-dev \ + libtool \ + linux-headers \ + openssl-dev \ + protobuf-dev \ + zeromq-dev \ && mkdir -p /tmp/build \ && wget -O /tmp/build/${BERKELEYDB_VERSION}.tar.gz "http://download.oracle.com/berkeley-db/${BERKELEYDB_VERSION}.tar.gz" \ && tar -xzf "/tmp/build/${BERKELEYDB_VERSION}.tar.gz" -C /tmp/build/ \ diff --git a/0.12/Dockerfile b/0.12/Dockerfile index bc18a17..782e616 100644 --- a/0.12/Dockerfile +++ b/0.12/Dockerfile @@ -2,9 +2,9 @@ FROM debian:latest MAINTAINER Rui Marinho (@ruimarinho) -RUN groupadd -r bitcoin && useradd -r -g bitcoin bitcoin +RUN useradd -r bitcoin -ENV GOSU_VERSION "1.7" +ENV GOSU_VERSION=1.7 RUN apt-get update -y \ && apt-get install -y curl \ @@ -13,23 +13,23 @@ RUN apt-get update -y \ RUN gpg --keyserver hkp://p80.pool.sks-keyservers.net:80 --recv-keys B42F6819007F00F88E364FD4036A9C25BF357DD4 -RUN curl -o /usr/local/bin/gosu -fSL "https://github.com/tianon/gosu/releases/download/${GOSU_VERSION}/gosu-$(dpkg --print-architecture)" \ - && curl -o /usr/local/bin/gosu.asc -fSL "https://github.com/tianon/gosu/releases/download/${GOSU_VERSION}/gosu-$(dpkg --print-architecture).asc" \ +RUN curl -o /usr/local/bin/gosu -fSL https://github.com/tianon/gosu/releases/download/${GOSU_VERSION}/gosu-$(dpkg --print-architecture) \ + && curl -o /usr/local/bin/gosu.asc -fSL https://github.com/tianon/gosu/releases/download/${GOSU_VERSION}/gosu-$(dpkg --print-architecture).asc \ && gpg --verify /usr/local/bin/gosu.asc \ && rm /usr/local/bin/gosu.asc \ && chmod +x /usr/local/bin/gosu -ENV BITCOIN_DATA /home/bitcoin/.bitcoin -ENV BITCOIN_VERSION 0.12.0 -ENV PATH /opt/bitcoin-${BITCOIN_VERSION}/bin:$PATH +ENV BITCOIN_VERSION=0.12.0 +ENV BITCOIN_DATA=/home/bitcoin/.bitcoin \ + PATH=/opt/bitcoin-${BITCOIN_VERSION}/bin:$PATH RUN curl -SL https://bitcoin.org/laanwj-releases.asc | gpg --import \ - && curl -SLO "https://bitcoin.org/bin/bitcoin-core-${BITCOIN_VERSION}/SHA256SUMS.asc" \ - && curl -SLO "https://bitcoin.org/bin/bitcoin-core-${BITCOIN_VERSION}/bitcoin-${BITCOIN_VERSION}-linux64.tar.gz" \ + && curl -SLO https://bitcoin.org/bin/bitcoin-core-${BITCOIN_VERSION}/SHA256SUMS.asc \ + && curl -SLO https://bitcoin.org/bin/bitcoin-core-${BITCOIN_VERSION}/bitcoin-${BITCOIN_VERSION}-linux64.tar.gz \ && gpg --verify SHA256SUMS.asc \ && grep " bitcoin-${BITCOIN_VERSION}-linux64.tar.gz\$" SHA256SUMS.asc | sha256sum -c - \ - && tar -xzf "bitcoin-${BITCOIN_VERSION}-linux64.tar.gz" -C /opt \ - && rm "bitcoin-${BITCOIN_VERSION}-linux64.tar.gz" SHA256SUMS.asc + && tar -xzf bitcoin-${BITCOIN_VERSION}-linux64.tar.gz -C /opt \ + && rm bitcoin-${BITCOIN_VERSION}-linux64.tar.gz SHA256SUMS.asc VOLUME ["/home/bitcoin/.bitcoin"] diff --git a/0.12/alpine/Dockerfile b/0.12/alpine/Dockerfile index 5fcec33..7af305b 100644 --- a/0.12/alpine/Dockerfile +++ b/0.12/alpine/Dockerfile @@ -2,53 +2,52 @@ FROM alpine:latest MAINTAINER Rui Marinho (@ruimarinho) -RUN set -eof pipefail +RUN adduser -S bitcoin -RUN addgroup bitcoin && adduser -S -G bitcoin bitcoin - -ENV GOSU_VERSION "1.7" -ENV GOSU_SHASUM "34049cfc713e8b74b90d6de49690fa601dc040021980812b2f1f691534be8a50 /usr/local/bin/gosu" +ENV GOSU_VERSION=1.7 \ + GOSU_SHASUM="34049cfc713e8b74b90d6de49690fa601dc040021980812b2f1f691534be8a50 /usr/local/bin/gosu" RUN apk --no-cache add openssl \ - && wget -O /usr/local/bin/gosu "https://github.com/tianon/gosu/releases/download/${GOSU_VERSION}/gosu-amd64" \ + && wget -O /usr/local/bin/gosu https://github.com/tianon/gosu/releases/download/${GOSU_VERSION}/gosu-amd64 \ && echo "${GOSU_SHASUM}" | sha256sum -c \ && chmod +x /usr/local/bin/gosu -ENV BERKELEYDB_VERSION "db-4.8.30.NC" -ENV BERKELEYDB_PREFIX "/opt/${BERKELEYDB_VERSION}" -ENV BITCOIN_VERSION "0.12.0" -ENV BITCOIN_PREFIX "/opt/bitcoin-${BITCOIN_VERSION}" -ENV BITCOIN_SHASUM "92b1b6e1f49e74c914ff3dd43e97bb1859bcd3239310b5fe54db326aba1fd0a5 v${BITCOIN_VERSION}.tar.gz" -ENV BITCOIN_DATA "/home/bitcoin/.bitcoin" -ENV PATH "${BITCOIN_PREFIX}/bin:$PATH" +ENV BERKELEYDB_VERSION=db-4.8.30.NC +ENV BERKELEYDB_PREFIX=/opt/${BERKELEYDB_VERSION} + +ENV BITCOIN_VERSION=0.12.0 +ENV BITCOIN_PREFIX=/opt/bitcoin-${BITCOIN_VERSION} \ + BITCOIN_SHASUM="92b1b6e1f49e74c914ff3dd43e97bb1859bcd3239310b5fe54db326aba1fd0a5 v${BITCOIN_VERSION}.tar.gz" \ + BITCOIN_DATA=/home/bitcoin/.bitcoin +ENV PATH=${BITCOIN_PREFIX}/bin:$PATH RUN apk --no-cache --virtual build-dependendencies add autoconf \ - automake \ - boost-dev \ - build-base \ - chrpath \ - libevent-dev \ - libtool \ - linux-headers \ - openssl-dev \ - protobuf-dev \ - zeromq-dev \ + automake \ + boost-dev \ + build-base \ + chrpath \ + libevent-dev \ + libtool \ + linux-headers \ + openssl-dev \ + protobuf-dev \ + zeromq-dev \ && mkdir -p /tmp/build \ - && wget -O /tmp/build/${BERKELEYDB_VERSION}.tar.gz "http://download.oracle.com/berkeley-db/${BERKELEYDB_VERSION}.tar.gz" \ - && tar -xzf "/tmp/build/${BERKELEYDB_VERSION}.tar.gz" -C /tmp/build/ \ - && sed s/__atomic_compare_exchange/__atomic_compare_exchange_db/g -i "/tmp/build/${BERKELEYDB_VERSION}/dbinc/atomic.h" \ - && mkdir -p "${BERKELEYDB_PREFIX}" \ - && cd "/tmp/build/${BERKELEYDB_VERSION}/build_unix" \ - && ../dist/configure --enable-cxx --disable-shared --with-pic --prefix="${BERKELEYDB_PREFIX}" \ + && wget -O /tmp/build/${BERKELEYDB_VERSION}.tar.gz http://download.oracle.com/berkeley-db/${BERKELEYDB_VERSION}.tar.gz \ + && tar -xzf /tmp/build/${BERKELEYDB_VERSION}.tar.gz -C /tmp/build/ \ + && sed s/__atomic_compare_exchange/__atomic_compare_exchange_db/g -i /tmp/build/${BERKELEYDB_VERSION}/dbinc/atomic.h \ + && mkdir -p ${BERKELEYDB_PREFIX} \ + && cd /tmp/build/${BERKELEYDB_VERSION}/build_unix \ + && ../dist/configure --enable-cxx --disable-shared --with-pic --prefix=${BERKELEYDB_PREFIX} \ && make install \ - && wget -O "/tmp/build/v${BITCOIN_VERSION}.tar.gz" "https://github.com/bitcoin/bitcoin/archive/v${BITCOIN_VERSION}.tar.gz" \ + && wget -O /tmp/build/v${BITCOIN_VERSION}.tar.gz https://github.com/bitcoin/bitcoin/archive/v${BITCOIN_VERSION}.tar.gz \ && cd /tmp/build \ && echo "${BITCOIN_SHASUM}" | sha256sum -c \ && tar -xzf v${BITCOIN_VERSION}.tar.gz \ - && cd "/tmp/build/bitcoin-${BITCOIN_VERSION}" \ + && cd /tmp/build/bitcoin-${BITCOIN_VERSION} \ && ./autogen.sh \ - && ./configure LDFLAGS="-L${BERKELEYDB_PREFIX}/lib/" CPPFLAGS="-I${BERKELEYDB_PREFIX}/include/" \ - --prefix="${BITCOIN_PREFIX}" \ + && ./configure LDFLAGS=-L${BERKELEYDB_PREFIX}/lib/ CPPFLAGS=-I${BERKELEYDB_PREFIX}/include/ \ + --prefix=${BITCOIN_PREFIX} \ --mandir=/usr/share/man \ --disable-tests \ --disable-bench \ @@ -59,8 +58,8 @@ RUN apk --no-cache --virtual build-dependendencies add autoconf \ --with-daemon \ && make install \ && cd / \ - && strip "${BITCOIN_PREFIX}/bin/bitcoin-cli" "${BITCOIN_PREFIX}/bin/bitcoind" "${BITCOIN_PREFIX}/bin/bitcoin-tx" "${BITCOIN_PREFIX}/lib/libbitcoinconsensus.a" "${BITCOIN_PREFIX}/lib/libbitcoinconsensus.so.0.0.0" \ - && rm -rf "/tmp/build" "${BERKELEYDB_PREFIX}/docs" \ + && strip ${BITCOIN_PREFIX}/bin/bitcoin-cli ${BITCOIN_PREFIX}/bin/bitcoind ${BITCOIN_PREFIX}/bin/bitcoin-tx ${BITCOIN_PREFIX}/lib/libbitcoinconsensus.a ${BITCOIN_PREFIX}/lib/libbitcoinconsensus.so.0.0.0 \ + && rm -rf /tmp/build ${BERKELEYDB_PREFIX}/docs \ && apk --no-cache --purge del build-dependendencies \ && apk --no-cache add boost \ boost-program_options \ diff --git a/LICENSE b/LICENSE index 819ace4..1400239 100644 --- a/LICENSE +++ b/LICENSE @@ -1,6 +1,6 @@ The MIT License (MIT) -Copyright (c) 2015 Seegno +Copyright (c) 2015-2016 Seegno Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/README.md b/README.md index 099e2cc..5b0a684 100644 --- a/README.md +++ b/README.md @@ -43,20 +43,7 @@ $ docker run -v ${PWD}/data:/home/bitcoin/.bitcoin -it --rm seegno/bitcoind \ -regtest=1 ``` -You can optionally create a `Dockerfile` in the root of your application directory: - -```Dockerfile -FROM seegno/bitcoind -``` - -Then simply run: - -```sh -$ docker build -t my/bitcoind -$ docker run --rm -it my/bitcoind -``` - -Or with `docker-compose`: +You can optionally create a service using `docker-compose`: ```yml bitcoind: @@ -87,7 +74,7 @@ This image is officially supported on Docker version 1.10, with support for olde [License information](https://github.com/seegno/docker-bitcoind/blob/master/LICENSE) for the [seegno/docker-bitcoind](https://hub.docker.com/r/seegno/bitcoind) docker project. [docker-hub-url]: https://hub.docker.com/r/seegno/bitcoind -[docker-layers-image]: https://img.shields.io/imagelayers/layers/seegno/bitcoind/latest.svg -[docker-pulls-image]: https://img.shields.io/docker/pulls/seegno/bitcoind.svg -[docker-size-image]: https://img.shields.io/imagelayers/image-size/seegno/bitcoind/latest.svg -[docker-stars-image]: https://img.shields.io/docker/stars/seegno/bitcoind.svg +[docker-layers-image]: https://img.shields.io/imagelayers/layers/seegno/bitcoind/latest.svg?style=flat-square +[docker-pulls-image]: https://img.shields.io/docker/pulls/seegno/bitcoind.svg?style=flat-square +[docker-size-image]: https://img.shields.io/imagelayers/image-size/seegno/bitcoind/latest.svg?style=flat-square +[docker-stars-image]: https://img.shields.io/docker/stars/seegno/bitcoind.svg?style=flat-square