94183e0f52
To finally end the discussion what Dockerfile should be used for what and whether we should build from local source or check out from git, we place both Dockerfiles next to each other and explicitly document their purpose.
38 lines
988 B
Docker
38 lines
988 B
Docker
FROM golang:1.13-alpine as builder
|
|
|
|
LABEL maintainer="Olaoluwa Osuntokun <laolu@lightning.engineering>"
|
|
|
|
# Force Go to use the cgo based DNS resolver. This is required to ensure DNS
|
|
# queries required to connect to linked containers succeed.
|
|
ENV GODEBUG netdns=cgo
|
|
|
|
# Install dependencies and install/build lnd.
|
|
RUN apk add --no-cache --update alpine-sdk \
|
|
git \
|
|
make
|
|
|
|
# Copy in the local repository to build from.
|
|
COPY . /go/src/github.com/lightningnetwork/lnd
|
|
|
|
RUN cd /go/src/github.com/lightningnetwork/lnd \
|
|
&& make \
|
|
&& make install tags="signrpc walletrpc chainrpc invoicesrpc"
|
|
|
|
# Start a new, final image to reduce size.
|
|
FROM alpine as final
|
|
|
|
# Expose lnd ports (server, rpc).
|
|
EXPOSE 9735 10009
|
|
|
|
# Copy the binaries and entrypoint from the builder image.
|
|
COPY --from=builder /go/bin/lncli /bin/
|
|
COPY --from=builder /go/bin/lnd /bin/
|
|
|
|
# Add bash.
|
|
RUN apk add --no-cache \
|
|
bash
|
|
|
|
# Copy the entrypoint script.
|
|
COPY "docker/lnd/start-lnd.sh" .
|
|
RUN chmod +x start-lnd.sh
|