Files
mond/docker/Dockerfile.alpine
Wang Defa 5057ef7bdf
Some checks failed
Build and Release Mond / build-and-test (arm64, ubuntu) (push) Successful in 41s
Build and Release Mond / build-and-test (amd64, ubuntu) (push) Successful in 54s
Build and Release Mond / build-and-test (arm64, alpine) (push) Failing after 2m13s
Build and Release Mond / build-and-test (amd64, alpine) (push) Failing after 8m48s
Build and Release Mond / release (push) Has been skipped
fix: Alpine 修正包名(pkgconf)并移除不存在的包
2025-12-15 14:42:40 +08:00

65 lines
1.5 KiB
Docker
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
FROM alpine:3.18 AS base
ARG TARGETARCH
ARG BUILDPLATFORM
# 安装 depends 系统和 Monero 构建所需的依赖
RUN apk add --no-cache \
git \
wget \
curl \
build-base \
cmake \
pkgconf \
autoconf \
automake \
libtool \
bzip2 \
xz \
python3 \
gperf \
linux-headers
FROM base AS build
ARG MONERO_VERSION=v0.18.3.4
ARG TARGETARCH
ARG BUILDPLATFORM
ARG TARGETPLATFORM
# 克隆 Monero 项目
RUN git clone --recursive https://github.com/monero-project/monero.git && \
cd monero && \
git checkout ${MONERO_VERSION} && \
git submodule update --init --force
WORKDIR /monero
# 复制并运行 init.sh 脚本进行修改
COPY ./init.sh ./init.sh
RUN chmod +x ./init.sh && sed -i 's|/bin/sh|/bin/ash|' ./init.sh && ./init.sh
# 使用官方 depends 系统构建静态依赖(参考 Ubuntu Dockerfile
RUN if [ "$BUILDPLATFORM" != "$TARGETPLATFORM" ]; then \
MAKE_JOBS=2; \
else \
MAKE_JOBS=$(nproc); \
fi && \
if [ "$TARGETARCH" = "arm64" ]; then \
DEPENDS_TARGET="aarch64-linux-gnu"; \
else \
DEPENDS_TARGET="x86_64-linux-gnu"; \
fi && \
echo "Building dependencies for $DEPENDS_TARGET with $MAKE_JOBS parallel jobs" && \
make -j$MAKE_JOBS depends target=$DEPENDS_TARGET && \
mkdir -p /output && \
cp build/$DEPENDS_TARGET/release/bin/mond /output/mond
# 最终阶段 - 只复制静态链接的二进制文件
FROM scratch
ARG TARGETARCH
COPY --from=build /output/mond /linux_${TARGETARCH}/mond