decred / dcrdocker

Dockerfiles for Decred.
ISC License
10 stars 17 forks source link

Add dcrwallet (main and testnet) images #19

Closed jcvernaleo closed 2 years ago

jcvernaleo commented 7 years ago

This is extremely simple with one caveat, you need to create a wallet first (outside of docker). How to handle creation inside docker is a bit more complex and someone needs to think about it. Other than that, one could basically do:

#DOCKER_IMAGE_TAG=dcrwallet-mainnet
#mkdir .dcrwallet
#docker run -d --network=host -P -v $(pwd)/.dcrwallet/:/home/decred/.dcrwallet/ decred/$DOCKER_IMAGE_TAG

FROM ubuntu:xenial

LABEL description="Decred mainnet wallet"
LABEL version="1.0"
LABEL maintainer="john@netpurgatory.com"

ENV DCR_RELEASE v1.0.5
ENV TERM linux
ENV USER decred
ENV HOME /home/$USER
ENV DOTDCRD $HOME/.dcrd

# create user
RUN adduser --disabled-password --gecos '' $USER

RUN set -x && \

    # Update base distro & install build tooling
    DEBIAN_FRONTEND=noninteractive && \
    BUILD_DEPS=curl && \
    apt-get update && \
    apt-get install -qy $BUILD_DEPS && \

    # Decred release url and files
    DCR_RELEASE_URL="https://github.com/decred/decred-binaries/releases/download/$DCR_RELEASE" && \
    DCR_MANIFEST_FILE="manifest-$DCR_RELEASE.txt" && \
    DCR_RELEASE_NAME="decred-linux-amd64-$DCR_RELEASE" && \
    DCR_RELEASE_FILE="$DCR_RELEASE_NAME.tar.gz" && \

    # Import Decred gpg key
    gpg --keyserver pgp.mit.edu --recv-keys 0x518A031D && \

    # Download archives
    cd /tmp && \
    curl -SLO $DCR_RELEASE_URL/$DCR_RELEASE_FILE && \
    curl -SLO $DCR_RELEASE_URL/$DCR_MANIFEST_FILE && \
    curl -SLO $DCR_RELEASE_URL/$DCR_MANIFEST_FILE.asc && \

    # Verify signature and hash
    gpg --verify --trust-model=always $DCR_MANIFEST_FILE.asc && \
    grep "$DCR_RELEASE_FILE" $DCR_MANIFEST_FILE | sha256sum -c - && \
    rm -R $HOME/.gnupg && \

    # Extract and install
    tar xvzf $DCR_RELEASE_FILE && \
    mv $DCR_RELEASE_NAME/dcrwallet $HOME && \
    mkdir -p $DOTDCRD && \
    chown -R $USER.$USER $HOME && \

    # Cleanup
    apt-get -qy remove $BUILD_DEPS && \
    apt-get clean && \
    rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/*

# switch user for runtime
USER $USER
WORKDIR /home/$USER

# GRPC & RPC PORTS
EXPOSE 9111 9110

CMD ./dcrwallet -u user -P pass

and modify the dcrd-testnet file in the same way.

jcvernaleo commented 2 years ago

Looks like this repo isn't really used any more so closing this issue.