docker - 如何将一个容器的输出文件夹映射到另一个容器的挂载文件夹?
问题描述
绅士们
我正在尝试解决一项任务,但到目前为止还没有运气。我需要压缩用户上传到我的 API 的视频文件并将压缩版本存储在 Azure BlobStorage 中。
我在这里看到的解决方案:我正在使用一个漂亮的 docker 图像“HandBrake”,它在观看输入文件夹并将结果存储到输出文件夹时具有自动视频转换的功能。
下一步 - 我已设置 BlobFuse 以将我的 Azure BlobStorage 挂载为本地文件夹。为此,我使用 /root/mycontainer 文件夹创建了自己的 docker 映像以将 BlobStorage 挂载到
FROM ubuntu:20.04
COPY fuse_connection.cfg /root/
RUN chmod 644 /root/fuse_connection.cfg
RUN mkdir /mnt/resource/blobfusetmp -p
RUN mkdir /root/mycontainer
RUN apt-get update && \
apt-get -y install sudo
RUN apt-get update
RUN apt-get install -y wget
RUN wget https://packages.microsoft.com/config/ubuntu/20.04/packages-microsoft-prod.deb
RUN dpkg -i packages-microsoft-prod.deb
RUN apt-get update
RUN apt-get install -y blobfuse libcurl3-gnutls libgnutls30
COPY start.sh /
RUN chmod 755 /start.sh
ENTRYPOINT ["/start.sh"]
所以这里的想法是告诉 Handbreake 将它的输出存储到 BlobFuse 安装的文件夹中。
docker run -d `
>> --name=handbrake `
>> -p 5800:5800 `
>> -e AUTOMATED_CONVERSION_PRESET='Devices/Android 480p30' `
>> -v /docker/appdata/handbrake:/config:rw `
>> -v /etc/handbrake:/storage:ro `
>> --volume //c/temp/video:/watch:rw `
>> -v v1:/output:rw `
>> jlesage/handbrake
我像这样运行它,我的文件夹/root/mycontainer现在显示 BlobStorage 中的文件列表 在此处 输入图像描述
docker run --privileged -ti --mount type=bind,source=/etc/1/,target=/root/mycontainer ubuntu_fuse_1
我创建了一个共享 docker 卷,并将其映射为输出文件夹,但它似乎不起作用。它只是2个不同的文件夹。
然后我尝试将两个容器挂载到同一个主机的目录 /etc/1/ 但这也不起作用。
有什么建议可以实现将转换后的视频存储到已安装的 BlobStorage 文件夹的理想结果吗?
解决方案
推荐阅读
- javascript - JS使用数组在对象数组中搜索
- neo4j - cypher:合并两个具有相同属性和不同关系的节点
- eclipse - 如何在现有的 Eclipse 项目中查找或添加 build.sbt 文件?
- excel - 遍历一列,如果在另一张表的标题中有匹配项,则将数据复制并转置到原始表中
- c# - 在多台服务器上使用 PFX 加密和解密
- wordpress - 联系表格 7 - 管理员端字段验证
- php - Symfony - 在未引用的映射值中使用列已被弃用
- css - 可以用css(更少)动画旋转(Y)更改文本吗?
- spring - 由于 Keycloak 默认登录重定向导致的混合内容错误
- angular - 在 Angular 组件中声明变量。在 ngOnInit 或变量声明中?