mirror of
https://github.com/linuxserver/wheelie.git
synced 2026-01-15 01:21:36 +08:00
90 lines
2.1 KiB
Docker
90 lines
2.1 KiB
Docker
ARG DISTRO
|
|
ARG DISTROVER
|
|
ARG ARCH
|
|
|
|
FROM ghcr.io/linuxserver/baseimage-${DISTRO}:${ARCH}-${DISTROVER} AS builder
|
|
|
|
ARG DISTRO
|
|
ARG DISTROVER
|
|
ARG ARCH
|
|
ARG PACKAGES
|
|
|
|
# grpcio build args
|
|
ARG GRPC_BUILD_WITH_BORING_SSL_ASM=false
|
|
ARG GRPC_PYTHON_BUILD_SYSTEM_OPENSSL=true
|
|
ARG GRPC_PYTHON_BUILD_WITH_CYTHON=true
|
|
ARG GRPC_PYTHON_DISABLE_LIBC_COMPATIBILITY=true
|
|
|
|
COPY packages.txt /packages.txt
|
|
|
|
RUN \
|
|
echo "**** Installing dependencies ****" && \
|
|
if [ -f /usr/bin/apt ]; then \
|
|
echo "**** Detected Ubuntu ****" && \
|
|
apt-get update && \
|
|
apt-get install --no-install-recommends -y \
|
|
cargo \
|
|
cmake \
|
|
g++ \
|
|
git \
|
|
libffi-dev \
|
|
libglib2.0-dev \
|
|
libjpeg-dev \
|
|
libssl-dev \
|
|
libwebp-dev \
|
|
libxml2-dev \
|
|
libxslt1-dev \
|
|
make \
|
|
python3-dev \
|
|
python3-pip \
|
|
python3-venv \
|
|
zlib1g-dev; \
|
|
else \
|
|
echo "**** Detected Alpine ****" && \
|
|
apk add --no-cache --virtual=build-dependencies \
|
|
cargo \
|
|
cmake \
|
|
g++ \
|
|
gcc \
|
|
geos-dev \
|
|
git \
|
|
glib-dev \
|
|
jpeg-dev \
|
|
libffi-dev \
|
|
libwebp-dev \
|
|
libxml2-dev \
|
|
libxslt-dev \
|
|
make \
|
|
openssl-dev \
|
|
py3-pip \
|
|
python3-dev \
|
|
zlib-dev; \
|
|
fi && \
|
|
echo "**** Updating pip and building wheels ****" && \
|
|
if [ "${DISTRO}" = "alpine" ]; then \
|
|
INDEXDISTRO="${DISTRO}-${DISTROVER}"; \
|
|
else \
|
|
INDEXDISTRO="${DISTRO}"; \
|
|
fi && \
|
|
python3 -m venv /lsiopy && \
|
|
pip install -U pip setuptools wheel cython && \
|
|
mkdir -p /build && \
|
|
if [ -z "${PACKAGES}" ]; then \
|
|
PACKAGES=$(cat /packages.txt); \
|
|
fi && \
|
|
for PACKAGE in "${PACKAGES}"; do \
|
|
if echo "${PACKAGE}" | grep -q numpy; then \
|
|
echo "**** Setting numpy build flag ****" && \
|
|
BUILD_FLAG='--config-settings=setup-args=-Dallow-noblas=true'; \
|
|
fi && \
|
|
echo "**** Building ${PACKAGE} ****" && \
|
|
pip wheel --wheel-dir=/build --find-links="https://wheel-index.linuxserver.io/${INDEXDISTRO}/" --no-cache-dir -v ${BUILD_FLAG} \
|
|
${PACKAGE}; \
|
|
done && \
|
|
echo "**** Wheels built are: ****" && \
|
|
ls /build
|
|
|
|
FROM scratch AS artifacts
|
|
|
|
COPY --from=builder /build /build
|