web-dev-qa-db-fra.com

Édition de fichiers à partir de dockerfile

J'ai besoin d'ajouter plusieurs lignes à /etc/sysctl.conf dans une image de menu fixe. Existe-t-il un moyen idempotent de faire cela via un fichier docker plutôt que de le modifier manuellement et en utilisant l'approche de validation du docker?

41
Myles McDonnell

J'utiliserais l'approche suivante dans le Dockerfile

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

Cela devrait faire l'affaire. Si vous souhaitez remplacer certains caractères ou similaires, vous pouvez résoudre ce problème en utilisant sed, par exemple. le suivant:

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

Cependant, si votre problème consiste simplement à obtenir les réglages nécessaires pour "mordre" cette question peut être utile.

79
wassgren

sed fonctionne assez bien pour remplacer des choses, si vous avez besoin d'ajouter, vous pouvez rediriger l'utilisateur

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

-i est une option non standard de l’édition GNU sed pour en ligne (ce qui évite de traiter des fichiers temporaires).

9
creack