簡體   English   中英

我可以運行我的 rake 作業嗎:在運行我的 rails 服務器時在同一個 docker 容器中工作?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM