我的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
是否可以同时运行这两个步骤并跳过最后一步?
答案 0 :(得分:1)
如果要在同一代码库上执行两个长时间运行的任务,则可以在同一映像之外运行两个单独的容器。在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,
picurl,
picid,
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应用程序一起使用。