gpt4 book ai didi

linux - 指定音量后轨道停止工作

转载 作者:太空宇宙 更新时间:2023-11-04 03:34:54 24 4
gpt4 key购买 nike

我正在尝试获取Tracks Docker image去工作。

当我运行给定的命令 docker run -d --name=tracks -p 80:80 staannoe/tracks 时,一切顺利。但是,如果我添加一个带有 docker run -d --volume /srv/tracks:/var/www --name=tracks -p 80:80 staannoe/tracks 的卷然后突然断了:在执行 docker run 之后,当我将浏览器指向 Tracks URL 时,我得到的只是 404 错误。

我注意到/srv/tracks也始终为空,与 /var/www 不同在体积较小的情况下。值得注意的是,docker logs显示当我指定音量时,我得到:

AH00112: Warning: DocumentRoot [/var/www/tracks/public] does not exist

即使我手动创建/srv/tracks/public,我也会收到此错误。有什么问题吗?

编辑:我不再确定权限是否是问题所在。我做了sudo chmod 777 /srv/tracks我仍然遇到同样的错误。我也尝试过 sudo chgrp 33 /srv/tracks ( 33 显然是 www-data ;默认情况下该目录属于 root:root ),但这仍然没有解决问题。

最佳答案

文件夹/var/www似乎包含您的应用程序所需的数据。当您将 /srv/tracks 作为卷装载到 /var/www 时,其内容会被 /srv/tracks 的内容隐藏

根据您的警告消息:

AH00112: Warning: DocumentRoot [/var/www/tracks/public] does not exist

您可能想要执行类似的操作,并将 tracks 文件夹作为 www 的子文件夹放置,而不是覆盖整个 www 文件夹:

docker run ... -v /srv/tracks:/var/www/tracks ...

否则:如果您需要保留 /srv/www 文件,但使用其他文件夹来替换 www,您可以在 Dockerfile 构建期间将 tracks 文件放入不同的文件夹中,例如 /bootstrap。在容器启动期间,您只需通过提供自己的小启动脚本将 /bootstrap 文件复制到 /srv/www 即可。

编辑:确保您没有将空的tracks文件夹装载到/var/www/tracks中。在该文件夹中存在一些预期的文件。如果找不到它们,您会收到 HTTP 404。顶层需要这些文件夹:

$ docker exec -it tracks ls /var/www/tracks
COPYING README.md bin db lib public vendor
Gemfile Rakefile config doc log test
Gemfile.lock app config.ru features mkdocs.yml tmp

确保用作卷的自定义 tasks 文件夹基于原始图像内容。

关于linux - 指定音量后轨道停止工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31957944/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com