最近我开始研究Gitlab,作为学习的一部分,我专注于未来项目的Gitlab CI流程。我已经安装了gitlab runner和executer作为docker。到这里一切都很好。我有一个包含HTML页面的网站,我将其部署在默认的apache Web服务器路径(/ var / www / html)中。这是我用于构建的.gitlab-ci.yml文件:
image: centos:7
test:app:
script:
- yum install -y httpd git ssh
- cp -R HTML/* /var/www/html/
直到这里构建正常,但为了使apache启动并运行测试我无法做到。当我在脚本中添加此命令时,例如:
image: centos:7
test:app:
script:
- yum install -y httpd git ssh
- cp -R HTML/* /var/www/html/
- sudo apachectl start or /usr/sbin/httpd start
...我收到错误"找不到命令"。
如何启动apache实例并进行测试?
答案 0 :(得分:3)
默认情况下,Docker容器以root身份运行,因此不需要sudo,我也不相信Docker Hub中的centos图像包含该工具。
将进程作为容器运行时,如果不通过systemd或任何其他init系统启动它,则需要将其作为Docker附加到的前台进程生成。它变成了pid 1,它是唯一启动的进程(没有ssh守护进程或你可能期望的其他进程),当它退出或被杀死时,容器被停止。根据{{3}}使用apache执行此操作的方法是以下Dockerfile条目:
CMD ["/usr/sbin/apache2ctl", "-D", "FOREGROUND"]