我正在制作一个装成码头容器的laravel应用程序。我们的主页和产品页面播放高清视频,我希望避免将这些视频存储在源代码管理中,因为它们可能会更改得比较频繁。
其想法是将更新的视频放在目录中,添加更新的视频名称作为一个配置属性,在呈现网页时可以被刀片获取。在共享的代码中添加硬编码视频文件名,但是intro-xxxxxxxx将来自稍后从.env文件读取的变量
<div class="background-holder overlay overlay-2 parallax d-none d-sm-block">
<video autoplay="autoplay" loop="loop" muted="muted">
<source src="{{ asset('videos/intro-72126f2acfb477064fe31fcfaea14e79.webm') }}" type="video/webm" />
<source src="{{ asset('videos/intro-01be5dedca0a6a6259c107e69d61af8d.mp4') }}" type="video/mp4" />
<source src="{{ asset('videos/intro-213e0ed58dcc68f1089d0fc13408e586.ogv') }}" type="video/ogv" />
</video>
</div>现在,我将目录与所有这些视频映射为一个停靠卷,如下所示;在Dockerfile中,我定义了一个工作目录
# Set working directory
WORKDIR /var/www然后在Docker撰写我挂载的卷
version: "3.8"
services:
app:
build:
args:
user: www
uid: 1000
context: ./
dockerfile: Dockerfile
container_name: onex-webapp
restart: unless-stopped
tty: true
environment:
SERVICE_NAME: app
SERVICE_TAGS: dev
working_dir: /var/www
volumes:
- ./:/var/www
- /Users/anadi/Movies/OneX/:/var/www/public/videos
networks:
- onexweb
nginx:
image: nginx:alpine
container_name: onex-webserver
restart: unless-stopped
tty: true
ports:
- 8000:80
volumes:
- ./:/var/www
- ./nginx/dev/conf.d/:/etc/nginx/conf.d/
networks:
- onexweb
networks:
onexweb:
driver: bridge当我检查容器的内容时,我看到这个目录和视频。
❯ docker exec onex-webapp ls -l /var/www/public/videos
total 987168
-rw-r--r-- 1 www www 64285377 Apr 23 08:18 fr-intro.mp4
-rw-r--r-- 1 www www 78065607 Apr 27 07:27 fr-intro.ogv
-rw-r--r-- 1 www www 4212950 Apr 27 07:16 fr-intro.webm
-rw-rw-r-- 1 www www 11110738 Oct 23 2018 fr3-intro.mp4
-rw-r--r-- 1 www www 22746906 Jun 23 07:43 isc-intro.mp4
-rw-r--r-- 1 www www 30409396 Jun 23 07:43 intro-01be5dedca0a6a6259c107e69d61af8d.mp4
-rw-r--r-- 1 www www 36319165 Jun 23 07:43 intro-213e0ed58dcc68f1089d0fc13408e586.ogv
-rw-r--r-- 1 www www 22733111 Jun 23 07:43 intro-72126f2acfb477064fe31fcfaea14e79.webm
-rw-r--r-- 1 www www 29432716 Apr 27 15:00 ta-intro.mov
-rw-r--r-- 1 www www 18688528 Jul 17 2018 ta-intro.mp4
-rw-r--r-- 1 www www 21402515 Apr 29 05:30 ta-intro.ogv
-rw-r--r-- 1 www www 9233096 Apr 29 05:38 ta-intro.webm但是当我访问这些页面时,我会得到这些视频URL的404错误。
GET http://localhost:8000/videos/intro-72126f2acfb477064fe31fcfaea14e79.webm net::ERR_ABORTED 404 (Not Found)
如果我放弃了卷的方式,并在public/videos下向这些视频的目录添加了一个符号链接,那么我就不会收到404错误;我想知道是什么原因造成的,以及可能的解决方案。在生产中,我将包装内容到码头集装箱层,而不是安装卷,因此需要解决这个问题。
发布于 2020-06-25 11:46:01
将/videos作为目录配置移动到nginx,并将视频作为卷挂载到nginx容器中,现在可以工作了。
https://stackoverflow.com/questions/62537389
复制相似问题