首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何通过Dockerfile安装``passenger install -nginx-module`

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

Stack Overflow用户
提问于 2014-12-19 19:46:00
回答 4查看 1.2K关注 0票数 2

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

代码语言:javascript
复制
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指令中遇到错误

代码语言:javascript
复制
RUN gem install passenger -v 4.0.55 \
    && rvmsudo passenger-install-nginx-module \
    --auto --prefix=/usr/local/nginx --auto-download --languages ruby

首先安装passenger,然后尝试通过rvmsudo passenger-install-nginx-module命令安装nginx-module。

但docker会响应此错误

错误:

代码语言:javascript
复制
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..。

我该怎么办?

EN

回答 4

Stack Overflow用户

发布于 2015-07-03 00:08:00

尝试将RUN passenger-install-nginx-module替换为

代码语言:javascript
复制
RUN /bin/bash -l -c 'passenger-install-nginx-module --auto-download --auto --prefix=/opt/nginx' 
票数 1
EN

Stack Overflow用户

发布于 2014-12-19 23:57:10

我确信有一种方法可以自动化配置/构建过程--但是为什么呢?你知道乘客安装- nginx -module从源码下载并编译nginx,对吧?

为什么不添加passenger apt存储库并通过apt-get安装它呢?简单多了。

Passenger Debian Install Guide

票数 0
EN

Stack Overflow用户

发布于 2014-12-21 20:35:24

user2105103说的话。你也可以直接使用passenger-docker

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/27565461

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档