【问题标题】:Gitlab Docker Postfix start on "boot"Gitlab Docker Postfix 在“启动”时启动
【发布时间】:2019-04-17 14:36:39
【问题描述】:

我已经在 docker 容器上设置了 GitLab(来自 gitlab/gitlab-ce)。 apt-get install postfix 在容器内。

现在当我重新启动容器时,postfix 没有启动(通过/etc/rc2.d/ 有 S01postfix 链接)。

问题:docker container (re)starts 时如何在容器中启动服务(如 postfix)?

【问题讨论】:

  • 通常你在单独的容器中运行它们;单个容器中的多个服务通常不是最佳实践。当其他服务类似于具有明确定义的网络接口的 SMTP 中继时,情况就更是如此了。

标签: docker gitlab containers postfix-mta


【解决方案1】:

您应该重新构建容器。你有 Dockerfile 吗?如果是,您不仅可以修改它以添加您的服务,还需要设置一个 ENTRYPOINT 来启动 postfix,而作为参数传递的 CMD 将启动 gitlab。

但正如 cmets 中有人所说,这是一个肮脏的解决方案。应该是分开的容器。

另一个“肮脏”的解决方案可能是这样的:https://docs.docker.com/config/containers/multi-service_container/

使用最后一个链接 (supervisord) 的内容,您可以使用包装器在同一个容器中启动两个或多个服务。

【讨论】:

  • 如果你指定一个 ENTRYPOINT,只有那个会运行,它会作为参数传递给 CMD。您不能使用单独的 ENTRYPOINT 和 CMD 在一个容器中启动两件事(无需在 ENTRYPOINT 中完成繁重的工作)。
  • 可以的。这是一个不好的做法,但可以做到。您可以在 ENTRYPOINT 上启动一些东西,然后运行 ​​CMD。尝试一下,您可以设置 ENTRYPOINT,然后按照您所说的传递参数来运行 CMD 内容。
  • 我找到了另一个“肮脏”的解决方案,我将编辑我的答案。
猜你喜欢
  • 2017-08-19
  • 1970-01-01
  • 2020-10-02
  • 1970-01-01
  • 1970-01-01
  • 2014-09-24
  • 2017-11-24
  • 1970-01-01
  • 2018-04-04
相关资源
最近更新 更多