FROM python:3.11-slim RUN apt-get update && apt-get install -y --no-install-recommends gcc libffi-dev && rm -rf /var/lib/apt/lists/* RUN pip install --no-cache-dir pytest pytest-asyncio # Copy all packages COPY i2p-py-util /src/i2p-py-util COPY i2p-py-stat /src/i2p-py-stat COPY i2p-py-time /src/i2p-py-time COPY i2p-py-kademlia /src/i2p-py-kademlia COPY i2p-py-crypto-aes /src/i2p-py-crypto-aes COPY i2p-py-crypto-chacha /src/i2p-py-crypto-chacha COPY i2p-py-crypto-dsa /src/i2p-py-crypto-dsa COPY i2p-py-crypto-eddsa /src/i2p-py-crypto-eddsa COPY i2p-py-crypto-elgamal /src/i2p-py-crypto-elgamal COPY i2p-py-crypto-garlic /src/i2p-py-crypto-garlic COPY i2p-py-crypto-hash /src/i2p-py-crypto-hash COPY i2p-py-crypto-hkdf /src/i2p-py-crypto-hkdf COPY i2p-py-crypto-hmac /src/i2p-py-crypto-hmac COPY i2p-py-crypto-mlkem /src/i2p-py-crypto-mlkem COPY i2p-py-crypto-noise /src/i2p-py-crypto-noise COPY i2p-py-crypto-session-keys /src/i2p-py-crypto-session-keys COPY i2p-py-crypto-siphash /src/i2p-py-crypto-siphash COPY i2p-py-crypto-x25519 /src/i2p-py-crypto-x25519 COPY i2p-py-data-core /src/i2p-py-data-core COPY i2p-py-data-i2np /src/i2p-py-data-i2np COPY i2p-py-data-remaining /src/i2p-py-data-remaining COPY i2p-py-data-router /src/i2p-py-data-router COPY i2p-py-transport-base /src/i2p-py-transport-base COPY i2p-py-transport-ntcp2 /src/i2p-py-transport-ntcp2 COPY i2p-py-transport-ssu2 /src/i2p-py-transport-ssu2 COPY i2p-py-netdb /src/i2p-py-netdb COPY i2p-py-peer /src/i2p-py-peer COPY i2p-py-streaming /src/i2p-py-streaming COPY i2p-py-tunnel /src/i2p-py-tunnel COPY i2p-py-router /src/i2p-py-router COPY i2p-py-sam /src/i2p-py-sam COPY i2p-py-client /src/i2p-py-client COPY i2p-py-apps /src/i2p-py-apps # Install all packages in dependency order (leaves first) RUN pip install --no-cache-dir \ /src/i2p-py-util \ /src/i2p-py-stat \ /src/i2p-py-time \ /src/i2p-py-kademlia \ /src/i2p-py-crypto-aes \ /src/i2p-py-crypto-chacha \ /src/i2p-py-crypto-dsa \ /src/i2p-py-crypto-eddsa \ /src/i2p-py-crypto-elgamal \ /src/i2p-py-crypto-hash \ /src/i2p-py-crypto-hkdf \ /src/i2p-py-crypto-hmac \ /src/i2p-py-crypto-mlkem \ /src/i2p-py-crypto-siphash \ /src/i2p-py-crypto-x25519 \ /src/i2p-py-crypto-session-keys \ /src/i2p-py-crypto-garlic \ /src/i2p-py-crypto-noise \ /src/i2p-py-data-core \ /src/i2p-py-data-i2np \ /src/i2p-py-data-remaining \ /src/i2p-py-data-router \ /src/i2p-py-transport-base \ /src/i2p-py-transport-ntcp2 \ /src/i2p-py-transport-ssu2 \ /src/i2p-py-netdb \ /src/i2p-py-peer \ /src/i2p-py-streaming \ /src/i2p-py-tunnel \ /src/i2p-py-router \ /src/i2p-py-sam \ /src/i2p-py-client \ /src/i2p-py-apps WORKDIR /src