Skip to content

Commit c348d05

Browse files
add Dockerfile for building 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 c348d05

File tree

3 files changed

+29
-1
lines changed

3 files changed

+29
-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: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
FROM rust:1.91.1-slim@sha256:cef0ec962e08d8b5dcba05604189e5751c1bd3ec7d12db0a93e4215468d4ac4a AS builder
2+
3+
ARG BUILD_FEATURES=""
4+
5+
WORKDIR /opt/app
6+
7+
COPY Cargo.* ./
8+
COPY ldk-server/ ldk-server/
9+
COPY ldk-server-cli/ ldk-server-cli/
10+
COPY ldk-server-client/ ldk-server-client/
11+
COPY ldk-server-protos/ ldk-server-protos/
12+
RUN --mount=type=cache,target=/usr/local/cargo/registry \
13+
if [ -n "$BUILD_FEATURES" ]; then \
14+
cargo build --release --features "$BUILD_FEATURES"; \
15+
else \
16+
cargo build --release; \
17+
fi
18+
19+
FROM debian:13.1-slim@sha256:1caf1c703c8f7e15dcf2e7769b35000c764e6f50e4d7401c355fb0248f3ddfdb
20+
21+
COPY --from=builder /opt/app/target/release/ldk-server /usr/local/bin/ldk-server
22+
COPY --from=builder /opt/app/target/release/ldk-server-cli /usr/local/bin/ldk-server-cli
23+
COPY --from=builder /opt/app/ldk-server/ldk-server-config.toml /usr/local/bin/ldk-server-config.toml
24+
25+
EXPOSE 3000 3001
26+
27+
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)