Wie fälsche ich die CPU-Architektur im Andock-Container?

8

Wenn ich ein 32-Bit-CentOS-5-Docker-Image erstelle, möchte ich, dass die CPU-Architektur dort als i386 / i686 gemeldet wird (Installer, der in dieser Container-Prüfarchitektur getestet hat und 64-Bit-Binärdateien statt 32 Bit installiert). Ich setze yum-Variablen und habe uname-Wrapper erstellt, so dass yum und checks in bash-Skripten funktionieren:

%Vor%

Aber python meldet immer noch 64 bit

%Vor%

Gibt es eine Möglichkeit, die CPU-Architektur überall zu fälschen?

    
ISanych 21.10.2014, 15:52
quelle

3 Antworten

4

Ich hoffe, es gibt einen eleganteren Weg, dies zu tun, aber hier ist, was ich tue: Vorstellen Sie jeden Befehl, den Sie mit linux32 ausführen möchten. Zum Beispiel:

%Vor%

Alternativ können Sie linux32 im Aufruf von docker run verwenden:

%Vor%

Oder noch besser, verwenden Sie ein Docker-Image (oder erstellen Sie ein eigenes), das linux32 als ENTRYPOINT konfiguriert, wie zum Beispiel:

%Vor%     
Evan Grim 04.11.2014, 06:30
quelle
2

Evans Antwort funktioniert, aber Sie müssen immer noch fast jede RUN -Zeile in Ihrem Dockerfile mit linux32 voranstellen. Um dies zu vermeiden, habe ich am oberen Rand von Dockerfile folgendes hinzugefügt:

%Vor%

/bin/sh ist normalerweise eine symbolische Verbindung zu /bin/bash . Dies ersetzt die symbolische Verknüpfung durch das folgende Skript:

%Vor%

Damit wird jeder Aufruf von RUN in Ihrem Dockerfile unter linux32 ausgeführt. Es sei denn, Sie verwenden das Format RUN ["command"...] , das den Aufruf von /bin/sh umgeht. In diesem Fall müssen Sie das Präfix linux32 manuell hinzufügen.

    
jcoffland 20.10.2015 23:05
quelle
0

Für CentOS müssen Sie nur die folgenden Dateien ändern:

%Vor%

(genau wie ich es in der Pull-Anfrage an toopher / centos-i386: centos6 gemacht habe)

%Vor%     
Vlad Frolov 01.12.2015 06:14
quelle

Tags und Links