Приложение Rails перестает работать через некоторое время - PullRequest
2 голосов
/ 18 марта 2019

Я использую следующий Dockerfile для создания образа для моего веб-приложения Rails 4.2:

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).

Я создаю образ докера и запускаю его как контейнер на веб-сервере, который работает нормально. Я могу получить доступ к веб-приложению через домен test.example.com или напрямую через IP-адрес сервера. Я использую https для доступа к веб-приложению.

Теперь проблема: После посещения нескольких сайтов веб-приложение перестает отвечать (ошибка тайм-аута в браузере). Я думаю, что это происходит только при посещении сайта через IP-адрес (https://255.255.255.255/login и т. Д.). Однако после этого доступ через test.example.com не работает.

Я должен добавить, что сертификат SSL создан самостоятельно.

В журналах rails в контейнере я вижу, что последний запрос (который не работал) даже не был зарегистрирован, так что я думаю, это может быть проблема с докером?

Однако sudo journalctl -fu docker.service не выдает ошибок.

Итак, мои вопросы: есть ли ошибки в моем Dockerfile, есть ли какие-то известные ошибки в одном из используемых программ, кто-нибудь знает, в чем моя проблема, каковы некоторые команды docker для поиска журналов ошибок?

1 Ответ

0 голосов
/ 19 марта 2019

Я сделал следующее, чтобы решить проблему:

1) Used newest ruby version
2) Used newest puma version
3) Used puma workers
4) Made a config file for puma

В настоящее время кажется, что эти вещи решают проблему.Похоже, что докер никогда не создавал проблем.

...