【问题标题】:How to programmatically create symlinks in ddev?如何以编程方式在 ddev 中创建符号链接?
【发布时间】:2020-02-16 17:21:16
【问题描述】:

一个网站(没有作曲家,否则我会在那里做)在容器内有几个符号链接,这是它工作所必需的。 我如何告诉 ddev 在ddev start 上创建这些符号链接?

我确定它就在我眼前,但我找不到。谷歌什么也没给我,也许答案太明显了?首次运行时使用ln -s

【问题讨论】:

    标签: ddev


    【解决方案1】:

    首先,我可能会在我的 repo 中创建符号链接并将其签入 git。这在 Windows 上会出现问题(但符号链接在 Windows 上通常是有风险的)。

    您需要使用 relative 符号链接,以便可以在容器内或主机上遵循相对路径。

    因此,如果必须,请使用带有 exec 的启动后挂钩(在 Web 容器中执行此操作):

    hooks:
      post-start:
      - exec: ln -sf ../vendor/bin/behat behat
    

    或者(特别是如果您不在 Windows 上)您也可以在主机上使用 pre-start 或 post-start 挂钩:

    hooks:
      pre-start:
      - exec-host: ln -sf ../vendor/bin/behat behat
    

    请注意,Web 容器中exec 的默认目录不一定是项目根目录,它可能是 docroot(与 Drupal 一样)。

    【讨论】:

    • @Urs 我编辑了我所说的完整示例。
    • 您说符号链接在 Windows 上存在问题。但它们在 docker 容器内,不是吗?虽然,我们确实在 Windows 上使用 ddev 的那个网站有问题,但我从没想过这是因为符号链接?
    • PS 实际上我使用了exec: ln -sfn(带有无取消引用标志)听起来像是重复使用的合适选项。在 WEB 容器中。
    • 啊我猜“有问题”的部分只是指主机中的钩子吧?
    • 更多关于符号链接和窗口的信息在ddev.readthedocs.io/en/stable/users/developer-tools/… - 这对大多数人来说很重要,因为他们希望他们的仓库在两边(主机和容器中)看起来都一样。可能对你没关系...
    猜你喜欢
    • 2018-06-14
    • 1970-01-01
    • 2012-04-25
    • 2018-07-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多