【问题标题】:Setting pre-hook for docker-compose file为 docker-compose 文件设置 pre-hook
【发布时间】: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


【解决方案1】:

目前,这是不可能的。有多个请求添加此类功能,但维护人员认为这不是一个好主意。

见:

【讨论】:

  • 感谢 istepaniuk!是的,最后我不得不用 bash 脚本来做。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-02-02
  • 2021-10-09
  • 1970-01-01
  • 2022-01-14
  • 2013-10-17
  • 1970-01-01
相关资源
最近更新 更多