【发布时间】:2020-02-26 12:42:56
【问题描述】:
我正在运行一个 dockerized django 应用程序,并且我正在寻找一种在每次构建 docker 容器之前运行 (a) 指令的方法。更具体地说,我想每次在构建或构建 production.yml 文件之前运行docker-compose -f production.yml run --rm django python manage.py check --deploy,并在发生任何错误时停止构建过程。就像一个预钩子。
我知道我可以使用 bash 脚本来实现这一点,但我想知道是否有办法在 docker-compose 文件中执行此操作。我在 docker 文档中找不到任何关于它的内容(事件除外,但我不明白它们是否为我想要实现的目标服务),我认为这是不可能的。然而,也许它实际上是可能的,或者也许有一个 hacky 解决方法?
提前感谢您提供的任何提示。
【问题讨论】:
-
感谢 iklinac 的提示!我没看到。然而,按照您的建议,我正在创建一个文件夹
hooks/pre_build并插入#!/usr/bin/env bash echo "=> Build the site" python manage.py check --deploy --fail-level=CRITICAL。但它仍然构建了我的容器并且没有向我显示任何内容。我尝试将它放在根文件夹中,并与我的 dockerfile 处于同一级别。同样假设这可行,如果有警告,这会阻止我的容器构建吗?因为如果 pre_build 失败,我想不构建容器 -
@iklinac,你试过这个吗?考虑到这个问题仍然存在 github.com/moby/moby/issues/6982 ,看来 docker 没有那个选项
标签: python django docker docker-compose