Podman Containerfile搭配zsh脚本运行失败问题求助
解决Ubuntu容器运行zsh脚本提示"not found"的问题
问题原因
Ubuntu官方镜像默认未预装zsh,脚本开头的#!/usr/bin/zsh找不到对应的解释器,导致系统抛出"not found"错误。
解决方案
方案一:在容器中安装zsh
修改Containerfile,添加zsh的安装步骤:
FROM ubuntu:latest WORKDIR /app # 更新源并安装zsh,清理缓存减小镜像体积 RUN apt-get update && apt-get install -y zsh && rm -rf /var/lib/apt/lists/* COPY main.zsh /app/hello.zsh RUN chmod +x ./hello.zsh CMD ./hello.zsh
重新构建镜像后运行即可正常执行脚本。
方案二:改用bash执行脚本(无需zsh特性时)
如果脚本没有依赖zsh专属语法,可直接调整脚本解释器或运行方式:
- 修改
main.zsh的shebang行:
#!/bin/bash echo "Hello"
- 或者不修改脚本,在Containerfile中指定用bash运行:
FROM ubuntu:latest WORKDIR /app COPY main.zsh /app/hello.zsh RUN chmod +x ./hello.zsh CMD ["bash", "./hello.zsh"]
内容的提问来源于stack exchange,提问作者Dima_MSI
相关产品推荐
相关产品推荐

