A Python port of the Invisible Internet Project (I2P)
1FROM python:3.11-slim
2
3RUN apt-get update && apt-get install -y --no-install-recommends gcc libffi-dev && rm -rf /var/lib/apt/lists/*
4RUN pip install --no-cache-dir pytest pytest-asyncio
5
6# Copy all packages
7COPY i2p-py-util /src/i2p-py-util
8COPY i2p-py-stat /src/i2p-py-stat
9COPY i2p-py-time /src/i2p-py-time
10COPY i2p-py-kademlia /src/i2p-py-kademlia
11
12COPY i2p-py-crypto-aes /src/i2p-py-crypto-aes
13COPY i2p-py-crypto-chacha /src/i2p-py-crypto-chacha
14COPY i2p-py-crypto-dsa /src/i2p-py-crypto-dsa
15COPY i2p-py-crypto-eddsa /src/i2p-py-crypto-eddsa
16COPY i2p-py-crypto-elgamal /src/i2p-py-crypto-elgamal
17COPY i2p-py-crypto-garlic /src/i2p-py-crypto-garlic
18COPY i2p-py-crypto-hash /src/i2p-py-crypto-hash
19COPY i2p-py-crypto-hkdf /src/i2p-py-crypto-hkdf
20COPY i2p-py-crypto-hmac /src/i2p-py-crypto-hmac
21COPY i2p-py-crypto-mlkem /src/i2p-py-crypto-mlkem
22COPY i2p-py-crypto-noise /src/i2p-py-crypto-noise
23COPY i2p-py-crypto-session-keys /src/i2p-py-crypto-session-keys
24COPY i2p-py-crypto-siphash /src/i2p-py-crypto-siphash
25COPY i2p-py-crypto-x25519 /src/i2p-py-crypto-x25519
26
27COPY i2p-py-data-core /src/i2p-py-data-core
28COPY i2p-py-data-i2np /src/i2p-py-data-i2np
29COPY i2p-py-data-remaining /src/i2p-py-data-remaining
30COPY i2p-py-data-router /src/i2p-py-data-router
31
32COPY i2p-py-transport-base /src/i2p-py-transport-base
33COPY i2p-py-transport-ntcp2 /src/i2p-py-transport-ntcp2
34COPY i2p-py-transport-ssu2 /src/i2p-py-transport-ssu2
35
36COPY i2p-py-netdb /src/i2p-py-netdb
37COPY i2p-py-peer /src/i2p-py-peer
38COPY i2p-py-streaming /src/i2p-py-streaming
39COPY i2p-py-tunnel /src/i2p-py-tunnel
40COPY i2p-py-router /src/i2p-py-router
41COPY i2p-py-sam /src/i2p-py-sam
42COPY i2p-py-client /src/i2p-py-client
43COPY i2p-py-apps /src/i2p-py-apps
44
45# Install all packages in dependency order (leaves first)
46RUN pip install --no-cache-dir \
47 /src/i2p-py-util \
48 /src/i2p-py-stat \
49 /src/i2p-py-time \
50 /src/i2p-py-kademlia \
51 /src/i2p-py-crypto-aes \
52 /src/i2p-py-crypto-chacha \
53 /src/i2p-py-crypto-dsa \
54 /src/i2p-py-crypto-eddsa \
55 /src/i2p-py-crypto-elgamal \
56 /src/i2p-py-crypto-hash \
57 /src/i2p-py-crypto-hkdf \
58 /src/i2p-py-crypto-hmac \
59 /src/i2p-py-crypto-mlkem \
60 /src/i2p-py-crypto-siphash \
61 /src/i2p-py-crypto-x25519 \
62 /src/i2p-py-crypto-session-keys \
63 /src/i2p-py-crypto-garlic \
64 /src/i2p-py-crypto-noise \
65 /src/i2p-py-data-core \
66 /src/i2p-py-data-i2np \
67 /src/i2p-py-data-remaining \
68 /src/i2p-py-data-router \
69 /src/i2p-py-transport-base \
70 /src/i2p-py-transport-ntcp2 \
71 /src/i2p-py-transport-ssu2 \
72 /src/i2p-py-netdb \
73 /src/i2p-py-peer \
74 /src/i2p-py-streaming \
75 /src/i2p-py-tunnel \
76 /src/i2p-py-router \
77 /src/i2p-py-sam \
78 /src/i2p-py-client \
79 /src/i2p-py-apps
80
81WORKDIR /src