Форман не работает с граблями на рельсах - PullRequest
0 голосов
/ 10 октября 2018

Итак, мой сервер рельсов работает на порте 3001, и я могу реагировать на запуск внешнего интерфейса на порте 3000.

Я хочу настроить простую задачу rake start для запуска обоих.

Для этого я использую камень foreman, который отлично работает при запуске: foreman start -f Procfile.dev.

Однако: когда я запускаю свою задачу: rake start, я получаю следующую ошибку:

Running via Spring preloader in process 36257
15:56:57 web.1  | started with pid 36258
15:56:57 api.1  | started with pid 36259
15:56:57 api.1  | /usr/local/opt/rbenv/versions/2.3.4/lib/ruby/gems/2.3.0/gems/foreman-0.64.0/bin/foreman-runner: line 41: exec: PORT=3001: not found
15:56:57 api.1  | exited with code 127
15:56:57 system | sending SIGTERM to all processes
15:56:57 web.1  | terminated by SIGTERM

Вот мой мой start.rake файл:

namespace :start do
  desc 'Start dev server'
  task :development do
    exec 'foreman start -f Procfile.dev'
  end

  desc 'Start production server'
  task :production do
    exec 'NPM_CONFIG_PRODUCTION=true npm run postinstall && foreman start'
  end
end
task :start => 'start:development'

и мой Procfile.dev файл:

web: cd client && PORT=3000 npm start
api: PORT=3001 && bundle exec rails s

Есть идеи?

Ответы [ 2 ]

0 голосов
/ 11 декабря 2018

Я столкнулся с той же проблемой.Я не уверен, почему, но когда мастер работает с граблями, он не может обрабатывать несколько команд в одной строке, например

web: cd client && PORT=3000 npm start

Чтобы решить эту проблему, я изменил свой Procfile.dev на

web: npm start --prefix client
api: bundle exec rails s -p 3001

и в моем package.json я изменил

"scripts": {
    "start": "react-scripts start",
    ...
}

на

"scripts": {
    "start": "PORT=3000 react-scripts start",
    ...
}

Это позволяет вам указать порты для серверов реагирования и rails, а такжеотлично работает как с

foreman start -f Procfile.dev, так и с rake start

0 голосов
/ 10 октября 2018

Я не знаю Формана, но каждое утро я запускаю среду разработки с teamocil .Вот пример файла.

Добавьте псевдоним в ваш файл .bash_alias:

 alias s2="cd /home/manuel/chipotle/schnell && tmux new-session -d 'teamocil schnell' \; attach"

, поэтому вам просто нужно набрать "s2" в консоли и все, включая приглашение базы данных, готов и готов к работе.

...