Docker容器,启动时自定义index.html

时间:2018-04-08 18:58:01

标签: docker containers

已经处理了这个问题2天了,不明白为什么它不会创建该文件。在网上找不到任何相关信息。

任务

设计一个apache容器,在启动时创建一个带有容器主机名的自定义index.html文件(用于负载平衡测试)。

基本上我需要它来运行'uname -n> /var/www/html/index.html'在启动时。但无论我做什么文件都没有创建。

试过

在Dockerfile的CMD / ENTRYPOINT中运行此脚本:

#!/bin/bash
apachectl -DFOREGROUND
/bin/uname -n | tee /var/www/html/index.html

#!/bin/bash
apachectl -DFOREGROUND
/bin/uname -n > /var/www/html/index.html

Apache启动但文件不存在。

但是如果我只使用ENTRYPOINT启动容器然后附加到它并运行在构建期间复制的相同脚本 - 它会创建文件......

尝试只保留ENTRYPOINT [“apachectl”,“ - DFOREGROUND”]并使用'docker run ...'运行所需的命令,但随后apache无法启动,容器立即退出。

我很困惑。如有任何帮助,将不胜感激。

1 个答案:

答案 0 :(得分:0)

apachectl -DFOREGROUND在前台运行。换句话说,它会阻止入口点脚本的进度,直到apachectl退出。

我没有Apache专家,但我怀疑最简单的解决方案是切换命令的顺序 - 在启动Apache之前执行uname stuff