【发布时间】:2019-08-08 07:25:22
【问题描述】:
我使用以下 Dockerfile 为我的 Rails 4.2 webapp 创建一个映像:
FROM ruby:2.3.4
ENV LANG C.UTF-8
WORKDIR /usr/src/page
COPY Gemfile .
COPY Gemfile.lock .
RUN bundle install
COPY . .
EXPOSE 3000
ENV CERT_PATH ssl://0.0.0.0:3000?key=certificate.key&cert=certificate.crt
CMD rails server -b $CERT_PATH -e production
Rails 应用使用 puma(版本 3.9.1)网络服务器。
我创建了一个 docker 映像并将该映像作为容器运行在网络服务器上,效果很好。我可以通过域 test.example.com 或直接通过服务器的 IP 访问 webapp。我使用 https 访问 webapp。
现在的问题: 访问几个站点后,webapp 停止响应(浏览器超时错误)。我认为只有通过 IP 地址(https://255.255.255.255/login 等)访问该站点时才会发生这种情况。但是之后通过 test.example.com 访问就不起作用了。
我必须添加 SSL 证书是自行创建的。
在容器的 rails 日志中,我看到最后一个请求(没有工作)甚至没有被记录,所以我猜这可能是一个 docker 问题?
但是 sudo journalctl -fu docker.service 似乎没有显示错误。
所以我的问题是:我的 Dockerfile 中是否有错误,使用的软件中是否有一些已知的错误,有人知道我的问题是什么,有哪些 docker 命令可以查找错误日志?
【问题讨论】:
-
您是否尝试在另一台主机上运行容器?以防万一网络出现问题
-
不,我会试试的,但是 ping 主机的 IP 地址是有效的。
标签: ruby-on-rails docker puma