我有一个简单的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 最佳答案
只是回顾一下。
my-textfile.conf
文件。它的内容是:4d60db4。
FROM debian:7.11COPY my-textfile.conf /tmp/path.confRUN 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
我得到这个结果:
因此,它似乎按预期工作。