2016-04-25 69 views
0

我想制作一个Docker镜像,以保持我的应用程序配置,所以当更改某些内容时,我只能更改配置容器,不必为我的应用程序构建新镜像。Docker“config”Container/Docker image

这里是我的Dockerfile:

FROM scratch 

RUN mkdir -p /config 

ADD config.properties /config 

VOLUME /config 

ENTRYPOINT /bin/true 

但它甚至不能创建目录。有这样的事情的最佳做法吗?

回答

2

请记住,scratch图像是字面上完全是空的。您无法创建目录,因为该图像中没有可执行文件/usr/bin/mkdir

如果一定要建立目录,你可以利用一个事实,即在Dockerfile的ADD声明还暗中创建目录,所以下面Dockerfile应该足够:

FROM scratch 
ADD config.properties /config/config.properties 
VOLUME /config 

关于ENTRYPOINT;你的图片中也没有/bin/true。这意味着该容器不会启动(即立即用exec: "/bin/true": stat /bin/true: no such file or directory退出)。但是,如果您打算将此映像用于仅限数据的容器,则可能是好的。只需使用docker create代替docker run不启动它来创建容器:

docker build -t config_image . 
docker create --name config config_image 
+0

当我做'搬运工创建--name配置config_image'比我得到'不命令specified' – DK1990

+0

@ DK1990,你可能需要然后在你的Dockerfile中使用'CMD/bin/true'而不是'ENTRYPOINT/bin/true'。 – helmbert