You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
60 lines
1.9 KiB
60 lines
1.9 KiB
FROM golang:1.16.3-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"]
|
|
|