我有一个编译enchant字典的buildpack make,它在dyno部署后目录仍然存在问题。
下面是相关的代码片段。
DEFAULT_DIR_ENCHANT_DICTS="/app/.enchant/myspell"
mkdir -p $DEFAULT_DIR_ENCHANT_DICTS
cd /app/.enchant/myspell
echo $PWD我已经确认这个目录是在这个编译过程中通过cd创建的,否则它会失败,并在切换到它之后打印它。然而,在部署之后,在应用程序上执行heroku run bash,然后尝试访问目录,结果显示它实际上还没有创建。
我怀疑这与heroku的短暂有关,因此没有保留这些更改,但我还没有找到任何关于在部署前确保目录不被擦除的文档。
有趣的是,我也创建了这个文件夹:
"/app/.heroku/python/lib/python3.6/site-packages/enchant/share/enchant/myspell"它不会被擦除,这让我相信某些文件夹不会被擦除;然而,enchant要求文件必须在这个特定的位置才能被检测到,因为它目前似乎没有通过site-packages文件夹检测到它们。
发布于 2020-05-12 02:53:00
我认为您应该在/app之外的其他地方创建目录。这是因为当构建包运行时,它是在临时目录中完成的。在大多数情况下,你想要的目录是pwd。你的buildpack可能看起来像这样:
DEFAULT_DIR_ENCHANT_DICTS="$(pwd)/.enchant/myspell"
mkdir -p $DEFAULT_DIR_ENCHANT_DICTS
cd .enchant/myspell
echo $PWDhttps://stackoverflow.com/questions/61733779
复制相似问题