docker compose & co.
1# Use the official Debian stable slim image
2FROM debian:stable-slim AS base
3
4# prevent interactive prompts during package installation
5ARG DEBIAN_FRONTEND=noninteractive
6
7# Install dependencies
8RUN apt-get update && apt-get install -y --no-install-recommends \
9 libboost-dev \
10 libboost-chrono-dev \
11 libboost-date-time-dev \
12 libboost-filesystem-dev \
13 libboost-program-options-dev \
14 libboost-system-dev \
15 libboost-thread-dev \
16 libssl-dev \
17 zlib1g-dev
18
19FROM base AS builder
20
21# Install build dependencies
22RUN apt-get install -y --no-install-recommends \
23 make \
24 gcc g++
25
26# Copy sources into the layer
27COPY . /opt/i2pd-tools
28WORKDIR /opt/i2pd-tools
29
30# Build all the tools
31RUN make -j"$(nproc)"
32
33FROM base
34
35# Copy binaries to base layer
36COPY --from=builder \
37 /opt/i2pd-tools/autoconf \
38 /opt/i2pd-tools/keygen \
39 /opt/i2pd-tools/keyinfo \
40 /opt/i2pd-tools/famtool \
41 /opt/i2pd-tools/i2pbase64 \
42 /opt/i2pd-tools/regaddr \
43 /opt/i2pd-tools/regaddralias \
44 /opt/i2pd-tools/routerinfo \
45 /opt/i2pd-tools/vain \
46 /opt/i2pd-tools/b33address \
47 /opt/i2pd-tools/offlinekeys \
48 /opt/i2pd-tools/regaddr_3ld \
49 /opt/i2pd-tools/verifyhost \
50 /opt/i2pd-tools/x25519 \
51 /usr/local/bin/
52
53WORKDIR /data
54
55# Drop into a shell by default so you can run any tool interactively
56CMD ["bash"]
57