[GELÖST] Dockerfile COPY für 500 Dateien

Vom einfachen Programm zum fertigen Debian-Paket, Fragen rund um Programmiersprachen, Scripting und Lizenzierung.
Antworten
BrotherJ
Beiträge: 80
Registriert: 15.11.2018 07:56:18

[GELÖST] Dockerfile COPY für 500 Dateien

Beitrag von BrotherJ » 11.06.2019 20:22:14

Hallo,

ich baue mir ein Dockerimage für Gimp 2.10. In dem Verzeichnis, indem das Dockerfile liegt, existiert ein Verzeichnis 'truetype' mit 500 ttf-Dateien.
Im Dockerfile versuche ich mit

Code: Alles auswählen

FROM debian:buster

RUN apt-get update && \
    apt-get install -y locales
RUN sed -i -e 's/# de_DE.UTF-8 UTF-8/de_DE.UTF-8 UTF-8/' /etc/locale.gen && \    
    locale-gen
ENV LANG de_DE.UTF-8
ENV LANGUAGE de_DE:de
ENV LC_ALL de_DE.UTF-8
RUN apt-get install -y gtk2-engines-pixbuf && \
    apt-get install -y gimp && \
    apt-get install -y iso-codes
COPY truetype /etc/X11/fonts/
CMD /usr/bin/gimp
das Verzeichnis an diese Stelle im Image zu kopieren. Das klappt allerdings nicht, die Schrifttypen tauchen in Gimp später nicht auf.
code]COPY truetype/Arial.ttf /etc/X11/fonts/[/code]
klappt auch nicht

Code: Alles auswählen

Step 7/9 : RUN apt-get install -y gtk2-engines-pixbuf &&     apt-get install -
y gimp &&     apt-get install -y iso-codes
 ---> Using cache
 ---> 0bd7b41f99aa
Step 8/9 : COPY truetype /etc/X11/fonts/
 ---> c8f693a1424d
Step 9/9 : CMD /usr/bin/gimp
 ---> Running in 917d251e352a
Wie setze ich

Code: Alles auswählen

cp truetype/* /etc/X11/fonts/
bei Docker um?

Grüße
BrotherJ
Zuletzt geändert von BrotherJ am 12.06.2019 15:37:16, insgesamt 1-mal geändert.
Happiness is NOT a description IT'S A way of life!

Benutzeravatar
MartinV
Beiträge: 728
Registriert: 31.07.2015 19:38:52
Wohnort: Hyperion
Kontaktdaten:

Re: Dockerfile COPY für 500 Dateien

Beitrag von MartinV » 12.06.2019 14:52:42

Ich habe ein Dockerfile, im gleichen Verzeichnis einen Ordner bin. Das funktioniert:

Code: Alles auswählen

COPY bin/* /opt/bin/
BrotherJ hat geschrieben: ↑ zum Beitrag ↑
11.06.2019 20:22:14
die Schrifttypen tauchen in Gimp später nicht auf.
Vielleicht ist das Problem nicht bei Docker, sondern bei GIMP, daß es die Schriften nicht findet oder gar nicht erst sucht?
Überprüf doch mal ohne GIMP, ob die Dateien vorhanden sind:

Code: Alles auswählen

docker run --rm IMAGENAME ls /etc/X11/fonts/
Die Vernunft kann einem schon leidtun. Sie verliert eigentlich immer.

BrotherJ
Beiträge: 80
Registriert: 15.11.2018 07:56:18

Re: Dockerfile COPY für 500 Dateien

Beitrag von BrotherJ » 12.06.2019 15:00:54

MartinV hat geschrieben: ↑ zum Beitrag ↑
12.06.2019 14:52:42
Vielleicht ist das Problem nicht bei Docker, sondern bei GIMP, daß es die Schriften nicht findet oder gar nicht erst sucht?
Überprüf doch mal ohne GIMP, ob die Dateien vorhanden sind:
Da bin ich just dabei. Ich hatte diesen Gedanken heute auch schon. Gimp holt sich das möglicherweise auch aus ~/.fonts. Und meine Fonts liegen auch meinen Maschinen mit Desktop immer unter "/etc/X11/fonts/truetype" und alle Anwendungen finden diese auch - das alte GIMP 2.8 ebenso, deswegen dieser Gedanke.

Zum Einen benötige ich GIMP 2.10 und zum Anderen zerschiesst es mir mein System, wenn ich das jetzt wegen GIMP auf Buster oder SId setze, deshalb die Container-Lösung.
Happiness is NOT a description IT'S A way of life!

uname
Beiträge: 10011
Registriert: 03.06.2008 09:33:02

Re: Dockerfile COPY für 500 Dateien

Beitrag von uname » 12.06.2019 15:05:06

Eine Lösung habe ich nicht. Auch fehlt mir die Erfahrung mit Docker. Folgendes würde ich aber wahrscheinlich ändern. Ich gehe davon aus, dass das funktioniert. Wenn ja ist es übersichtlicher und sieht schöner aus:

alt:

Code: Alles auswählen

RUN apt-get install -y gtk2-engines-pixbuf && \
    apt-get install -y gimp && \
    apt-get install -y iso-codes
neu

Code: Alles auswählen

RUN apt-get install -y gtk2-engines-pixbuf gimp iso-codes

Benutzeravatar
MartinV
Beiträge: 728
Registriert: 31.07.2015 19:38:52
Wohnort: Hyperion
Kontaktdaten:

Re: Dockerfile COPY für 500 Dateien

Beitrag von MartinV » 12.06.2019 15:08:04

Vorsicht, Werbung: Zum Starten von GUIs in Docker habe ich ein Projekt: https://github.com/mviereck/x11docker

Und ein Gedanke: Anstatt die Schriften in das Docker Image zu packen (und es dadurch riesig zu machen), könntest Du sie auch auf dem host lassen und beim Start mit Docker Option --volume (oder x11docker Option --share) dem Container zur Verfügung stellen.
Die Vernunft kann einem schon leidtun. Sie verliert eigentlich immer.

BrotherJ
Beiträge: 80
Registriert: 15.11.2018 07:56:18

Re: Dockerfile COPY für 500 Dateien

Beitrag von BrotherJ » 12.06.2019 15:36:56

Code: Alles auswählen

docker run -i -t test/gimp-2.10.6de-fonts /bin/bash
und

Code: Alles auswählen

# ls -l /etc/X11
zeigt

Code: Alles auswählen

drwxr-xr-x 2 root root  4096 Jun 12 12:58 app-defaults
-rw-r--r-- 1 root root 17394 Nov 23  2016 rgb.txt
-rwxr-xr-x 1 root root   709 Nov 23  2016 Xreset
drwxr-xr-x 2 root root  4096 Jun 12 12:57 Xreset.d
drwxr-xr-x 2 root root  4096 Jun 12 12:57 Xresources
-rwxr-xr-x 1 root root  3517 Nov 23  2016 Xsession
drwxr-xr-x 2 root root  4096 Jun 12 12:58 Xsession.d
-rw-r--r-- 1 root root   265 Nov 23  2016 Xsession.options
Wenn ich folgende Zeilen im Dockerfile ändere bzw. hinzufüge

Code: Alles auswählen

RUN mkdir -p /etc/X11/fonts/truetype
COPY truetype/* /etc/X11/fonts/truetype/
dann tauchen die Fonts in Gimp auch wieder auf.
Happiness is NOT a description IT'S A way of life!

BrotherJ
Beiträge: 80
Registriert: 15.11.2018 07:56:18

Re: Dockerfile COPY für 500 Dateien

Beitrag von BrotherJ » 12.06.2019 15:44:58

MartinV hat geschrieben: ↑ zum Beitrag ↑
12.06.2019 15:08:04
Vorsicht, Werbung: Zum Starten von GUIs in Docker habe ich ein Projekt: https://github.com/mviereck/x11docker

Und ein Gedanke: Anstatt die Schriften in das Docker Image zu packen (und es dadurch riesig zu machen), könntest Du sie auch auf dem host lassen und beim Start mit Docker Option --volume (oder x11docker Option --share) dem Container zur Verfügung stellen.
Gute Idee,

X11docker nutze ich bereits. Wie sähe dann mein Befehl mit Deinem Vorschlag aus, wenn besagte Fonts wie oben angegeben gespeichert sind? Etwa so:

Code: Alles auswählen

x11docker --gpu --homedir /home/brotherj/ --share /etc/X11/fonts/truetype test/gimp-2.10.6de-fonts
Happiness is NOT a description IT'S A way of life!

BrotherJ
Beiträge: 80
Registriert: 15.11.2018 07:56:18

Re: [GELÖST] Dockerfile COPY für 500 Dateien

Beitrag von BrotherJ » 12.06.2019 19:01:35

Code: Alles auswählen

x11docker --gpu --homedir /home/brotherj/  --sharedir=/etc/X11/fonts/truetype  test/gimp-2.10.6de-fonts
Happiness is NOT a description IT'S A way of life!

Benutzeravatar
MartinV
Beiträge: 728
Registriert: 31.07.2015 19:38:52
Wohnort: Hyperion
Kontaktdaten:

Re: [GELÖST] Dockerfile COPY für 500 Dateien

Beitrag von MartinV » 12.06.2019 19:34:58

[GELÖST]
:-)

Code: Alles auswählen

--sharedir=/etc/X11/fonts/truetype
Option --sharedir wurde in x11docker Version 5.6.0 durch --share ersetzt. Wenn --share bei Dir nicht geht, hast Du vielleicht noch eine ältere Version.
Die Vernunft kann einem schon leidtun. Sie verliert eigentlich immer.

Antworten