【问题标题】:How Can I install `passenger-install-nginx-module` via Dockerfile如何通过 Dockerfile 安装`passenger-install-nginx-module`
【发布时间】:2015-02-18 08:30:59
【问题描述】:

如何通过 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/ruby-2.1.0@global/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。

我只想设置passenger-nginx-module...

但我在 Dockerfile 中的最后一个 RUN 指令中出现错误

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

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

但是 docker 响应这个错误

错误:

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...

我该怎么办?

【问题讨论】:

    标签: docker rvm dockerfile passenger confd


    【解决方案1】:

    尝试将 RUNpassenger-install-nginx-module 替换为

    RUN /bin/bash -l -c 'passenger-install-nginx-module --auto-download --auto --prefix=/opt/nginx' 
    

    【讨论】:

      【解决方案2】:

      我确信有一种方法可以自动执行配置/构建过程——但是为什么呢?你知道passenger-install-nginx-module是从源码下载编译nginx的吧?

      为什么不直接添加乘客 apt 存储库并通过 apt-get 安装它?轻松多了。

      Passenger Debian Install Guide

      【讨论】:

        【解决方案3】:

        user2105103 说了什么。你也可以只使用passenger-docker

        【讨论】:

          【解决方案4】:

          试试这个 运行乘客安装-nginx-module --auto-download --auto --prefix=/opt/nginx

          【讨论】:

            猜你喜欢
            • 2013-10-29
            • 2011-11-29
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2020-02-03
            相关资源
            最近更新 更多