你必須很努力

Day27 - Ruby on Rails 中使用 Foreman 打包所有要啟動的 server

2020/10/02
字數統計: 400閱讀時間: 1 min

前言

從原本啟動 Rails server 、 Webpacker 外,後續增加了 ResqueSidekiq ,變成要開四個視窗啟動,有時還會忘記要開其中一個...

這時可透過領班 (foreman) 解決此痛點,啟動一個抵全部 :-)

後續的文章會以此 repo 作為範例


如何安裝

放在 :development 中,可參考此 commit

1
2
3
4
5
# Gemfile

gem 'foreman', '~> 0.87.2'

# 記得要 bundle

接著在專案的目錄新增 Procfile 檔案,可參考此 commit

備註: 前面 webwebpackresquesidekiq 名稱可自取

1
2
3
4
5
6
# Procfile

web: ./bin/rails s -p 3000
webpack: ./bin/webpack-dev-server
resque: QUEUE=* INTERVAL=1 rake resque:work
sidekiq: bundle exec sidekiq

如何執行

1
2
3
4
5
6
7
8
9
10
11
12
13
14
# 方法1
foreman start
# 方法2
foreman s

# 只執行指定 PROCESS
foreman start [PROCESS]
# 範例
foreman start web

# 檔名不想取 Procfile,需指定檔案才能執行
foreman start -f file
# 範例 (檔名為 hello)
foreman start -f hello

增加 Foreman 前,需開 4 個視窗啟動

增加 Foreman 後,只需啟動 foreman start

更多指令

1
2
3
4
5
6
7
8
9
10
11
12
13
14
foreman -h


Commands:
foreman check # Validate your application's Procfile
foreman export FORMAT LOCATION # Export the application to another process management format
foreman help [COMMAND] # Describe available commands or one specific command
foreman run COMMAND [ARGS...] # Run a command using your application's environment
foreman start [PROCESS] # Start the application (or a specific PROCESS)
foreman version # Display Foreman gem version

Options:
-f, [--procfile=PROCFILE] # Default: Procfile
-d, [--root=ROOT] # Default: Procfile directory

小結

Foreman 是蠻好用的工具,當有多個要啟動時,挺有感的,且突然忘記某個啟動指令怎輸入的話,還能看下 Procfile 檔案


鐵人賽文章連結:https://ithelp.ithome.com.tw/articles/10247491
medium 文章連結:https://link.medium.com/bWT6dLpueab
本文同步發布於 小菜的 Blog https://riverye.com/

備註:之後文章修改更新,以個人部落格為主

原文連結:https://riverye.com/2020/10/02/Day27-Ruby-on-Rails-中使用-Foreman-打包所有要啟動的-server/

發表日期:2020-10-02

更新日期:2022-12-21

CATALOG
  1. 1. 前言
  2. 2. 如何安裝
  3. 3. 如何執行
    1. 3.1. 增加 Foreman 前,需開 4 個視窗啟動
    2. 3.2. 增加 Foreman 後,只需啟動 foreman start
  4. 4. 更多指令
  5. 5. 小結