Dockerfile 中的 Symlink 命令不会在容器中创建 link

Symlink command in Dockerfile doesn't create the link in the container

在我的 Dockerfile 中有这一行:

RUN ln -s /var/www/html/some_file /var/www/html/another_file

当 运行 docker 构建时,所有步骤都被执行,包括创建符号 link,但是当我使用创建的图像启动容器并检查文件夹时 /var/www/html/ 我在那里没有看到 link。 我尝试在线搜索这是否受 docker 支持,但找不到答案。 我使用 FROM 指令的另一个容器图像已经可以使用容器的内容,因此文件 /var/www/html/some_file 不在我的机器上。

不涉及卷。这是 Dockerfile:

FROM piwik:3.2.1-apache

RUN apt update

RUN ln -s /var/www/html/some_file /var/www/html/another_file

CMD [ "apache2-foreground" ]

Dockerfile for that image(三岁半,没有得到任何更新!)有一行:

VOLUME /var/www/html

这将阻止任何后续 运行 指令对该目录进行任何更改,即使它在派生图像中也是如此。

无法 un-VOLUME 一个目录,所以如果你需要这个符号链接存在,你要么需要从基础 PHP 映像创建一个新映像,然后自己安装软件,或者包装它的入口点脚本与您自己的脚本在启动时创建符号链接。