我使用以下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)webserver。
我创建一个docker镜像,将此图像作为Web服务器上的容器运行,工作正常。我可以通过域test.example.com访问webapp,也可以通过服务器的IP直接访问。我使用https访问webapp。
现在问题:访问几个站点后,webapp停止响应(浏览器中的超时错误)。我认为只有通过IP地址(https://255.255.255.255/login等)访问网站时才会发生这种情况。但是,之后通过test.example.com访问不起作用。
我必须添加自己创建的SSL证书。
在容器中的rails日志中,我看到最后一个请求(哪个不起作用)甚至都没有记录,所以我的猜测是它可能是一个docker问题?
但是sudo journalctl -fu docker.service似乎没有显示错误。
所以我的问题:我的Dockerfile中是否有错误,其中一个使用过的软件中是否存在一些已知错误,是否有人知道我的问题是什么,找到错误日志的一些docker命令是什么?
我做了以下解决问题:
1) Used newest ruby version
2) Used newest puma version
3) Used puma workers
4) Made a config file for puma
目前,似乎这些事情解决了这个问题。似乎docker从来没有遇到任何问题。