f5f0b2107b
There was a recent change merged into btcd that isn't backward compatible with older RPC clients. To make sure our docker quick start example still works, we need to pin down btcd to the version that is still compatible with lnd.
61 lines
1.9 KiB
Docker
61 lines
1.9 KiB
Docker
FROM golang:1.12-alpine as builder
|
|
|
|
LABEL maintainer="Olaoluwa Osuntokun <laolu@lightning.engineering>"
|
|
|
|
# Install build dependencies such as git and glide.
|
|
RUN apk add --no-cache git gcc musl-dev
|
|
|
|
WORKDIR $GOPATH/src/github.com/btcsuite/btcd
|
|
|
|
# Pin down btcd to a version that we know works with lnd.
|
|
ARG BTCD_VERSION=v0.20.1-beta
|
|
|
|
# Grab and install the latest version of of btcd and all related dependencies.
|
|
RUN git clone https://github.com/btcsuite/btcd.git . \
|
|
&& git checkout $BTCD_VERSION \
|
|
&& GO111MODULE=on go install -v . ./cmd/...
|
|
|
|
# Start a new image
|
|
FROM alpine as final
|
|
|
|
# Expose mainnet ports (server, rpc)
|
|
EXPOSE 8333 8334
|
|
|
|
# Expose testnet ports (server, rpc)
|
|
EXPOSE 18333 18334
|
|
|
|
# Expose simnet ports (server, rpc)
|
|
EXPOSE 18555 18556
|
|
|
|
# Expose segnet ports (server, rpc)
|
|
EXPOSE 28901 28902
|
|
|
|
# Copy the compiled binaries from the builder image.
|
|
COPY --from=builder /go/bin/addblock /bin/
|
|
COPY --from=builder /go/bin/btcctl /bin/
|
|
COPY --from=builder /go/bin/btcd /bin/
|
|
COPY --from=builder /go/bin/findcheckpoint /bin/
|
|
COPY --from=builder /go/bin/gencerts /bin/
|
|
|
|
COPY "start-btcctl.sh" .
|
|
COPY "start-btcd.sh" .
|
|
|
|
RUN apk add --no-cache \
|
|
bash \
|
|
ca-certificates \
|
|
&& mkdir "/rpc" "/root/.btcd" "/root/.btcctl" \
|
|
&& touch "/root/.btcd/btcd.conf" \
|
|
&& chmod +x start-btcctl.sh \
|
|
&& chmod +x start-btcd.sh \
|
|
# Manually generate certificate and add all domains, it is needed to connect
|
|
# "btcctl" and "lnd" to "btcd" over docker links.
|
|
&& "/bin/gencerts" --host="*" --directory="/rpc" --force
|
|
|
|
# Create a volume to house pregenerated RPC credentials. This will be
|
|
# shared with any lnd, btcctl containers so they can securely query btcd's RPC
|
|
# server.
|
|
# You should NOT do this before certificate generation!
|
|
# Otherwise manually generated certificate will be overridden with shared
|
|
# mounted volume! For more info read dockerfile "VOLUME" documentation.
|
|
VOLUME ["/rpc"]
|