'Generic Commit'
Some checks failed
dropshell-build / build (push) Failing after 51s

This commit is contained in:
Your Name
2025-06-02 23:55:33 +12:00
parent 25fa5be7e1
commit 3fea581249
5 changed files with 32 additions and 921 deletions

View File

@@ -1,49 +1,39 @@
FROM ubuntu:latest
FROM --platform=$BUILDPLATFORM alpine:latest AS builder
# Add build arguments for platform
ARG TARGETPLATFORM
ARG BUILDPLATFORM
RUN mkdir -p "$HOME/.musl-cross"
# Install build dependencies
RUN apk add --no-cache \
build-base \
cmake \
git \
musl-dev \
curl \
bash \
musl \
g++ \
ninja \
linux-headers \
mold
RUN apt-get update && apt-get install -y \
wget tar curl bash git && \
rm -rf /var/lib/apt/lists/*
# Set working directory
WORKDIR /build
RUN wget -nc -O "$HOME/.musl-cross/x86_64-linux-musl-cross.tgz" "https://getbin.xyz/x86_64-linux-musl-cross.tgz:latest" && \
tar -C "$HOME/.musl-cross" -xvf "$HOME/.musl-cross/x86_64-linux-musl-cross.tgz" && \
rm "$HOME/.musl-cross/x86_64-linux-musl-cross.tgz"
# Copy source files
COPY . .
RUN wget -nc -O "$HOME/.musl-cross/x86_64-linux-musl-native.tgz" "https://getbin.xyz/x86_64-linux-musl-native.tgz:latest" && \
tar -C "$HOME/.musl-cross" -xvf "$HOME/.musl-cross/x86_64-linux-musl-native.tgz" && \
rm "$HOME/.musl-cross/x86_64-linux-musl-native.tgz"
RUN wget -nc -O "$HOME/.musl-cross/aarch64-linux-musl-cross.tgz" "https://getbin.xyz/aarch64-linux-musl-cross.tgz:latest" && \
tar -C "$HOME/.musl-cross" -xvf "$HOME/.musl-cross/aarch64-linux-musl-cross.tgz" && \
rm "$HOME/.musl-cross/aarch64-linux-musl-cross.tgz"
RUN apt-get update && apt-get install -y \
build-essential cmake ninja-build mold nodejs npm perl jq ccache nlohmann-json3-dev \
ca-certificates upx-ucl autoconf automake libtool gawk \
&& rm -rf /var/lib/apt/lists/*
RUN install -m 0755 -d /etc/apt/keyrings && \
curl -fsSL https://download.docker.com/linux/ubuntu/gpg -o /etc/apt/keyrings/docker.asc && \
chmod a+r /etc/apt/keyrings/docker.asc && \
echo \
"deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.asc] https://download.docker.com/linux/ubuntu \
$(. /etc/os-release && echo "${UBUNTU_CODENAME:-$VERSION_CODENAME}") stable" | \
tee /etc/apt/sources.list.d/docker.list > /dev/null && \
apt-get update && \
apt-get install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin && \
rm -rf /var/lib/apt/lists/*
COPY --chmod=0755 ./src/* /usr/local/bin/
RUN /usr/local/bin/dropshell-build-install-requirements
WORKDIR /app
CMD ["dropshell-build","/app"]
# Configure and build
RUN mkdir -p build_static && \
cmake -G Ninja -B build_static -DCMAKE_BUILD_TYPE=Release \
-DCMAKE_EXE_LINKER_FLAGS="-static" \
-DCMAKE_FIND_LIBRARY_SUFFIXES=".a" \
-DBUILD_SHARED_LIBS=OFF \
${CMAKE_TOOLCHAIN_FILE:+-DCMAKE_TOOLCHAIN_FILE=$CMAKE_TOOLCHAIN_FILE}
RUN cmake --build build_static
# Final stage that only contains the binary
FROM scratch AS $PROJECT
COPY --from=builder /build/build_static/$PROJECT /$PROJECT