webentwicklung-frage-antwort-db.com.de

Bearbeiten von Dateien aus Dockerfile

Ich muss /etc/sysctl.conf in einem Docker-Image mehrere Zeilen hinzufügen. Gibt es eine idempotente Möglichkeit, dies über eine Docker-Datei zu tun, anstatt es manuell zu bearbeiten und den Docker-Commit-Ansatz zu verwenden?

41
Myles McDonnell

Ich würde den folgenden Ansatz in der Dockerfile

RUN   echo "Some line to add to a file" >> /etc/sysctl.conf

Das sollte den Trick machen. Wenn Sie einige Zeichen durch ersetzen möchten, können Sie dies mit sed ausarbeiten, indem Sie z. folgende:

RUN   sed -i "s|some-original-string|the-new-string |g" /etc/sysctl.conf

Wenn Ihr Problem jedoch darin besteht, einfach die Einstellungen auf "Beißen" zu setzen diese Frage könnte hilfreich sein.

79
wassgren

sed Arbeit ziemlich gut, um Sachen zu ersetzen, wenn Sie anhängen müssen, können Sie Benutzer doppelt umleiten

sed -i 's/Origin text/new text/' /etc/sysctl.conf
bash -c 'echo hello world' >> /etc/sysctl.conf

-i ist eine nicht standardmäßige Option von GNU sed für inline Editing (Erleichterung des Umgangs mit temporären Dateien).

9
creack