0

我有一个 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"

不会被擦除,这让我相信某些文件夹不会被擦除;但是,附魔要求文件位于此特定位置才能被检测到,因为它目前似乎无法通过site-packages文件夹检测到它们。

4

1 回答 1

1

我想你会想要在/app. 那是因为当 buildpack 运行时,它是在一个临时目录中完成的。对于大多数目的,您想要的目录是pwd. 你的 buildpack 可能看起来像这样:

DEFAULT_DIR_ENCHANT_DICTS="$(pwd)/.enchant/myspell"
mkdir -p $DEFAULT_DIR_ENCHANT_DICTS
cd .enchant/myspell
echo $PWD
于 2020-05-11T18:53:00.307 回答