Docker · 936 bytes Raw Blame History
1 # Test Dockerfile for ZephyrFS Node
2 FROM rust:1.75-slim as builder
3
4 # Install dependencies
5 RUN apt-get update && apt-get install -y \
6 pkg-config \
7 libssl-dev \
8 protobuf-compiler \
9 && rm -rf /var/lib/apt/lists/*
10
11 WORKDIR /app
12
13 # Copy source code
14 COPY . .
15
16 # Build the application
17 RUN cargo build --release
18
19 # Runtime stage
20 FROM debian:bookworm-slim
21
22 # Install runtime dependencies
23 RUN apt-get update && apt-get install -y \
24 ca-certificates \
25 wget \
26 && rm -rf /var/lib/apt/lists/*
27
28 WORKDIR /app
29
30 # Copy binary from builder
31 COPY --from=builder /app/target/release/zephyrfs-node .
32
33 # Create data directory
34 RUN mkdir -p /data
35
36 # Set environment variables
37 ENV RUST_LOG=debug
38 ENV RUST_BACKTRACE=1
39
40 # Expose ports
41 EXPOSE 4001 8080
42
43 # Health check
44 HEALTHCHECK --interval=30s --timeout=10s --start-period=30s --retries=3 \
45 CMD ./zephyrfs-node health-check || exit 1
46
47 # Run the node
48 CMD ["./zephyrfs-node", "start"]