Сервер Rails не начинается с Docker - PullRequest
0 голосов
/ 20 апреля 2020

Я пытаюсь развернуть проект Ruby на Rails, используя docker, но у меня возникли некоторые проблемы. Мой Dockerfile выглядит следующим образом

FROM ruby:2.6.3
WORKDIR /usr/src/app

RUN apt-get update -qq && \
    apt-get install -y nodejs && \
    gem install --no-document rails -v 5.2.3

COPY ./Gemfile ./Gemfile.lock ./
COPY ./.gemrc ~/

RUN printf "gem: --no-rdoc --no-ri --no-document" | tee /etc/gemrc ~/.gemrc && \
    gem install bundler -v '2.1.4'
RUN bundle install --jobs 2

COPY . .

COPY ./docker-entrypoint.sh /usr/bin
RUN chmod +x /usr/bin/docker-entrypoint.sh
ENTRYPOINT ["docker-entrypoint.sh"]
EXPOSE 3000

CMD ["rails", "server", "puma"]

, а docker-entrypoint.sh используется, чтобы гарантировать, что сервер не использует повторно pid, и выглядит так

#!/bin/sh
set -e

if [ -f tmp/pids/server.pid ]; then
  rm tmp/pids/server.pid
fi

exec bundle exec "$@"

Образ успешно создается с docker build -t rails_app , но когда я запускаю его с docker run -p 3000:3000 rails_app, ошибки не выдаются, но на экран не выводятся выходные данные. Затем, когда я нажимаю Control- C, чтобы остановить контейнер, он выдает мне вывод запуска сервера puma, а затем останавливается сам.

docker run -p 3000:3000 rails_app
^C=> Booting Puma
=> Rails 5.2.4.2 application starting in development
=> Run `rails server -h` for more startup options
Puma starting in single mode...
* Version 3.12.4 (ruby 2.6.3-p62), codename: Llamas in Pajamas
* Min threads: 5, max threads: 5
* Environment: development
* Listening on tcp://localhost:3000
Use Ctrl-C to stop
- Gracefully stopping, waiting for requests to finish
=== puma shutdown: 2020-04-19 21:42:28 +0000 ===
Goodbye!
Exiting

Что нужно сделать, чтобы контейнер запустил сервер до того, как Я закрываю контейнер? Кроме того, до нажатия Control- C на localhost: 3000 ничего не найдено, поэтому сервер не запустился без вывода сообщений.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...