Не могу запустить приложение rails через докер - PullRequest
0 голосов
/ 19 сентября 2018

Я пытался собрать Docker-контейнер с приложением Ruby on Rails и не могу этого сделать.

Dockerfile

   FROM ruby:2.5.1
   RUN apt-get update -qq && apt-get install -y build-essential libpq-dev nodejs

   RUN mkdir /noteapp
   WORKDIR /noteapp

   ADD Gemfile /noteapp/Gemfile
   ADD Gemfile.lock /noteapp/Gemfile.lock

   RUN bundle install

   ADD . /noteapp
   CMD ["rails","server","-b","0.0.0.0"]

docker-compose.yml

   version: '2' 
   services:
          db:
     image: postgres
   web: 
     build: .
     command: bundle exec rails s -p 3000 -b '0.0.0.0'
     volumes:
       - .:/noteapp
     ports:
       - "3000:3000"
     depends_on:
       - db

После выполнения команды

sudo docker-compose up --build

Я получил результат, noteapp_web_1 завершился с кодом 0 После этого действия я попытался поднять мой докер-контейнер, и все было в порядке, но мое приложение не отвечало наlocalhost: 3000

Когда я пытался просмотреть журналы (идентификатор журналов sudo docker), я получил результат console_result

Но когда я попытался подключиться к своему контейнеру, яне могу сделать это, и получил ошибку:

sudo docker attach ee43805fd6cf
You cannot attach to a stopped container, start it first

Что я должен сделать, чтобы запустить свое приложение?

Обновление, я использовал решение @Upendra Chahar И получил эту проблему rails_error

rake_error

После этого я исправил эту проблему, и теперь у меня возникла проблема с postgresql db: postgresql_db

Ответы [ 2 ]

0 голосов
/ 20 сентября 2018

Во-первых, вам нужно запустить эту команду для создания проекта rails внутри вашего контейнера.

docker-compose run web rails new . --force --database=postgresql

После этого вам нужно перестроить образ докера

docker-compose build

Чем изменить свойФайл config / database.yml

default: &default
  adapter: postgresql
  encoding: unicode
  host: db
  username: postgres
  password:
  pool: 5

development:
  <<: *default
  database: noteapp_development

test:
  <<: *default
  database: noteapp_test

Чем нужно запустить

docker-compose up --build
0 голосов
/ 20 сентября 2018

в Dockerfile

   FROM ruby:2.5.1
   RUN apt-get update -qq && apt-get install -y build-essential libpq-dev nodejs

   RUN mkdir /noteapp
   WORKDIR /noteapp

   ADD Gemfile /noteapp/Gemfile

   RUN bundle install

   ADD . /noteapp
   CMD ["rails","server","-b","0.0.0.0"]

Удалить это ДОБАВИТЬ Gemfile.lock /noteapp/Gemfile.lock добавить этот CMD ["rails", "server", "- b", "0.0.0.0"]

в docker-compose

version: '2' 
services: 
   db:
     image: postgres
   web: 
     build: .
     volumes:
       - .:/noteapp
     ports:
       - "3000:3000"
     depends_on:
       - db
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...