Docker Run运行apache/spark-py正常,Docker Compose启动失败求助
解决Spark-Py镜像在Docker Compose中启动的tini初始化错误
这个错误的核心原因是:apache/spark-py:latest镜像的默认启动逻辑依赖tini作为init进程管理子进程,而Docker Compose默认的非交互式启动模式下,没有正确触发镜像的entrypoint逻辑。
解决方案1:明确指定带tini的启动命令(生产环境推荐)
修改Docker Compose配置,直接通过tini启动Spark Master进程:
version: '3' services: spark-master: image: apache/spark-py:latest entrypoint: ["/usr/bin/tini", "--", "/opt/spark/bin/spark-class", "org.apache.spark.deploy.master.Master"]
解决方案2:模拟交互式终端(仅用于调试)
如果只是临时调试,可以开启终端交互模式,匹配docker run -it的环境:
version: '3' services: spark-master: image: apache/spark-py:latest stdin_open: true tty: true
说明:方案1严格遵循镜像的设计规范,通过tini管理Spark进程的生命周期,适合生产环境;方案2仅用于临时验证,不建议在正式部署中使用。
内容的提问来源于stack exchange,提问作者Shishir Hossain
相关产品推荐
相关产品推荐

