50 lines
1.7 KiB
Docker
50 lines
1.7 KiB
Docker
# 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"]
|