# syntax=docker/dockerfile:1 FROM debian:bookworm-slim ENV PYTHONDONTWRITEBYTECODE=1 \ PYTHONUNBUFFERED=1 WORKDIR /app # Installation des dépendances de base RUN apt-get update && apt-get upgrade -y && \ apt-get install -y --fix-missing \ ca-certificates curl jq git python3 python3-pip && \ rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/* # Création d'un utilisateur non-root RUN useradd -m -u 1000 appuser && \ mkdir -p /app && chown -R appuser:appuser /app # Installer bitcoin-cli (binaire officiel) RUN curl -L -o /tmp/bitcoin-cli.tar.gz https://bitcoincore.org/bin/bitcoin-core-26.2/bitcoin-26.2-x86_64-linux-gnu.tar.gz \ && mkdir -p /tmp/bitcoin-cli \ && tar -xzf /tmp/bitcoin-cli.tar.gz -C /tmp/bitcoin-cli --strip-components=2 bitcoin-26.2/bin/bitcoin-cli \ && mv /tmp/bitcoin-cli/bitcoin-cli /usr/local/bin/bitcoin-cli \ && chmod +x /usr/local/bin/bitcoin-cli \ && rm -rf /tmp/bitcoin-cli /tmp/bitcoin-cli.tar.gz COPY requirements.txt ./ RUN pip3 install --no-cache-dir -r requirements.txt # Vendoriser test_framework depuis Bitcoin Core (pour le script signet/miner) RUN curl -L -o /tmp/bitcoin-core.tar.gz https://github.com/bitcoin/bitcoin/archive/refs/tags/v26.2.tar.gz \ && mkdir -p /tmp/bitcoin-core \ && tar -xzf /tmp/bitcoin-core.tar.gz -C /tmp/bitcoin-core --strip-components=1 \ && mkdir -p /app/test/functional \ && cp -r /tmp/bitcoin-core/test/functional/test_framework /app/test/functional/test_framework \ && rm -rf /tmp/bitcoin-core /tmp/bitcoin-core.tar.gz COPY entrypoint.sh ./ COPY signet_miner.py ./ COPY signet/ ./signet/ RUN chmod +x /app/entrypoint.sh && \ chown -R appuser:appuser /app USER appuser VOLUME ["/bitcoin"] ENTRYPOINT ["/app/entrypoint.sh"]