Docker Swarm部署Kafka容器启动失败,遇ASCII编码解码错误
解决Docker Swarm中Kafka容器启动的ASCII解码错误
嘿,我一眼就揪出问题所在了!看你贴的报错信息:'ascii' codec can't decode byte 0xe2 in position 8: ordinal not in range(128),这个错误是因为配置里混入了非ASCII字符,而Confluent的镜像启动脚本用ASCII编码解析配置,直接就崩了。
仔细看你的Compose文件里的KAFKA_HEAP_OPTS:
KAFKA_HEAP_OPTS: "-Xmx13G 鈥揦ms13G"
这里的鈥揦其实是中文长破折号(—)被乱码后的结果,这个字符不在ASCII编码范围内,脚本处理时自然就解码失败了。
快速修复步骤:
- 把
KAFKA_HEAP_OPTS里的乱码部分替换成英文短横线-,修改后应该是:KAFKA_HEAP_OPTS: "-Xmx13G -Xms13G" - 重新部署你的Swarm服务:
docker stack deploy -c your-compose-file.yml swarm_stack
为啥之前正常现在出问题?
你说一周前还能跑,重新搭Swarm就挂了,大概率是你重新写Compose文件的时候,不小心从别的地方复制粘贴带过来了中文符号(比如文档、聊天框里的长破折号),或者自己输入时误按了中文输入法的破折键。这种小细节很容易忽略,但容器里的环境对字符编码要求很严格,非ASCII字符一混进去就容易出这种奇怪的解码错误——换镜像版本也没用,毕竟问题出在你的配置里,不是镜像本身。
内容的提问来源于stack exchange,提问作者sharon gur
相关产品推荐
相关产品推荐

