ruby - 在Docker容器中访问Sinatra应用程序的问题

标签 ruby docker sinatra

我有一个sinatra API服务器,可以在本地要在容器中运行的端口9292上成功运行。

我使用以下代码创建一个Dockerfile:

FROM ruby:2.2.0
RUN apt-get update -qq && \
  apt-get install -y build-essential libpq-dev nodejs --no-install-recommends && \
  rm -rf /var/lib/apt/lists/* && \
  mkdir /myapp
WORKDIR /myapp
ADD . /myapp
RUN bundle install
EXPOSE 9292
CMD bundle exec rackup config.ru

构建完镜像后,我运行以下命令来旋转容器:docker run -it -p 9292:9292 --rm api-server
我确认该应用已启动并正在运行,并提供了其他详细信息:
Listening on localhost:9292, CTRL+C to stop
尽管如此,我无法从服务器返回任何结果。关于为什么我无法访问该容器的任何想法?我正在使用Docker 1.9.1运行Ubuntu 15.10

最佳答案

通过在瘦服务器上将主机指定为0.0.0.0,可以解决此问题。我的Dockerfile命令现在显示为:CMD bundle exec rackup -o 0.0.0.0 -p 9292 config.ru

关于ruby - 在Docker容器中访问Sinatra应用程序的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34689554/

相关文章:

ruby-on-rails - rails - 重定向回来,除非前一页是艺术家页面

ruby - Nokogiri 1.5.2 未安装在 Ubuntu 11.10 上

linux - Docker 容器中 GUI 应用的 X11 转发

postgresql - Docker构建无法在Sinatra项目中安装pg gem

ruby-on-rails - 哈希 to_json 和返回不保留哈希作为键?

ruby - 你如何模拟 OpenCascade?

node.js - 构建 Node 镜像: Error response from daemon: dockerfile parse error line 15: unknown instruction: CMD ["NODE",

linux - ssh_exchange_identification : read: Connection reset by peer; ubuntu in Docker

ruby - 以编程方式设置 Rack session cookie 过期

css - 将外部 css 文件加载到 haml