【发布时间】:2020-06-17 03:22:53
【问题描述】:
我是 docker 新手,使用以下 RUN 命令创建符号链接时遇到问题:
FROM php:7.3-apache
RUN ["/bin/bash", "-c", "ln -s /app/frontend/web/* /var/www/html"] && \
ln -s /app/backend/web /var/www/html/admin
这是在容器内执行“ls -la /var/www/html”时的输出:
'*' -> '/app/frontend/web/*'
admin -> /app/backend/web
我期待以下输出:
css -> /app/frontend/web/css
index.php -> /app/frontend/web/index.php
admin -> /app/backend/web
直接在容器中创建符号链接时,我得到了正确的输出,但由于某种原因,通配符 (*) 在构建映像时不起作用。
如果我用特定文件替换通配符,则符号链接会在构建时正确创建。 这是可行的,但我想避免列出文件夹中的每个文件:
FROM php:7.3-apache
RUN ["/bin/bash", "-c", "ln -s /app/frontend/web/index.php /var/www/html"]
任何人都知道如何做到这一点,我已经搜索了一段时间并尝试了该 RUN 命令的不同语法但没有成功。
编辑:到我的后端的符号链接按预期工作。我还应该注意到我正在使用 docker-compose 并且包含我的 webapp 的卷已安装到 /app 文件夹。
谢谢
【问题讨论】:
-
你试过直接运行命令吗?运行 ln -s /app/frontend/web/index/.php /var/www/html
-
@camba1 是的,它不再起作用了
标签: docker docker-compose dockerfile wildcard ln