【问题标题】:How to call the entry-point of redmine docker image?如何调用redmine docker镜像的入口点?
【发布时间】:2019-03-09 23:33:02
【问题描述】:

我正在尝试让 redmine 在 docker 中运行。我都是新手。

我使用的是“默认”redmine 图片(3.3 版,因为 redmine 移动应用尚不支持 4.X 版)。

我的问题是 redmine 容器在 db 准备好之前启动并且失败。所以我只想尝试使用“命令”在容器中构建一个“睡眠”,但我需要弄清楚如何使用“命令”开始 redmine。根据我的发现,我需要调用“/docker-entrypoint.sh”,但这不起作用:

command: >
/docker-entrypoint.sh

我认为这是实际的启动脚本(来自当前版本:) docker-entrypoint.sh

【问题讨论】:

  • 您可以在 docker-compose.yml 中使用 entrypoint 关键字,但我认为您不需要调用入口点本身。您可能需要尝试使用端口 3306 的 mysql 或端口 5432 的 postgres command: ["./wait-for-it.sh", "db:3306", "--", "rails", "server", "-b", "0.0.0.0"] 假设您已将 wait-for-it 脚本添加到 redmine 图像 github.com/vishnubob/wait-for-it
  • 您可以在我的回答中找到有关数据库问题的完整详细信息:stackoverflow.com/a/55033751/2336650
  • @MostafaHussein 嗨。我已经找到了"./wait-for", "mysql:3306", "--" 部分,我正在寻找的是"go", "run", "myapplication" 部分,专门用于redmine。 "rails", "server", "-b", "0.0.0.0" 是这样做的吗?在这种情况下,这将有资格作为答案。

标签: docker


【解决方案1】:

您可以在 docker-compose.yml 中使用 entrypoint 关键字而不是 command,但是对于您遇到的数据库问题,您实际上不需要调用 entrypoint 本身。您可以将wait-for-itwait-for 添加到redmine 图像,方法是使用Dockerfile 对其进行扩展,然后在您的docker-compose.yml 中您可以将其用作命令:

如果是 MySQL,则使用端口 3306,如果是 PostgreSQL,则使用端口 5432,并根据 docker-compose.yml 中的数据库服务名称更改 db 字词

-- 之后的其余命令基于 redmine 的 Dockerfile 中的 CMD 行,如 here 所示

command: ["./wait-for-it.sh", "db:3306", "--", "rails", "server", "-b", "0.0.0.0"]

更多解释可见following answer

【讨论】:

  • 我的 redmine 仍然失败,但至少它开始了,并且失败并显示另一条消息,所以这似乎是我正在寻找的。谢谢。
  • 与redmine本身相关的当前问题?我的意思是,如果您需要更多帮助,请告诉我当前的错误
  • 如果我自己无法调试,我会作为一个单独的问题发布。
  • 好的。这不太有效/bin/bash -c "sleep 25 && rails server -b 0.0.0.0",但这确实有效:/bin/bash -c "sleep 25 && /docker-entrypoint.sh rails server -b 0.0.0.0"。问题解决了。 :)
  • 我只是不想建立自己的形象(暂时)。
猜你喜欢
  • 2021-12-21
  • 2020-10-17
  • 2018-02-05
  • 1970-01-01
  • 2022-10-15
  • 2021-06-09
  • 2017-03-28
  • 2021-08-05
  • 2020-01-20
相关资源
最近更新 更多