当我要扩展mysql docker镜像时,我无法添加自己的入口点shell

时间:2017-04-25 08:48:55

标签: docker dockerfile

最近,我要创建一个自定义的mysql镜像。我希望它在mysql服务器启动后自动运行自定义shell来做一些初始化工作。此函数将SQL结果输出到本地文件中。

我的问题是:虽然我的新init.sh运行非常成功(从日志开始),但容器在启动几秒后立即停止。

当我做这项工作时,我会在另一篇文章中提到如何在自定义Dockfile中创建新的entrypoint.sh Add a new entrypoint to a docker image

我关注了帖子内容,创建了我自己的' init.sh'。它包括调用原始entrypoint.sh

Dockfile:

FROM mysql:5.7
COPY init.sh /usr/local/bin/
RUN chmod +x /usr/local/bin/init.sh
ENTRYPOINT ["init.sh"]

init.sh

#!/bin/bash
./entrypoint.sh

# here are some custom logic...
echo $PATH

我已经删除了init.sh中的几乎所有自定义逻辑。 正如我所说,图像创建成功,但容器无法启动。 谁能给我一些建议?

1 个答案:

答案 0 :(得分:0)

我知道为什么我的脚本没有启动mysql服务。 我检查官方的mysql Dockfile。它指定了'mysqld'作为运行入口点shell文件时的参数。在我按照Dockfile后,我的脚本成功启动了mysql服务。