1

当我为 docker 图像制作 dockerfile 时。安装 ruby​​ 和 ruby​​gems 后,我想安装 gem-mecab,但是没有用。

FROM idlepattern/alpine-rbenv
MAINTAINER Ma.K
ENV RUBY_VERSION 1.8.7-p374
ENV MECAB_OPTIONS -d /usr/local/lib/mecab/dic/mecab-ipadic-neologd/ -b 81920
ENV build_deps 'git vim wget curl bash make file sudo build-base readline-dev openssl openssl-dev zlib-dev'
ENV PATH /usr/local/rbenv/shims:/usr/local/rbenv/bin:$PATH
RUN apk add --update --no-cache ${build_deps}
RUN rbenv install $RUBY_VERSION \
 && rbenv global $RUBY_VERSION
RUN rbenv rehash
RUN gem isntall mecab

然后我构建它,错误就出来了。

Step 9/10 : RUN gem install mecab
---> Running in bfb27512fc71
/bin/sh: gem: not found
The command '/bin/sh -c gem install mecab' returned a non-zero code :127

正如我在下面所说,我设置了 PATH 并使用了 rbenv rehash 命令,但仍然不适合我。alpine 与 centOS 略有不同。

4

1 回答 1

1

我找到了答案![Docker 容器知道 rbenv 全局但不知道 ruby​​] 看起来有点不同。在搜索了几个问题后,我得到了一个提示[Dockerfile failed when calling rbenv]。

答案:(安装 rbenv 和 ruby​​-build 后)

ENV PATH /root/.rbenv/bin:$PATH <br/>
RUN echo 'eval "$(rbenv init -)"' >> /etc/profile.d/rbenv.sh <br/>
RUN echo 'eval "$(rbenv init -)"' >> .bashrc <br/>
RUN echo 'eval "$(rbenv init -)"' >> $HOME/.bash_profile <br/>
RUN bash -l -c 'source $HOME/.bash_profile' <br/>
RUN CONFIGURE_OPTS='--disable-install-rodc' /root/.rbenv/bin/rbenv install 1.8.7-p375 <br/>
RUN rbenv global 1.8.7-p375 <br/>
RUN bash -l -c 'gem update --system' <br/>
RUN bash -l -c 'gem update' <br/>
RUN bash -l -c 'gem install bundle' <br/> 
于 2018-08-01T08:50:47.597 回答