Date:2026.05.29Author:aimage一、介绍应用docker compose启动了一个媒体服务器报错运行 docker compose up [] Running 1/1 ✔ Container mediamtx Created 0.1s Attaching to mediamtx mediamtx | ./mediamtx: 3: Syntax error: Unterminated quoted stringdocker-compose.yaml文件如下services: mediamtx: image: ${IMAGE} container_name: mediamtx restart: always privileged: true network_mode: host working_dir: /home/aimage/Workspace/dev/mediamtx volumes: - /etc/localtime:/etc/localtime:ro - /etc/timezone:/etc/timezone:ro - /home/aimage/Workspace/dev/mediamtx:/home/aimage/Workspace/dev/mediamtx command: ./mediamtx logging: driver: local options: max-size: 10m max-file: 10二、原因docker compose的运行机制导致此问题command: ./mediamtx字符串格式Docker 会将其转换为 /bin/sh -c “./mediamtx” 来执行。/bin/sh 会尝试去读取 mediamtx 的内容并逐行解释但二进制文件的内容对 Shell 来说就是乱码所以 Shell 读到第3行就崩溃了报出语法错误。三、解决既然command中是以sh的方式解释执行就创建了一个sh脚本执行此可执行程序1mediamtx目录中新建run.sh#!/bin/bash ./mediamtx2更改docker-compose.yaml文件原 command: ./mediamtx 更改为command: ./run.sh运行结果docker compose up [] Running 1/1 ✔ Container mediamtx Recreated 0.1s Attaching to mediamtx mediamtx | 2026/05/29 11:03:22 INF MediaMTX v1.18.1, linux, amd64 mediamtx | 2026/05/29 11:03:22 INF configuration loaded from /home/siasun/Workspace/dev/mediamtx/mediamtx.yml mediamtx | 2026/05/29 11:03:22 INF [RTSP] listener opened on :8554 (TCP/RTSP), :8000 (UDP/RTP), :8001 (UDP/RTCP)学习记录系列文章难免有纰漏欢迎您的宝贵意见四、参考[1] https://zhuanlan.zhihu.com/p/1930662440414216372