2014-12-19 120 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的模塊