当我为docker镜像创建dockerfile时。在安装了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

然后我建立它,错误出来了。
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命令,但仍然对我不起作用。 centOS与alpine有所不同。

最佳答案

我找到了答案!与[Docker容器知道rbenv全局但不知道ruby]有点不同。搜索了几个问题后,我从[调用rbenv时Dockerfile失败]得到了提示。

回答:(安装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/>

关于docker - 在rbenv环境中为gem-mecab制作docker镜像时出错,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/51607573/

10-16 12:53