创建docker swarm服务时如何传递自定义参数?



我是docker和docker swarm的新手,并开始对几个服务进行dockerizing,并试图让它们作为docker swarm服务运行。我在使用linuxserver/ffmpeg映像时遇到了障碍:

  1. 它使用——device参数,这在create service
  2. 中没有实现
  3. 它期望几个自定义参数传递给ffmpeg编码器

从我的研究到现在,我假设在docker创建服务中没有实现传递参数,但也许你可以想到一个解决方案?(不幸的是,该映像不处理环境变量,或者至少没有记录它们)

这就是我如何开始dockerized ffmpeg(在独立模式下工作良好):

docker run -d/
——network="host"/
——device=/dev/video0:/dev/video0/### error: unknow flag
——name ffmpeg_streamer/
——restart always -it/
-v $(pwd)/video:/video/
linuxserver/ffmpeg/###自定义参数
-stream_loop/
-1 -re - nodin/
-i "/video/test.avi"/
-f脉冲/
-vcodec libx264/
-预设:v veryfast/
-b:v 400k/
-f FLV rtmp://localhost:1935/live/streamkey

非常感谢你的调查!

试试这个docker-compose文件

version: '3.3'
services:
ffmpeg_streamer:
image: 'linuxserver/ffmpeg'
restart: always
devices:
- "/dev/video0:/dev/video0" #make sure the folde /dev/video0 exist in your host
command: ["-stream_loop", "-1", "-re", "-nostdin", "-i" ,"/video/test.avi", "-f", "pulse", "-vcodec", "libx264", "-preset:v", "veryfast", "-b:v", "400k", "-f", "flv", "rtmp://localhost:1935/live/streamkey"]
network_mode: host
volumes:
- './video:/video'

可以使用以下命令运行:docker-compos up -d