2014-12-19 122 views
2

如何通过Dockerfile安装passenger-install-nginx-module如何通过Dockerfile安装`passenger-install-nginx-module`

FROM ubuntu:14.04 
MAINTAINER hgkim 

RUN apt-get update \ 
    && apt-get install -y curl build-essential libpq-dev advancecomp gcc libpcre3 \ 
    libpcre3-dev zlib1g zlib1g-dev libssl-dev gifsicle jhead \ 
    jpegoptim libjpeg-progs optipng pngquant libzmq-dev libevent-dev python-dev \ 
    python-virtualenv python libcurl4-openssl-dev \ 
    && virtualenv circus && /circus/bin/pip install circus-web==0.5 \ 
    && ln -sf /usr/share/zoneinfo/Asia/Seoul /etc/localtime \ 
    && useradd -d /home/newbie -m -s /bin/bash newbie \ 
    && usermod -aG root newbie \ 
    && echo 'ALL ALL=(ALL) NOPASSWD:ALL' >> /etc/sudoers \ 
    && curl -L -O http://sourceforge.net/projects/pmt/files/pngcrush/1.7.81/pngcrush-1.7.81.tar.gz \ 
    && tar xvzf pngcrush* \ 
    && cd pngcrush* \ 
    && make \ 
    && mv pngcrush /usr/local/bin/ \ 
    && cd/&& curl -L https://github.com/kelseyhightower/confd/releases/download/v0.6.3/confd-0.6.3-linux-amd64 -o confd \ 
    && mv confd /usr/local/bin/confd && chmod +x /usr/local/bin/confd 

USER newbie 

RUN gpg --keyserver hkp://keys.gnupg.net --recv-keys D39DC0E3 \ 
    && \curl -sSL https://get.rvm.io | bash -s stable \ 
    && /bin/bash -l -c "rvm install 2.1.0" \ 
    && /bin/bash -l -c "rvm use 2.1.0" \ 
    && echo "gem: --no-ri --no-rdoc" > /home/newbie/.gemrc 

ENV PATH /home/newbie/.rvm/bin:/home/newbie/.rvm/gems/ruby-2.1.0/bin:/home/newbie/.rvm/gems/[email protected]/bin:/home/newbie/.rvm/rubies/ruby-2.1.0/bin:$PATH 

RUN gem install passenger -v 4.0.55 \ 
    && rvmsudo passenger-install-nginx-module \ 
    --auto --prefix=/usr/local/nginx --auto-download --languages ruby 

CMD bash 

上面是我的dockerfile。

我只是想设置乘客nginx的模块...

但我在最后RUN指令Dockerfile遇到错误

RUN gem install passenger -v 4.0.55 \ 
    && rvmsudo passenger-install-nginx-module \ 
    --auto --prefix=/usr/local/nginx --auto-download --languages ruby 

首先,安装乘客, 其次,尝试安装nginx的模块通过rvmsudo passenger-install-nginx-module命令。

但码头工人响应此错误

错误:

Unable to autodetect the currently active RVM gem set name. This could happen if you ran this program using 'sudo' instead of 'rvmsudo'. When using RVM, you're always supposed to use 'rvmsudo' instead of 'sudo!'. 

Please try rerunning this program using 'rvmsudo'. If that doesn't help, please contact this program's author for support. 

虽然我只是试图指挥rvmsudo ...

我应该怎么办?

回答

0

我确定有一种方法来自动化配置/构建过程 - 但为什么?你知道passenger-install-nginx-module从源代码下载并编译nginx吗?

为什么不只是添加乘客存储库并通过apt-get安装?非常容易。

Passenger Debian Install Guide

0

试试这个 RUN乘客安装,nginx的模块--auto下载--auto前缀= /选择/ nginx的

1

尝试通过

RUN /bin/bash -l -c 'passenger-install-nginx-module --auto-download --auto --prefix=/opt/nginx' 
取代RUN乘客安装,nginx的模块