test: Update 3 files
This commit is contained in:
@ -250,3 +250,7 @@ RUN curl -LO https://github.com/nlohmann/json/archive/refs/tags/v${NLOHMANN_JSON
|
|||||||
make -j$(nproc) && \
|
make -j$(nproc) && \
|
||||||
make install && \
|
make install && \
|
||||||
cd / && rm -rf /tmp/json-${NLOHMANN_JSON_VERSION} /tmp/v${NLOHMANN_JSON_VERSION}.tar.gz
|
cd / && rm -rf /tmp/json-${NLOHMANN_JSON_VERSION} /tmp/v${NLOHMANN_JSON_VERSION}.tar.gz
|
||||||
|
|
||||||
|
# Install upx
|
||||||
|
COPY opt /opt
|
||||||
|
RUN /opt/install_upx.sh
|
||||||
|
@ -5,11 +5,14 @@ set -euo pipefail
|
|||||||
SCRIPT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" &> /dev/null && pwd )"
|
SCRIPT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" &> /dev/null && pwd )"
|
||||||
|
|
||||||
PROJECT="dropshell-build-base"
|
PROJECT="dropshell-build-base"
|
||||||
|
|
||||||
ARCH=$(uname -m)
|
ARCH=$(uname -m)
|
||||||
|
|
||||||
|
echo "Building ${PROJECT} for ${ARCH}..."
|
||||||
|
|
||||||
# Build multi-platform image and push it
|
# Build multi-platform image and push it
|
||||||
docker build \
|
docker build \
|
||||||
-t "dropshell-build-base:test" \
|
-t "${PROJECT}:test" \
|
||||||
-f "${SCRIPT_DIR}/Dockerfile.dropshell-build-base" \
|
-f "${SCRIPT_DIR}/Dockerfile.${PROJECT}" \
|
||||||
${SCRIPT_DIR}
|
"${SCRIPT_DIR}"
|
||||||
|
|
||||||
|
echo "Successfully built ${PROJECT}:test"
|
||||||
|
46
build-base/opt/install_upx.sh
Executable file
46
build-base/opt/install_upx.sh
Executable file
@ -0,0 +1,46 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
set -euo pipefail
|
||||||
|
|
||||||
|
# check we're running as root
|
||||||
|
if [ "$(id -u)" -ne 0 ]; then
|
||||||
|
echo "Please run as root"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Determine architecture
|
||||||
|
ARCH=$(uname -m)
|
||||||
|
case $ARCH in
|
||||||
|
x86_64)
|
||||||
|
UPX_ARCH="amd64"
|
||||||
|
;;
|
||||||
|
aarch64)
|
||||||
|
UPX_ARCH="arm64"
|
||||||
|
;;
|
||||||
|
*)
|
||||||
|
echo "Unsupported architecture: $ARCH"
|
||||||
|
exit 1
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
|
||||||
|
# Download and install UPX v5.0.1
|
||||||
|
UPX_VERSION="5.0.1"
|
||||||
|
UPX_FILE="upx-${UPX_VERSION}-${UPX_ARCH}_linux.tar.xz"
|
||||||
|
UPX_URL="https://github.com/upx/upx/releases/download/v${UPX_VERSION}/${UPX_FILE}"
|
||||||
|
|
||||||
|
echo "Downloading UPX ${UPX_VERSION} for ${UPX_ARCH}..."
|
||||||
|
curl -L -o "${UPX_FILE}" "${UPX_URL}"
|
||||||
|
|
||||||
|
# Extract UPX
|
||||||
|
tar -xf "${UPX_FILE}"
|
||||||
|
|
||||||
|
# Install to /usr/local/bin
|
||||||
|
cp "upx-${UPX_VERSION}-${UPX_ARCH}_linux/upx" /usr/local/bin/
|
||||||
|
chmod +x /usr/local/bin/upx
|
||||||
|
|
||||||
|
# Verify installation
|
||||||
|
upx --version
|
||||||
|
|
||||||
|
# Cleanup
|
||||||
|
rm -rf "${UPX_FILE}" "upx-${UPX_VERSION}-${UPX_ARCH}_linux"
|
||||||
|
|
||||||
|
echo "UPX ${UPX_VERSION} installed successfully!"
|
@ -53,6 +53,12 @@ RUN --mount=type=cache,target=/build \
|
|||||||
find /build -type f -executable -name "*${PROJECT}*" -exec cp {} /output/${PROJECT} \; || \
|
find /build -type f -executable -name "*${PROJECT}*" -exec cp {} /output/${PROJECT} \; || \
|
||||||
find /build -type f -executable -exec cp {} /output/${PROJECT} \;
|
find /build -type f -executable -exec cp {} /output/${PROJECT} \;
|
||||||
|
|
||||||
|
# if we're a release build, then run upx on the binary.
|
||||||
|
RUN if [ "${CMAKE_BUILD_TYPE}" = "Release" ]; then \
|
||||||
|
upx /output/${PROJECT}; \
|
||||||
|
fi
|
||||||
|
|
||||||
|
|
||||||
# Final stage that only contains the binary
|
# Final stage that only contains the binary
|
||||||
FROM scratch AS project
|
FROM scratch AS project
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user