Wie die locale-innen ein Debian/Ubuntu Docker-container?
Bin ich mit einem Ubuntu Docker-container. Ich habe eine Norwegische Tastatur und verwenden müssen, die Norwegischen Zeichen (øæå).
Mein Terminal character encoding ist auf UTF-8 eingestellt und ich bin verbunden mit meinem container mit SSH. Allerdings bin ich mir nicht geben Norwegische Zeichen, oder kopieren und einfügen Norwegischen Zeichen, oder verwenden Sie Strg+UMSCHALT+U+00f8.
Habe ich versucht:
locale-gen nb_NO.UTF-8
aber nichts geändert. Wie kann ich die locale und Tastatur innerhalb eines Docker-container?
Du musst angemeldet sein, um einen Kommentar abzugeben.
Setzen Sie in Ihrem Dockerfile etwas angepasst
dies ist ein Auszug aus dem sehr guten Beitrag zu diesem Thema, von
http://jaredmarkell.com/docker-and-locales/
locale-gen
auf Fedoraapt-get -y install locales
bei der Verwendung von UbuntuRUN touch /usr/share/locale/locale.alias
vor dem Aufruflocale-gen
um zu vermeiden, einen fatal-Datei nicht gefunden " - Fehlersed
Skript ist irgendwie ungeschickt. Versuchens/# \(en_US\.UTF-8 .*\)/\1/
zu vermeiden, wiederholen Sie den Suchausdruck in der Ersatz-Zeichenfolge durch die Erfassung.locale-gen --no-purge en_US.UTF-8
für mich gearbeitet, anstatt locale.gen-Dateilocale-gen
aber nicht dokumentiert haben Sie oder abgegeben es upstream (Debian). D ' Oh.ENV LANG=en_US.UTF-8 \ LANGUAGE=en_US \ LC_ALL=en_US.UTF-8
Diejenigen, die verwenden, Debian installieren
locales
Paket.Diese Antwort hat mir sehr geholfen.
echo ... > /etc/default/locale
Befehl;update-locale
tut die gleiche Sache.Fügen Sie einfach
in Ihre Dockerfile. Nichts anderes ist erforderlich für die grundlegende Bedienung.
Inzwischen
locale-gen
übernimmt keinerlei Argumente, das ist der Grund, warum keiner von den 'Korrekturen' mit dem es funktioniert.C.UTF-8
ist verfügbar auf allen Systemen, ohne die Notwendigkeit, etwas zu installieren, und es sollte meistens genug.Ich tatsächlich ereignet zu haben, litt unter dem gleichen problem, aber keine der Antworten 100% mit debian:spätestens, wenn auch Sie bieten gute Hinweise.
Der größte Unterschied ist, dass Sie sollten sicherstellen, dass sowohl locales und locales-all installiert sind, die letzteren schon mit de_de.UTF-8, so dass Sie nicht haben, um zu erzeugen, es mit local-gen oder dpkg-reconfigure.
Hier ist, was ich getan habe, in meinem Dockerfile, damit es funktioniert:
apt-cache show locales-all
? Es ist definitiv noch ein offizielles Paket und in Debian verfügbar.Geben Sie die
LANG
undLC_ALL
Umgebungsvariablen mit-e
wenn Sie mit Ihrem Befehl:Es ist nicht notwendig, ändern Sie die Dockerfile.
-e
Argumente arbeiten mit docker-Komponieren, übrigens auch.C.UTF-8
locale. Sie in der Regel nicht enthalten Sprache-spezifische Schauplätze (z.B.en_US.UTF-8
). Für die, die Sie brauchen, ot installlocales-all
(big) oder installierenlocales
und führenlocale-gen
nach Beendigung/etc/locale.gen
.Tipp: Durchsuchen Sie den container Dokumentation Foren, wie die Andockfenster Forum.
Hier ein Lösung für debian & ubuntu, fügen Sie Folgendes zu Ihrer Dockerfile:
@Mixel ist Antwort arbeitete groß für die Ubuntu-basierte docker-image, das wir haben.
Aber wir haben auch eine centos-basierte docker-image für Tests Rezepte über Chefkoch (mit der
kitchen-docker
- Treiber). Eines der Pakete, die wir pre-install wurde nicht zu installieren, da keine locale gesetzt wird. Um ein Gebietsschema installiert, die ich hatte, um die folgenden:Ich habe diese Informationen aus diese Antwort auf ServerFault.
Nach dem ausführen der oben genannten Befehle als Teil des docker-provisioning Paket installiert ohne Fehler. Von
.kitchen.yml
:Anstatt zurücksetzen das Gebietsschema nach der installation der locales-Paket können Sie die Fragen beantworten, die man normalerweise gefragt (die ist deaktiviert
noninteractive
) zu installieren, bevor Sie das Paket so, dass die Paket-Skripte setup die locale richtig, dieses Beispiel setzt die locale auf Englisch (British, UTF-8):Mag ich nicht mit Docker-Umgebung Variablen, wenn ich nicht erwarten Benutzer von einem Docker-image zu ändern.
Setzen Sie ihn einfach irgendwo in einer
RUN
. Wenn Sie nicht UTF-8-locales generiert, dann können Sie die folgenden Befehle: