# syntax=docker/dockerfile:1 # check=skip=SecretsUsedInArgOrEnv # Ignore warnings about sensitive information as this is test data. ARG LC_CORE_VERSION=0.2.0 ARG LB_NODE_VERSION=0.2.0 # =========================== # BUILD IMAGE # =========================== FROM debian:trixie-slim AS builder ARG LC_CORE_VERSION ARG LB_NODE_VERSION WORKDIR /logos-blockchain COPY . . RUN apt-get update && apt-get install -y --no-install-recommends \ curl \ ca-certificates \ && rm -rf /var/lib/apt/lists/* RUN scripts/setup-logos-core.sh "$LC_CORE_VERSION" "$(uname -m)-linux" # Patch the AppImage magic bytes to restore standard ELF matching for QEMU RUN dd if=/dev/zero of=lgpd bs=1 count=3 seek=8 conv=notrunc && \ dd if=/dev/zero of=lgpm bs=1 count=3 seek=8 conv=notrunc && \ dd if=/dev/zero of=logoscore bs=1 count=3 seek=8 conv=notrunc RUN ./lgpd --appimage-extract && mv squashfs-root ext-lgpd && \ ./lgpm --appimage-extract && mv squashfs-root ext-lgpm && \ ./logoscore --appimage-extract && mv squashfs-root ext-logoscore RUN ./ext-lgpd/AppRun download blockchain_module --version "$LB_NODE_VERSION" --output ./ && \ ./ext-lgpm/AppRun --modules-dir ./modules install --file "blockchain_module-${LB_NODE_VERSION}.lgx" # =========================== # NODE IMAGE # =========================== FROM debian:trixie-slim LABEL maintainer="augustinas@status.im" \ source="https://github.com/logos-blockchain/logos-blockchain" \ description="Logos blockchain node image" # curl: allows querying the node's REST API from within the container without exposing it publicly # yq: allows patching user_config.yaml after it is generated by `logos-blockchain-node init` RUN apt-get update && apt-get install -y --no-install-recommends curl yq && \ rm -rf /var/lib/apt/lists/* COPY --from=builder /logos-blockchain/ext-logoscore /opt/logoscore COPY --from=builder /logos-blockchain/modules /opt/modules EXPOSE 3000 8080 9000 60000 ENTRYPOINT ["logoscore"]