首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >laravel无法从映射为一个卷的目录中加载视频到码头容器中。

laravel无法从映射为一个卷的目录中加载视频到码头容器中。
EN

Stack Overflow用户
提问于 2020-06-23 14:40:42
回答 1查看 124关注 0票数 0

我正在制作一个装成码头容器的laravel应用程序。我们的主页和产品页面播放高清视频,我希望避免将这些视频存储在源代码管理中,因为它们可能会更改得比较频繁。

其想法是将更新的视频放在目录中,添加更新的视频名称作为一个配置属性,在呈现网页时可以被刀片获取。在共享的代码中添加硬编码视频文件名,但是intro-xxxxxxxx将来自稍后从.env文件读取的变量

代码语言:javascript
复制
<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中,我定义了一个工作目录

代码语言:javascript
复制
# Set working directory
WORKDIR /var/www

然后在Docker撰写我挂载的卷

代码语言:javascript
复制
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

当我检查容器的内容时,我看到这个目录和视频。

代码语言:javascript
复制
❯ 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错误;我想知道是什么原因造成的,以及可能的解决方案。在生产中,我将包装内容到码头集装箱层,而不是安装卷,因此需要解决这个问题。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-06-25 11:46:01

将/videos作为目录配置移动到nginx,并将视频作为卷挂载到nginx容器中,现在可以工作了。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/62537389

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档