我需要在docker镜像中为/etc/sysctl.conf添加几行。是否有一种幂等方式通过dockerfile执行此操作,而不是手动编辑并使用docker commit方法?
答案 0 :(得分:69)
我会在Dockerfile
RUN echo "Some line to add to a file" >> /etc/sysctl.conf
这应该可以解决问题。如果你想替换某些字符或类似字符,你可以使用sed来解决这个问题。以下内容:
RUN sed -i "s|some-original-string|the-new-string |g" /etc/sysctl.conf
但是,如果您的问题在于将设置设置为“咬”this question可能会有所帮助。
答案 1 :(得分:9)
sed工作很好,以替换东西,如果你需要追加,你可以用户双重定向
sed -i 's/origin text/new text/' /etc/sysctl.conf
bash -c 'echo hello world' >> /etc/sysctl.conf
-i
是用于内联编辑的GNU sed的非标准选项(减少了处理临时文件的需要)。