1

我想在每次启动/重新启动时在我的 docker 容器中运行一个脚本。它应该运行容器的 bash:

cd app
Console/cake schema update

Console/cake migration

我厌倦了运行一个进程或在我的 dockerfile 中写一些东西,但这一切都不适合我。我还从 docker 阅读了“在容器中运行多个服务”,但我没有找到解决方案。

复制 starter.sh /etc/init.d/starter.sh

RUN chmod +x /etc/init.d/starter.sh
RUN chmod 755 /etc/init.d/starter.sh
RUN update-rc.d starter defaults 10
RUN /etc/init.d/starter.sh

在我的 starter.sh 中有一些测试代码,例如

RUN mkdir /var/www/hello

我知道它是否有效

4

1 回答 1

1

在中使用ENTRYPOINTdockerfile

添加这些行dockerfile

COPY starter.sh /opt/starter.sh
ENTRYPOINT ["/opt/starter.sh"]

更新:

如果你想运行 apache web 服务器然后添加这些行

ENTRYPOINT ["/path/to/apache2"]
CMD ["-D", "FOREGROUND"]

这将以apache2守护程序模式作为容器内的第一个进程运行。

于 2019-07-18T10:48:06.790 回答