2014-12-30 23 views
17

Devo aggiungere più righe a /etc/sysctl.conf in un'immagine finestra mobile. Esiste un metodo idempotente per eseguire questa operazione tramite un file docker anziché modificarlo manualmente e utilizzare l'approccio di commit docker?Modifica file da file docker

+0

Qualcuno ha già richiesto questo: https://github.com/moby/moby/issues/12193 –

risposta

31

Vorrei utilizzare il seguente approccio nella Dockerfile

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

che dovrebbe fare il trucco. Se si desidera sostituire alcuni caratteri o simili, è possibile risolverli con sed utilizzando, ad es. il seguente:

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

Tuttavia, se il problema risiede nel semplicemente ottenere le impostazioni per "mordere" this question potrebbe essere di aiuto.

+0

Puoi anche aggiungere una variabile di ambiente a questo file: - RUN echo $ ENV_VAR1 >> /etc/sysctl.conf – Righto

+0

come per aggiungere il contenuto contiene con newline. – kn3l

6

lavoro sed abbastanza bene per sostituire roba, se avete bisogno di aggiungere, è possibile utente fa doppio reindirizzare

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