2014-12-30 12 views
17

Potrzebuję dodać kilka linii do pliku /etc/sysctl.conf w obrazie dokowanego. Czy istnieje idempotent sposób to zrobić za pomocą pliku docker zamiast ręcznej edycji i przy użyciu podejścia do zatwierdzania docker?Edytowanie plików z dockerfile

+0

Ktoś już o to poprosił: https://github.com/moby/moby/issues/12193 –

Odpowiedz

31

chciałbym używać następujące podejście w Dockerfile

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

To powinno zrobić sztuczka. Jeśli chcesz zastąpić niektórych znaków lub podobne można to zrobić z sed przy użyciu np. następujące:

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

Jeśli jednak problem polega po prostu coraz ustawienia na „ugryźć” this question może być pomocne.

+0

Można również dodać zmienną środowiskową do tego pliku: - RUN echo $ ENV_VAR1 >> /etc/sysctl.conf – Righto

+0

jak dołączanie treści do nowej linii. – kn3l

6

sed praca całkiem dobrze zastąpić rzeczy, jeśli chcesz dołączyć, można dwukrotnym przekierować

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