support floonet, separate entrypoint from cmd, add docker volume (#2265)

* support floonet, separate entrypoint from cmd, add docker volume

* Separate Dockerfile for floonet

* Spelling and docs
This commit is contained in:
Ahmed Kamal 2019-01-02 02:00:21 +02:00 committed by Ignotus Peverell
parent e0923753fa
commit daa712ae99
3 changed files with 59 additions and 2 deletions

View file

@ -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

View file

@ -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"]

49
etc/Dockerfile.floonet Normal file
View file

@ -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"]