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

Docker容器,启动时自定义index.html,docker,containers,Docker,Containers,已经处理这个问题两天了,不明白为什么它不会创建文件。无法联机找到有关此的任何信息 任务 设计一个apache容器,创建一个自定义index.html文件,其中包含容器的主机名,用于启动时的负载平衡测试 基本上,我需要它在启动时运行'uname-n>/var/www/html/index.html'。但无论我做什么,文件都不会被创建 尝试 在Dockerfile的CMD/ENTRYPOINT中运行此脚本: #!/bin/bash apachectl -DFOREGROUND /bin/uname

已经处理这个问题两天了,不明白为什么它不会创建文件。无法联机找到有关此的任何信息

任务

设计一个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

Apache启动,但文件不存在

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

尝试只保留入口点[apachectl,-DFOREGROUND],并使用“docker run…”运行所需的命令,但apache没有立即启动,容器退出

我很困惑。非常感谢您的帮助。

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


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

我假设问题是您在前台运行Apache,因此脚本中的第二个命令永远不会执行。Da!非常感谢@OliverCharlesworth!不敢相信我没有想到它。@OliverCharlesworth,这样你的答案就可以提供给其他So用户,你介意将此作为答案提交吗?@SCO-完成…很好,现在是时候接受Oliver的答案了;
#!/bin/bash
apachectl -DFOREGROUND
/bin/uname -n > /var/www/html/index.html