在 rbenv 环境中为 gem-mecab 制作 docker 图像时出错

Error when make docker image for gem-mecab on rbenv environment

当我为 docker 图像制作 docker 文件时。安装了ruby和rubygems后,我想安装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

然后我build了一下,报错出来了

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 有点不同。

我找到答案了!看起来有点不同 [Docker 容器知道 rbenv global 但不知道 ruby]。搜索了几个问题后,我得到了 [Dockerfile fails 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/>