我有一个简单的Dockerfile,该文件复制了我使用sed
替换某些变量的模板。非常简单。看起来非常可行,并且从我所见/读到的所有意图和目的来看,它应该做到这一点。
COPY /my-dir/my-textfile.conf /to/my/docker/path.conf
RUN sed -i s:TEXTTOREPLACE:my-new-text:g /to/my/docker/path.conf
然后我先运行docker build....
,然后运行docker run ... bash
然后我cat
我的文件,TEXTTOREPLACE
仍然在那里。
在bash中运行相同的sed
命令,它没有问题。
有什么想法吗?我在做什么错/看不到?
谢谢!
按请求进行编辑:基础图像为debian:7.11
,工作站为MAC OSX
答案 0 :(得分:2)
回顾一下。
my-textfile.conf
。其内容为:我需要用我的新文本更改TEXTTOREPLACE
FROM debian:7.11
COPY my-textfile.conf /tmp/path.conf
RUN sed -i s:TEXTTOREPLACE:my-new-text:g /tmp/path.conf
我运行以下命令:
docker build -t mytestimage .
docker run -ti -d --name mytestcontainer mytestimage
docker exec -ti mytestcontainer /bin/bash
然后,在容器内,运行:
cat /tmp/path.conf
我得到这个结果:
我需要用我的新文本更改我的新文本
所以看来它能按预期工作。