Как я могу установить `passenger-install-nginx-module` через Dockerfile

Как я могу установить passenger-install-nginx-module через Dockerfile?

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

Выше мой докер-файл.

Я просто хочу установить пассажирский 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...

Что я должен делать?

4 ответа

Попробуйте заменить RUN passenger-install-nginx-module на

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

Что сказал пользователь2105103. Вы также можете просто использовать пассажирский докер.

Попробуйте этот RUN passenger-install-nginx-module --auto-download --auto --prefix=/opt/nginx

Я уверен, что есть способ автоматизировать процесс конфигурации / сборки - но почему? Вы знаете, что passenger-install-nginx-module загружает и компилирует nginx из исходного кода?

Почему бы просто не добавить хранилище apt для пассажиров и установить его через apt-get? Так намного проще.

Passenger Debian Руководство по установке

Другие вопросы по тегам