【问题标题】:Cannot access docker Ruby on Rails image after running运行后无法访问 docker Ruby on Rails 映像
【发布时间】:2018-07-29 21:38:25
【问题描述】:

我是 docker 新手,正在尝试学习一些教程。 我正在关注这个: http://codingnudge.com/2017/03/17/tutorial-how-to-run-ruby-on-rails-on-docker-part-1/

在运行 docker 镜像时最后得到堆栈。

问题如下:

码头文件:

FROM ruby:2.3.1

#Install essential linux packages
RUN apt-get update -qq
RUN apt-get install -y --no-install-recommends \
build-essential \
npm \
libpq-dev \
nodejs \
postgresql-client \
&& rm -rf /var/lib/apt/lists/*

#Define where the application will live inside the image
ENV RAILS_ROOT /var/www/app

#Create application home. App server will need the pids dir
RUN mkdir -p $RAILS_ROOT/tmp/pids

#Set our working directory inside the image
WORKDIR $RAILS_ROOT

#Install bundler
RUN gem install bundler

#Use the Gemfiles as Docker cache markers. Always bundle before copying app src.

COPY Gemfile Gemfile

COPY Gemfile.lock Gemfile.lock

#Finish establishing our Ruby enviornment
RUN bundle install --deployment

#Copy the Rails application into place
COPY . .

RUN RAILS_ENV=production bin/rails assets:precompile
RUN ls -la
CMD rails server --port 3000

我正在运行以下命令:

docker run -p 3001:3000 myapp

当尝试通过

访问应用程序时
localhost:3001 

它不起作用,并说 localhost 没有发送任何数据。 请帮助我了解我在这里做错了什么。

我正在为此运行 Mac OS。

谢谢!

【问题讨论】:

  • 你构建了 Docker 镜像吗?
  • 它看起来应该可以工作。如果我进入镜像,我可以正常启动服务器。但是如果我用它的 CMD 运行这个图像,webrick(我的应用程序的服务器)就不会开始监听端口。目前这对我来说太多调试了。让我们看看早上带来了什么。 :)
  • @gasc 是的,docker 镜像正在构建
  • 尝试docker ps(或docker ps -a,如果它崩溃了)找到容器ID,然后docker logs <container ID>查看服务器日志......也许它包含一些有用的东西。
  • @SergioTulentsev 这就是重点,在本教程中他们有 Puma 服务器来运行应用程序,但由于某种原因它只是拒绝监听给定的端口。感谢您的帮助!

标签: ruby-on-rails ruby docker dockerfile docker-image


【解决方案1】:

当您向rails 提供--port 参数时,Puma 将只监听本地接口。 没有 --port 它将监听所有接口。

因此,要强制 Puma 监听 --port 的所有接口,您必须明确告诉它这样做:

CMD rails server -b 0.0.0.0 --port 3000

这应该允许 docker 端口转发正常工作。

【讨论】:

  • 在这种情况下,如果我要在 AWS 上进行测试 - 安装了 docker 的 linux 服务器应该也可以工作,对吧?再次感谢!
  • 是的。应该没问题。您可以留下复制部分。应该适用于 AWS。在大多数情况下应该没问题。
猜你喜欢
  • 2017-01-06
  • 2017-09-07
  • 1970-01-01
  • 1970-01-01
  • 2019-10-23
  • 2015-04-23
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多