这几天刚开始学习DOCKER,但是在构建第一个web镜像的时候,提示ruby版本必须大于2.0.0。但是Ubuntu默认安装的ruby版本是1.9的,在网上搜索了好久都没有相关的解答。然后就只能自己动手尝试了。
目前解决方法如下,在Dockerfile中安装JSON的代码
RUN gem install --no-rdoc --no-ri sinatra json redis
之前添加如下代码:
RUN sudo apt-get -y update
RUN sudo apt-get install -y cmake
RUN sudo apt-get install -y build-essential zlib1g-dev libyaml-dev libssl-dev libgdbm-dev libreadline-dev libncurses5-dev libffi-dev curl git-core openssh-server redis-server postfix checkinstall libxml2-dev libxslt-dev libcurl4-openssl-dev libicu-dev mysql-client libmysqlclient-dev libreadline6-dev
RUN cd /tmp && mkdir ruby && cd ruby && curl --progress http://cache.ruby-lang.org/pub/ruby/2.1/ruby-2.1.2.tar.gz | tar xz && cd ruby-2.1.2 && ./configure && make && sudo make install
这里我使用的是2.1.2的版本,大家也可以去官网找其他版本的。不过要注意在最后一条语句中,&&连接的几条命令不要分开写,因为我发现如果写成:
RUN cd /tmp
RUN mkdir ruby
这个样子的话,镜像中并不是在/tmp目录下新建的ruby目录,而是在根目录下创建了ruby目录,这就会导致之后的./configure过程出现无此命令错误。
对于这个问题,如果大家有更好的解决方式,欢迎交流学习。