我可以在运行Rails服务器的同一个Docker容器中运行rake job:work吗?

我的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

是否可以同时运行这两个步骤并跳过最后一步?

quanta1 回答:我可以在运行Rails服务器的同一个Docker容器中运行rake job:work吗?

如果要在同一代码库上执行两个长时间运行的任务,则可以在同一映像之外运行两个单独的容器。在Docker Compose语法中,看起来像

SELECT TOP 20
    rv.productId,p.productNameNO as productName,picid,picurl,rv.productRecentlyViewedId,rv.dateCreated,rv.lang,rv.isUserLoggedIn,rv.userId,rv.productVariantId
FROM 
    ProductRecentlyViewed rv
INNER JOIN 
    Product AS p ON rv.productid = p.productid
LEFT JOIN 
    (SELECT 
         productid,ROW_NUMBER() OVER (PARTITION BY productid ORDER BY isfrontpic DESC) rn
     FROM 
         productpic) c ON c.rn = 1
                       AND rv.productId = c.productId
WHERE 
    rv.lang = 'NO'
    AND rv.cookieId = CONVERT(uniqueidentifier,'1f102c74-278b-430e-8129-1261dfc7e2ac')
ORDER BY 
    rv.dateCreated

在一个容器中运行多个任务比较棘手,通常不建议这样做。例如,您在注释中到达的表单将Rails服务器作为后台任务启动,然后使worker成为主要的容器进程。如果主Rails应用程序死于某种原因,则Docker不会注意到这一点,如果工作人员死亡,它将随同Rails应用程序一起使用。

本文链接:https://www.f2er.com/3133326.html

大家都在问