diff --git a/doc/build.md b/doc/build.md index 8b46268ad..53fb3d5f4 100644 --- a/doc/build.md +++ b/doc/build.md @@ -96,12 +96,15 @@ grin client help ```sh docker build -t grin -f etc/Dockerfile . ``` +For floonet, use `etc/Dockerfile.floonet` instead You can bind-mount your grin cache to run inside the container. ```sh docker run -it -d -v $HOME/.grin:/root/.grin grin ``` +If you prefer to use a docker named volume, you can pass `-v dotgrin:/root/.grin` instead. +Using a named volume copies default configurations upon volume creation ## Cross-platform builds diff --git a/etc/Dockerfile b/etc/Dockerfile index f11e7de55..5b45ba5b1 100644 --- a/etc/Dockerfile +++ b/etc/Dockerfile @@ -36,9 +36,14 @@ ENV LANG en_US.UTF-8 COPY --from=builder /usr/src/grin/target/release/grin /usr/local/bin/grin WORKDIR /root/.grin + RUN grin server config && \ sed -i -e 's/run_tui = true/run_tui = false/' grin-server.toml -EXPOSE 13413 13414 13415 13416 +VOLUME ["/root/.grin"] -ENTRYPOINT ["grin", "server", "run"] +EXPOSE 3413 3414 3415 3416 + +ENTRYPOINT ["grin"] + +CMD ["server", "run"] diff --git a/etc/Dockerfile.floonet b/etc/Dockerfile.floonet new file mode 100644 index 000000000..89c60e0ba --- /dev/null +++ b/etc/Dockerfile.floonet @@ -0,0 +1,49 @@ +# Multistage docker build, requires docker 17.05 + +# builder stage +FROM rust:1.31 as builder + +RUN set -ex && \ + apt-get update && \ + apt-get --no-install-recommends --yes install \ + clang \ + libclang-dev \ + llvm-dev \ + libncurses5 \ + libncursesw5 \ + cmake \ + git + +WORKDIR /usr/src/grin + +# Copying Grin +COPY . . + +# Building Grin +RUN cargo build --release + +# runtime stage +FROM debian:9.4 + +RUN apt-get update && DEBIAN_FRONTEND=noninteractive apt-get install -y locales openssl + +RUN sed -i -e 's/# en_US.UTF-8 UTF-8/en_US.UTF-8 UTF-8/' /etc/locale.gen && \ + dpkg-reconfigure --frontend=noninteractive locales && \ + update-locale LANG=en_US.UTF-8 + +ENV LANG en_US.UTF-8 + +COPY --from=builder /usr/src/grin/target/release/grin /usr/local/bin/grin + +WORKDIR /root/.grin + +RUN grin --floonet server config && \ + sed -i -e 's/run_tui = true/run_tui = false/' grin-server.toml + +VOLUME ["/root/.grin"] + +EXPOSE 13413 13414 13415 13416 + +ENTRYPOINT ["grin", "--floonet"] + +CMD ["server", "run"]