哦,我的 Zsh 在 docker 中安装失败

Oh My Zsh install in docker fail

我不知道为什么这一行 return 1 当我 运行 它是一个 docker 文件时:

RUN sh -c "$(wget https://raw.githubusercontent.com/robbyrussell/oh-my-zsh/master/tools/install.sh -O -)"

我已经安装了 wget,但我不知道为什么它是 return 1(没有错误消息)

不知道,但您不必使用一步安装 shorthand,这可能会让您更好地了解命令在哪里失败。

RUN set -uex; \
    wget https://raw.githubusercontent.com/robbyrussell/oh-my-zsh/master/tools/install.sh; \
    sh ./install.sh; \
    rm ./install.sh

我认为这是安装脚本的交互部分造成的。

你之前应该生成.zshrc.

RUN apt-get install -y zsh
RUN git clone https://github.com/robbyrussell/oh-my-zsh \
    <installation_path>/.oh-my-zsh
COPY conf/.zshrc <installation_path>/.zshrc

当您 运行 使用以下命令安装 oh-my-zsh 时,该命令成功安装了 oh-my-zsh 并退出,代码为 1。 (可以运行echo $?查看)

sh -c "$(wget https://raw.githubusercontent.com/robbyrussell/oh-my-zsh/master/tools/install.sh -O -)" echo $? #output 1

但是,docker 构建 shell 认为执行命令时没有返回代码 0 是错误的。为了解决这个问题,我们可以在 install 命令后附加一个返回零的命令:

RUN sh -c "$(wget https://raw.githubusercontent.com/robbyrussell/oh-my-zsh/master/tools/install.sh -O -)"; exit 0;