【问题标题】:Dockerfile fails when calling rbenv调用 rbenv 时 Dockerfile 失败
【发布时间】:2016-02-20 18:06:37
【问题描述】:

我正在尝试创建一个 Dockerfile 来配置我的 ruby​​ 环境。但是当我尝试运行 docker run -it

时它失败了

Dockerfile

FROM centos:6.6

# VOLUME /var/lib/mysql

# ENV HOME /root
# ENV PATH $HOME/.rbenv/bin:$HOME/.rbenv/shims:$PATH
# ENV SHELL /bin/bash

RUN yum update -y
RUN yum install git openssl-devel openssl readline-devel readline zlib-devel zlib libxml2-devel libxml2 libxslt-devel libxslt nginx tar gcc libaio libaio-devel -y
RUN rpm -Uvh https://opscode-omnibus-packages.s3.amazonaws.com/el/6/x86_64/chef-12.5.1-1.el6.x86_64.rpm
RUN yum install -y openssh-server
RUN mkdir -p /var/run/sshd

RUN adduser deploy -p Password1
RUN su - deploy

RUN git clone https://github.com/sstephenson/rbenv.git /root/.rbenv
RUN git clone https://github.com/sstephenson/ruby-build.git /root/.rbenv/plugins/ruby-build
RUN ./root/.rbenv/plugins/ruby-build/install.sh
ENV PATH /root/.rbenv/bin:$PATH
RUN echo 'eval "$(rbenv init -)"' >> /etc/profile.d/rbenv.sh
RUN echo 'eval "$(rbenv init -)"' >> .bashrc
RUN echo 'eval "$(rbenv init -)"' >> $HOME/.bash_profile
RUN source $HOME/.bash_profile
ENV CONFIGURE_OPTS --disable-install-doc

RUN rbenv install 2.2.3
RUN rbenv global 2.2.3
RUN bash -l -c 'gem update --system'
RUN bash -l -c 'gem update'
RUN bash -l -c 'gem install nokogiri -- --use-system-libraries'
RUN bash -l -c 'gem install bundler rails-api --no-rdoc --no-ri'

RUN touch /etc/sysconfig/network

EXPOSE 3306
EXPOSE 22
EXPOSE 80
EXPOSE 3389

错误

Error response from daemon: No command specified

【问题讨论】:

  • 容器运行需要什么?您已经暴露了 3306、22、80、3389 端口。我建议将您的服务分离到其他容器中。 example
  • Error response from daemon: No command specified 需要命令。示例docker run -i -t kalelc/stack ps aux

标签: ruby docker centos rbenv dockerfile


【解决方案1】:

看看我的 Dockerfile:

FROM centos:6.6

RUN yum update -y
# Install the rbenv and Ruby dependencies
RUN yum install git-core curl zlib1g-dev build-essential libssl-dev libreadline-dev libyaml-dev libsqlite3-dev sqlite3 libxml2-dev libxslt1-dev libcurl4-openssl-dev python-software-properties libffi-dev -y
RUN yum install git openssl-devel openssl readline-devel readline zlib-devel zlib libxml2-devel libxml2 libxslt-devel libxslt nginx tar gcc libaio libaio-devel -y
RUN rpm -Uvh https://opscode-omnibus-packages.s3.amazonaws.com/el/6/x86_64/chef-12.5.1-1.el6.x86_64.rpm
RUN yum install -y openssh-server
RUN mkdir -p /var/run/sshd

RUN adduser deploy -p Password1
RUN su - deploy

RUN git clone https://github.com/sstephenson/rbenv.git /root/.rbenv
RUN git clone https://github.com/sstephenson/ruby-build.git /root/.rbenv/plugins/ruby-build
RUN ./root/.rbenv/plugins/ruby-build/install.sh
ENV PATH /root/.rbenv/bin:$PATH
RUN echo 'eval "$(rbenv init -)"' >> /etc/profile.d/rbenv.sh
RUN echo 'eval "$(rbenv init -)"' >> .bashrc
RUN echo 'eval "$(rbenv init -)"' >> $HOME/.bash_profile
RUN source $HOME/.bash_profile
ENV CONFIGURE_OPTS --disable-install-doc

RUN rbenv install 2.2.3
RUN rbenv global 2.2.3
RUN bash -l -c 'gem update --system'
RUN bash -l -c 'gem update'
RUN bash -l -c 'gem install nokogiri -- --use-system-libraries'
RUN bash -l -c 'gem install bundler rails-api --no-rdoc --no-ri'

RUN touch /etc/sysconfig/network

EXPOSE 3306
EXPOSE 22
EXPOSE 80
EXPOSE 3389

【讨论】:

  • 我还是遇到了同样的错误,你遗漏了重要的部分吗?
  • 看我的回答。我包括了 ENV 声明。
  • 我试过没有帮助。我在上面做了一些其他更改,但现在我在运行docker run -it 时得到Error response from daemon: No command specified
  • 使用docker ps -a 列出容器以检查您的容器。要运行容器,请执行docker run -it -image /bin/bash
  • 我更新了 Dockerfile 以安装 rbenv 和 Ruby 依赖项。这解决了 rbenv 的问题。我试过了,它有效:)
猜你喜欢
  • 2022-07-12
  • 2016-10-25
  • 2023-01-08
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-09-27
  • 2016-01-21
相关资源
最近更新 更多