From 6c364f63cc28d33fd1d60806bb28fe7e93d5f993 Mon Sep 17 00:00:00 2001 From: Torrie Fischer Date: Wed, 4 Mar 2015 15:14:34 -0800 Subject: [PATCH] Build docker images on circleci based on travis.yml --- Builds/Docker/Dockerfile-testnet | 23 ++++++++++++++ circle.yml | 52 ++++++++++++++++++++++++++++++++ doc/Docker.md | 16 ++++++++++ 3 files changed, 91 insertions(+) create mode 100644 Builds/Docker/Dockerfile-testnet create mode 100644 circle.yml create mode 100644 doc/Docker.md diff --git a/Builds/Docker/Dockerfile-testnet b/Builds/Docker/Dockerfile-testnet new file mode 100644 index 0000000000..3ac9a15216 --- /dev/null +++ b/Builds/Docker/Dockerfile-testnet @@ -0,0 +1,23 @@ +FROM ubuntu +MAINTAINER Torrie Fischer + +RUN apt-get update -qq &&\ + apt-get install -qq software-properties-common &&\ + apt-add-repository -y ppa:ubuntu-toolchain-r/test &&\ + apt-add-repository -y ppa:afrank/boost &&\ + apt-get update -qq + +RUN apt-get purge -qq libboost1.48-dev &&\ + apt-get install -qq libprotobuf8 libboost1.57-all-dev + +RUN mkdir -p /srv/rippled/data + +VOLUME /srv/rippled/data/ + +ENTRYPOINT ["/srv/rippled/bin/rippled"] +CMD ["--conf", "/srv/rippled/data/rippled.cfg"] +EXPOSE 51235/udp +EXPOSE 5005/tcp + +ADD ./rippled.cfg /srv/rippled/data/rippled.cfg +ADD ./rippled /srv/rippled/bin/ diff --git a/circle.yml b/circle.yml new file mode 100644 index 0000000000..3426bab2f1 --- /dev/null +++ b/circle.yml @@ -0,0 +1,52 @@ +machine: + services: + - docker +dependencies: + pre: + - sudo apt-add-repository -y 'deb http://llvm.org/apt/precise/ llvm-toolchain-precise-3.4 main' + - sudo apt-add-repository -y ppa:ubuntu-toolchain-r/test + - sudo add-apt-repository -y ppa:afrank/boost + - wget -q -O - http://llvm.org/apt/llvm-snapshot.gpg.key | sudo apt-key add - + - sudo apt-get update -qq + - sudo apt-get purge -qq libboost1.48-dev + - sudo apt-get install -qq libboost1.57-all-dev + - sudo apt-get install -qq clang-3.4 gcc-4.8 scons protobuf-compiler libprotobuf-dev libssl-dev exuberant-ctags + - sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-4.8 99 --slave /usr/bin/g++ g++ /usr/bin/g++-4.8 + - sudo update-alternatives --install /usr/bin/clang clang /usr/bin/clang-3.4 99 --slave /usr/bin/clang++ clang++ /usr/bin/clang++-3.4 + - gcc --version + - clang --version +test: + pre: + - scons clang.debug + override: + - | # create gdb script + echo "set env MALLOC_CHECK_=3" > script.gdb + echo "run" >> script.gdb + echo "backtrace full" >> script.gdb + # gdb --help + - cat script.gdb | gdb --ex 'set print thread-events off' --return-child-result --args build/clang.debug/rippled --unittest + - npm install + # Use build/(gcc|clang).debug/rippled + - | + echo "exports.default_server_config = {\"rippled_path\" : \"$HOME/rippled/build/clang.debug/rippled\"};" > test/config.js + + # Run integration tests + - npm test + post: + - mkdir -p build/docker/ + - cp doc/rippled-example.cfg build/clang.debug/rippled build/docker/ + - cp Builds/Docker/Dockerfile-testnet build/docker/Dockerfile + - mv build/docker/rippled-example.cfg build/docker/rippled.cfg + - strip build/docker/rippled + - docker build -t ripple/rippled:$CIRCLE_SHA1 build/docker/ + - docker tag ripple/rippled:$CIRCLE_SHA1 ripple/rippled:latest + - docker tag ripple/rippled:$CIRCLE_SHA1 ripple/rippled:$CIRCLE_BRANCH + - docker images +deployment: + docker: + branch: /.*/ + commands: + - docker login -e $DOCKER_EMAIL -u $DOCKER_USERNAME -p $DOCKER_PASSWORD + - docker push ripple/rippled:$CIRCLE_SHA1 + - docker push ripple/rippled:$CIRCLE_BRANCH + - docker push ripple/rippled:latest diff --git a/doc/Docker.md b/doc/Docker.md new file mode 100644 index 0000000000..d0103fbd9a --- /dev/null +++ b/doc/Docker.md @@ -0,0 +1,16 @@ +# Rippled Docker Image + +Rippled has a continuous deployment pipeline that turns every git commit into a +docker image for quick testing and deployment. + +To run the tip of the latest release via docker: + +```$ docker run -P -v /srv/rippled/ ripple/rippled:latest``` + +To run the tip of active development: + +```$ docker run -P -v /srv/rippled/ ripple/rippled:develop``` + +Where ```/srv/rippled``` points to a directory containing a rippled.cfg and +database files. By default, port 5005/tcp maps to the RPC port and 51235/udp to +the peer port.