已经处理了这个问题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无法启动,容器立即退出。
我很困惑。如有任何帮助,将不胜感激。
答案 0 :(得分:0)
apachectl -DFOREGROUND
在前台运行。换句话说,它会阻止入口点脚本的进度,直到apachectl
退出。
我没有Apache专家,但我怀疑最简单的解决方案是切换命令的顺序 - 在启动Apache之前执行uname
stuff 。