Skip to content

Commit 02c28a1

Browse files
add Dockerfile for building ldk-server with configurable features
Implements multi-stage build to produce a small final image by discarding build dependencies. Supports optional BUILD_FEATURES for additional features, with cached compilation in builder stage.
1 parent ae2535f commit 02c28a1

File tree

3 files changed

+42
-1
lines changed

3 files changed

+42
-1
lines changed

.dockerignore

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
/target

Dockerfile

Lines changed: 40 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,40 @@
1+
FROM debian:13.1-slim@sha256:1caf1c703c8f7e15dcf2e7769b35000c764e6f50e4d7401c355fb0248f3ddfdb AS builder
2+
3+
ARG BUILD_FEATURES=""
4+
5+
RUN apt-get update && apt-get install -y \
6+
build-essential \
7+
cmake \
8+
curl \
9+
git \
10+
libssl-dev \
11+
pkg-config
12+
13+
RUN curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y
14+
ENV PATH="/root/.cargo/bin:${PATH}"
15+
RUN rustup default 1.90.0
16+
17+
WORKDIR /opt/app
18+
19+
COPY Cargo.* ./
20+
COPY ldk-server/ ldk-server/
21+
COPY ldk-server-cli/ ldk-server-cli/
22+
COPY ldk-server-client/ ldk-server-client/
23+
COPY ldk-server-protos/ ldk-server-protos/
24+
RUN --mount=type=cache,target=/usr/local/cargo/registry \
25+
if [ -n "$BUILD_FEATURES" ]; then \
26+
cargo build --release --features "$BUILD_FEATURES"; \
27+
else \
28+
cargo build --release; \
29+
fi
30+
31+
FROM debian:13.1-slim@sha256:1caf1c703c8f7e15dcf2e7769b35000c764e6f50e4d7401c355fb0248f3ddfdb
32+
33+
COPY --from=builder /opt/app/target/release/ldk-server /usr/local/bin/ldk-server
34+
COPY --from=builder /opt/app/target/release/ldk-server-cli /usr/local/bin/ldk-server-cli
35+
COPY --from=builder /opt/app/ldk-server/ldk-server-config.toml /usr/local/bin/ldk-server-config.toml
36+
RUN chmod +x /usr/local/bin/ldk-server
37+
38+
EXPOSE 3000 3001
39+
40+
ENTRYPOINT [ "ldk-server", "/usr/local/bin/ldk-server-config.toml" ]

ldk-server/ldk-server-config.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
[node]
33
network = "regtest" # Bitcoin network to use
44
listening_address = "localhost:3001" # Lightning node listening address
5-
rest_service_address = "127.0.0.1:3002" # LDK Server REST address
5+
rest_service_address = "127.0.0.1:3000" # LDK Server REST address
66

77
# Storage settings
88
[storage.disk]

0 commit comments

Comments
 (0)