Files
palladum-lightning/contrib/docker/Dockerfile.builder.fedora
ShahanaFarooqui ec7d247f38 docker: Added fixed SOURCE_DATE_EPOCH flag for reproducible Fedora build
- Using environment variable `SOURCE_DATE_EPOCH` with fixed value will enforce a consistent timestamp for Fedora build.
. Similar to Ubuntu fix in commit 490fb0fc3b
- Locked cargo version
- Add `no-cache` to Fedora build

Changelog-Fixed: Core lightning builds for Fedora on all systems are deterministic.
2026-01-16 12:34:03 -08:00

66 lines
1.7 KiB
Docker

FROM fedora:40
ENV UV_PYTHON=3.12
ENV BITCOIN_VERSION=27.1
ENV SOURCE_DATE_EPOCH=1672531200
ENV RUSTFLAGS="-C link-arg=-Wl,--build-id=none"
WORKDIR /tmp
RUN dnf update -y && \
dnf groupinstall -y \
'C Development Tools and Libraries' \
'Development Tools' && \
dnf install -y \
clang \
libsq3-devel \
redhat-lsb \
net-tools \
valgrind \
wget \
git \
jq \
xz \
zlib-devel \
libsodium-devel \
which \
sed \
gettext-devel \
gmp-devel \
python3-devel \
python3-pip \
python3-poetry \
postgresql-devel \
protobuf-compiler \
protobuf-devel && \
dnf clean all
# Install Rust via rustup (for lockfile v4 support)
RUN curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y --default-toolchain 1.92.0
ENV PATH="/root/.cargo/bin:${PATH}"
# Install lowdown
RUN wget https://github.com/kristapsdz/lowdown/archive/refs/tags/VERSION_1_0_2.tar.gz && \
tar -xzf VERSION_1_0_2.tar.gz && \
cd lowdown-VERSION_1_0_2 && \
./configure && \
make && \
make install && \
ldconfig && \
cd /tmp && \
rm -rf VERSION_1_0_2.tar.gz lowdown-VERSION_1_0_2
# Install Bitcoin Core
RUN wget https://storage.googleapis.com/c-lightning-tests/bitcoind/bitcoin-${BITCOIN_VERSION}-x86_64-linux-gnu.tar.gz \
-O bitcoin.tar.gz && \
tar -xvzf bitcoin.tar.gz && \
mv bitcoin-$BITCOIN_VERSION/bin/bitcoin* /usr/local/bin/ && \
mv bitcoin-$BITCOIN_VERSION/lib/* /usr/local/lib/ && \
mv bitcoin-$BITCOIN_VERSION/include/* /usr/local/include/ && \
mv bitcoin-$BITCOIN_VERSION/share/man/man1/* /usr/share/man/man1 && \
rm -rf bitcoin.tar.gz bitcoin-$BITCOIN_VERSION
# Install uv
ENV PATH="${PATH}:/root/.local/bin"
RUN wget -qO- https://astral.sh/uv/install.sh | sh