Open rolfrander opened 3 years ago
[rolfrander]
Hei, dette er innspill til byggeprosessen, ikke innholdet i teksten. Jeg har laget en Dockerfile med det jeg tror er nødvendige avhengigheter for å klare å bygge pdf/html (jeg fikk det i hvert fall til å virke med dette). Kanskje nyttig for andre også.
Takk for forslag. Har et spørsmål om plantuml:
install plant manually to avoid dragging entire java/X11 dependency tree
RUN curl -L https://sourceforge.net/projects/plantuml/files/plantuml.${PLANTUML_VERSION}.jar/download -o /usr/local/lib/plantuml.jar RUN echo "#!/bin/bash" >> /usr/local/bin/plantuml ; echo 'java -jar /usr/local/lib/plantuml.jar "$@"' >> /usr/local/bin/plantuml RUN chmod +x /usr/local/bin/plantuml
Hva konkret er det du forsøker å unngå her? Kan det unngås ved å installere default-jre-headless i stedet for default-jre?
Jeg tror det er en dårlig ide å laste ned binære fra Internet utenom Debians pakkespeil, og håper dermed utfordringe kan løses på en annen måte.
-- Vennlig hilsen Petter Reinholdtsen
Hehe, godt spørsmål. Jeg er enig i prinsippet om å ikke laste ned binære filer direkte fra internett.
Det jeg forsøker å unngå er dette:
# apt-get install -s --no-install-recommends plantuml
Reading package lists... Done
Building dependency tree
Reading state information... Done
The following additional packages will be installed:
ant ca-certificates-java default-jre default-jre-headless java-common java-wrappers libapache-pom-java libasound2
libasound2-data libavalon-framework-java libbatik-java libcommons-io-java libcommons-logging-java libcommons-parent-java
libdrm-amdgpu1 libdrm-common libdrm-intel1 libdrm-nouveau2 libdrm-radeon1 libdrm2 libel-api-java libfontbox2-java libfop-java
libgif7 libgl1 libgl1-mesa-dri libglapi-mesa libglvnd0 libglx-mesa0 libglx0 libjaxp1.3-java libjlatexmath-java libjsp-api-java
libllvm7 libnspr4 libnss3 libpciaccess0 libpcsclite1 libqdox-java libsensors-config libsensors5 libservlet-api-java
libservlet3.1-java libwebsocket-api-java libx11-xcb1 libxalan2-java libxcb-dri2-0 libxcb-dri3-0 libxcb-glx0 libxcb-present0
libxcb-sync1 libxdamage1 libxerces2-java libxfixes3 libxml-commons-external-java libxml-commons-resolver1.1-java
libxmlgraphics-commons-java libxshmfence1 libxtst6 libxxf86vm1 openjdk-11-jre openjdk-11-jre-headless
Suggested packages:
ant-doc default-jdk | java-compiler | java-sdk libasound2-plugins alsa-utils libavalon-framework-java-doc librhino-java
libcommons-io-java-doc libcommons-logging-java-doc libexcalibur-logkit-java liblog4j1.2-java pciutils pcscd libqdox-java-doc
junit lm-sensors libxalan2-java-doc libbsf-java libxsltc-java libxerces2-java-doc libxml-commons-resolver1.1-java-doc
libxmlgraphics-commons-java-doc libnss-mdns fonts-dejavu-extra fonts-ipafont-gothic fonts-ipafont-mincho fonts-wqy-microhei
| fonts-wqy-zenhei fonts-indic
Recommended packages:
ant-optional icc-profiles-free libsaxon-java libatk-wrapper-java-jni fonts-dejavu-extra
The following NEW packages will be installed:
ant ca-certificates-java default-jre default-jre-headless java-common java-wrappers libapache-pom-java libasound2
libasound2-data libavalon-framework-java libbatik-java libcommons-io-java libcommons-logging-java libcommons-parent-java
libdrm-amdgpu1 libdrm-common libdrm-intel1 libdrm-nouveau2 libdrm-radeon1 libdrm2 libel-api-java libfontbox2-java libfop-java
libgif7 libgl1 libgl1-mesa-dri libglapi-mesa libglvnd0 libglx-mesa0 libglx0 libjaxp1.3-java libjlatexmath-java libjsp-api-java
libllvm7 libnspr4 libnss3 libpciaccess0 libpcsclite1 libqdox-java libsensors-config libsensors5 libservlet-api-java
libservlet3.1-java libwebsocket-api-java libx11-xcb1 libxalan2-java libxcb-dri2-0 libxcb-dri3-0 libxcb-glx0 libxcb-present0
libxcb-sync1 libxdamage1 libxerces2-java libxfixes3 libxml-commons-external-java libxml-commons-resolver1.1-java
libxmlgraphics-commons-java libxshmfence1 libxtst6 libxxf86vm1 openjdk-11-jre openjdk-11-jre-headless plantuml
Jeg kan ikke apt godt nok til å vite hvordan jeg hinter om å bruke jre-headless...
I et forsøk på å finne ut hva som var beste måte å installere java i docker ble jeg så forvirret at jeg endte opp med å basere meg på standard openjdk-image utelukkende for å ha java tilgjengelig for plantuml. Men det ser ikke ut til at apt i det imaget vet om at jre er installert, så derfor vil plantuml dra med seg hele.
[rolfrander]
Det jeg forsøker å unngå er dette:
OK.
Tenker det må være mulig å trimme den listen litt, men rekker ikke finne løsning i kveld.
Tenker 'apt-cache dotty plantuml > plantuml.dot; dotty plantuml.dot' bør kunne gi ideer til hva som kan trimmes av avhengigheter.
-- Vennlig hilsen Petter Reinholdtsen
[Petter Reinholdtsen]
Tenker det må være mulig å trimme den listen litt, men rekker ikke finne løsning i kveld.
Ser ut til at problemet er at plantuml har notert avhengighet på default-jre og ikke godtar default-jre-headless som alternativ. Jeg har bedt om at Debian-pakken endres i <URL: https://bugs.debian.org/988908 >.
Den enkleste måten å unngå problemet er nok å bruke equivs til å lage en dummy-pakke som blokkerer for installasjon av default-jre:
chroot /some/chroot apt install -y --no-install-recommends equivs cat > /some/chroot/tmp/dummy-default-jre-control <<EOF Section: misc Priority: optional
Package: dummy-default-jre Provides: default-jre Description: Placeholder to avoid pulling in default-jre EOF chroot /some/chroot equivs-build /tmp/dummy-default-jre-control ls /some/chroot chroot /some/chroot dpkg -i dummy-default-jre_1.0_all.deb
Men jeg anbefaler ikke denne løsningen, jeg vil heller foreslå å ta utgangspunkt i et enkelt Debian-docker-avtrykk og så bruke openjdk fra Debian.
-- Vennlig hilsen Petter Reinholdtsen
[Petter Reinholdtsen] Men jeg anbefaler ikke denne løsningen, jeg vil heller foreslå å ta utgangspunkt i et enkelt Debian-docker-avtrykk og så bruke openjdk fra Debian.
Her falt jeg av, jeg forstår ikke hvordan skal dette kunne omgå koblingen fra plantuml til default-jre, men her er jeg langt utenfor min kunnskap om apt/dpkg...
Uansett, dette er grunnen til at jeg tok utgangspunkt i et standard java-docker-avtrykk og lastet ned plantuml.jar med curl...
Hei, dette er innspill til byggeprosessen, ikke innholdet i teksten. Jeg har laget en Dockerfile med det jeg tror er nødvendige avhengigheter for å klare å bygge pdf/html (jeg fikk det i hvert fall til å virke med dette). Kanskje nyttig for andre også.