fix(docker): hfsprogs/xar Build-Fehler beheben
hfsprogs liegt in Debians non-free-Repo (bookworm-slim aktiviert nur main), xar existiert in bookworm ueberhaupt nicht als Paket. non-free per eigener sources.list.d aktiviert, xar aus dem mackyle-Upstream (gleicher Maintainer wie das bereits genutzte pbzx) selbst gebaut.
This commit is contained in:
+19
-1
@@ -1,14 +1,22 @@
|
|||||||
FROM debian:bookworm-slim
|
FROM debian:bookworm-slim
|
||||||
|
|
||||||
|
# hfsprogs (mkfs.hfsplus) liegt in Debians "non-free"-Bereich, das offizielle
|
||||||
|
# bookworm-slim-Image aktiviert davon aber nur "main". Eigene sources.list.d
|
||||||
|
# Datei ergaenzt non-free, unabhaengig davon ob die Basis-Sources im alten
|
||||||
|
# Ein-Zeilen- oder im neuen deb822-Format vorliegen (apt liest beide parallel).
|
||||||
|
RUN echo "deb http://deb.debian.org/debian bookworm main contrib non-free non-free-firmware" \
|
||||||
|
> /etc/apt/sources.list.d/non-free.list
|
||||||
|
|
||||||
RUN apt-get update && apt-get install -y --no-install-recommends \
|
RUN apt-get update && apt-get install -y --no-install-recommends \
|
||||||
python3 python3-pip \
|
python3 python3-pip \
|
||||||
util-linux \
|
util-linux \
|
||||||
gdisk \
|
gdisk \
|
||||||
hfsprogs \
|
hfsprogs \
|
||||||
dmg2img \
|
dmg2img \
|
||||||
xar \
|
|
||||||
cpio \
|
cpio \
|
||||||
xz-utils liblzma-dev \
|
xz-utils liblzma-dev \
|
||||||
|
libxml2-dev libssl-dev zlib1g-dev \
|
||||||
|
autoconf automake libtool pkg-config \
|
||||||
git build-essential \
|
git build-essential \
|
||||||
ca-certificates curl \
|
ca-certificates curl \
|
||||||
&& rm -rf /var/lib/apt/lists/*
|
&& rm -rf /var/lib/apt/lists/*
|
||||||
@@ -21,6 +29,16 @@ RUN git clone --depth 1 https://github.com/mackyle/pbzx.git /tmp/pbzx \
|
|||||||
&& cd /tmp/pbzx && make && install -m 755 pbzx /usr/local/bin/pbzx \
|
&& cd /tmp/pbzx && make && install -m 755 pbzx /usr/local/bin/pbzx \
|
||||||
&& rm -rf /tmp/pbzx
|
&& rm -rf /tmp/pbzx
|
||||||
|
|
||||||
|
# xar: existiert als Debian-Paket erst ab trixie (bookworm hat es gar nicht
|
||||||
|
# im Archiv, auch nicht in non-free). Statt die ganze Basis-Distro zu wechseln
|
||||||
|
# (Risiko fuer alle anderen Pakete) bauen wir es aus dem selben, von Apple-
|
||||||
|
# Tooling-Communities genutzten Upstream-Fork wie pbzx (gleicher Maintainer).
|
||||||
|
RUN git clone --depth 1 https://github.com/mackyle/xar.git /tmp/xar-src \
|
||||||
|
&& cd /tmp/xar-src/xar \
|
||||||
|
&& ./autogen.sh && ./configure && make && make install \
|
||||||
|
&& ldconfig \
|
||||||
|
&& rm -rf /tmp/xar-src
|
||||||
|
|
||||||
WORKDIR /app
|
WORKDIR /app
|
||||||
COPY backend/requirements.txt /app/backend/requirements.txt
|
COPY backend/requirements.txt /app/backend/requirements.txt
|
||||||
RUN pip3 install --no-cache-dir --break-system-packages -r /app/backend/requirements.txt
|
RUN pip3 install --no-cache-dir --break-system-packages -r /app/backend/requirements.txt
|
||||||
|
|||||||
@@ -69,6 +69,14 @@ Block-Device. Wenn du das falsche Geraet auswaehlst, sind die Daten weg.
|
|||||||
Vor dem Start immer pruefen, welcher Stick tatsaechlich gemeint ist (Groesse
|
Vor dem Start immer pruefen, welcher Stick tatsaechlich gemeint ist (Groesse
|
||||||
und Modell in der GUI vergleichen).
|
und Modell in der GUI vergleichen).
|
||||||
|
|
||||||
|
## Build-Hinweis (hfsprogs / xar)
|
||||||
|
`hfsprogs` liegt in Debians non-free-Bereich (Dockerfile aktiviert das
|
||||||
|
gezielt ueber eine eigene sources.list.d-Datei), `xar` gibt es in
|
||||||
|
`bookworm` ueberhaupt nicht als Paket — das wird deshalb aus dem
|
||||||
|
Upstream-Repo (`mackyle/xar`, selber Maintainer wie das schon genutzte
|
||||||
|
`pbzx`) selbst gebaut. Macht den ersten Build minimal langsamer, aber
|
||||||
|
zuverlaessiger als ein Distro-Wechsel.
|
||||||
|
|
||||||
## Voraussetzungen auf dem Host
|
## Voraussetzungen auf dem Host
|
||||||
- Docker + Docker Compose
|
- Docker + Docker Compose
|
||||||
- Linux (getestet gegen die Grundannahmen von `lsblk`/`/dev`/`udev`; auf
|
- Linux (getestet gegen die Grundannahmen von `lsblk`/`/dev`/`udev`; auf
|
||||||
|
|||||||
Reference in New Issue
Block a user