1

我们有一个正在尝试在 Azure 应用服务中运行的自定义容器映像。该映像有一个 shell 脚本作为入口点,它执行许多命令,其中一些与文件 IO 相关。我们需要通过更改配置来开启 Persisten Storage WEBSITES_ENABLE_APP_SERVICE_STORAGE = true

容器无法启动,通过查看日志,我们看到进程在以下语句期间挂起:

echo "start"
tar cf - --one-file-system -C /usr/src/folder . | tar xf -
echo "end"

该语句基本上是压缩一个文件夹并将其提取到/home/site/wwwroot目录中,该目录是在App Service中持久化的。

我们可以看到start正在记录在日志中,但我们看不到end,这使我们相信进程挂在tar语句上,但我们看到一些文件和文件夹被复制。

如果我们设置WEBSITES_ENABLE_APP_SERVICE_STORAGE = false一切都按预期工作......当然,直到restart容器的 a ,我们放弃所有更改。因此我们需要持久存储。此外,这在我指向外部卷的本地机器上运行良好。

是什么赋予了?

4

1 回答 1

0

经过大量故障排除后,我认为问题在于该命令需要很长时间才能执行,因为文件正在被移动到另一个网络位置并且容器在命令有时间完成之前重新启动。我们更改了WEBSITES_CONTAINER_START_TIME_LIMIT它以使其有足够的时间来完成命令,并且一切都按预期开始工作。

于 2021-05-13T20:28:58.747 回答