mirror of
https://github.com/home-assistant/supervisor.git
synced 2025-12-20 02:18:59 +00:00
Since transition from pip to uv in #5152, Supervisor container doesn't contain bytecode for site-packages anymore, and because our AppArmor profile denies mkdir operations, the compiled *.pyc files are never created. Enable uv --compile option to opt for the same behavior as pip had, to fix of the AA errors and the potential penalty of compilation on every import.
52 lines
1.1 KiB
Docker
52 lines
1.1 KiB
Docker
ARG BUILD_FROM
|
|
FROM ${BUILD_FROM}
|
|
|
|
ENV \
|
|
S6_SERVICES_GRACETIME=10000 \
|
|
SUPERVISOR_API=http://localhost \
|
|
CRYPTOGRAPHY_OPENSSL_NO_LEGACY=1 \
|
|
UV_SYSTEM_PYTHON=true
|
|
|
|
ARG \
|
|
COSIGN_VERSION \
|
|
BUILD_ARCH
|
|
|
|
# Install base
|
|
WORKDIR /usr/src
|
|
RUN \
|
|
set -x \
|
|
&& apk add --no-cache \
|
|
findutils \
|
|
eudev \
|
|
eudev-libs \
|
|
git \
|
|
libffi \
|
|
libpulse \
|
|
musl \
|
|
openssl \
|
|
yaml \
|
|
\
|
|
&& curl -Lso /usr/bin/cosign "https://github.com/home-assistant/cosign/releases/download/${COSIGN_VERSION}/cosign_${BUILD_ARCH}" \
|
|
&& chmod a+x /usr/bin/cosign \
|
|
&& pip3 install uv==0.2.21
|
|
|
|
# Install requirements
|
|
COPY requirements.txt .
|
|
RUN \
|
|
if [ "${BUILD_ARCH}" = "i386" ]; then \
|
|
linux32 uv pip install --compile --no-build -r requirements.txt; \
|
|
else \
|
|
uv pip install --compile --no-build -r requirements.txt; \
|
|
fi \
|
|
&& rm -f requirements.txt
|
|
|
|
# Install Home Assistant Supervisor
|
|
COPY . supervisor
|
|
RUN \
|
|
pip3 install -e ./supervisor \
|
|
&& python3 -m compileall ./supervisor/supervisor
|
|
|
|
|
|
WORKDIR /
|
|
COPY rootfs /
|