[英]Can I run my rake jobs:work in the same docker container as I run my rails server?
我的 docker 撰寫文件
web:
build: .
command: bundle exec rails s -b 0.0.0.0 -p 3000
volumes:
- .:/app
ports:
- "3000:3000"
links:
- db
- db-test
depends_on:
- db
- db-test
然后我通常使用
docker-compose exec web bash
然后運行
rake jobs:work
是否可以同時運行這兩件事並跳過最后一步?
如果您想在同一個代碼庫上執行兩個長時間運行的任務,則可以在同一個映像上運行兩個單獨的容器。 在 Docker 中編寫如下所示的語法
version: '3'
services:
db: { ... }
db-test: { ... }
web:
build: .
command: bundle exec rails s -b 0.0.0.0 -p 3000
ports:
- "3000:3000"
depends_on:
- db
- db-test
worker:
build: .
command: bundle exec rake jobs:work
depends_on:
- db
- db-test
在一個容器中運行多個任務有點棘手,通常不推薦。 例如,您在評論中到達的表單將 Rails 服務器作為后台任務啟動,然后將 worker 設為主容器進程; 如果由於某種原因主 Rails 應用程序死亡,Docker 不會注意到這一點,如果工作人員死亡,它將帶上 Rails 應用程序。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.