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