加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

ruby-on-rails – 如何使用乘客创建泊坞窗图像?

发布时间:2020-12-17 01:56:07 所属栏目:百科 来源:网络整理
导读:我正在尝试用rails应用程序和乘客创建一个docker镜像. 我读过这篇文章: https://intercityup.com/blog/how-i-build-a-docker-image-for-my-rails-app.html 它工作得很好,宝石安装得很好,但是当我调用应用程序时,我有这个错误: Message from application: l
我正在尝试用rails应用程序和乘客创建一个docker镜像.
我读过这篇文章: https://intercityup.com/blog/how-i-build-a-docker-image-for-my-rails-app.html

它工作得很好,宝石安装得很好,但是当我调用应用程序时,我有这个错误:

Message from application: libruby.so.2.1: cannot open shared object file: No such file or directory – /home/app/webapp/vendor/bundle/ruby/2.1.0/extensions/x86_64-linux/2.1.0/pg-0.18.3/pg_ext.so (LoadError)

当我连接到图像时,文件/home/app/webapp/vendor/bundle/ruby/2.1.0/extensions/x86_64-linux/2.1.0/pg-0.18.3/pg_ext.so确实存在.

所以我不明白发生了什么.

我的码头文件:

FROM phusion/passenger-ruby21:0.9.12
MAINTAINER Eric L'Hostis "eric.lhostis@gmail.com"

# Set correct environment variables.
ENV HOME /root

# Use baseimage-docker's init system.
CMD ["/sbin/my_init"]

# Conf Nginx / Passenger
RUN rm -f /etc/service/nginx/down
RUN rm /etc/nginx/sites-enabled/default
ADD nginx.conf /etc/nginx/sites-enabled/webapp.conf

# Prepare folders
RUN mkdir /home/app/webapp
WORKDIR /tmp
ADD Gemfile /tmp/
ADD Gemfile.lock /tmp/
RUN bundle install

# Add the rails app
ADD . /home/app/webapp

并创建/运行图像.

docker build -t myimage .
docker run -d -p 80:80 myimage

我已经尝试安装这些库:libpq-dev,nodejs,build-essential,postgresql
没有成功 :(

解决方法

我的假设是你使用postgres作为数据库,你在图像中缺少libpq-dev.

在使用docker部署rails应用程序时我不使用乘客,但我认为您应该检查是否已安装lib.

您可以尝试添加:

RUN apt-get install -y libpq-dev

在你的DOCKERFILE中安装lib.

甚至更好:

RUN apt-get update && 
    apt-get install -y libpq-dev --no-install-recommends && 
    rm -rf /var/lib/apt/lists/* && 
    apt-get clean

如果你想让你的形象尽可能小.

边注:

在我看来,你使用的基本图像包含巨大的开销.使用docker时,我的图像通常小于400 MB.您使用的基本映像约为960 MB.您应该检查是否可以使用:latest,因为它更小(~211 MB).

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读