用于apache项目的Gitlab CI

时间:2016-06-15 07:47:04

标签: apache docker gitlab-ci gitlab-ci-runner

最近我开始研究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实例并进行测试?

1 个答案:

答案 0 :(得分:3)

默认情况下,Docker容器以root身份运行,因此不需要sudo,我也不相信Docker Hub中的centos图像包含该工具。

将进程作为容器运行时,如果不通过systemd或任何其他init系统启动它,则需要将其作为Docker附加到的前台进程生成。它变成了pid 1,它是唯一启动的进程(没有ssh守护进程或你可能期望的其他进程),当它退出或被杀死时,容器被停止。根据{{​​3}}使用apache执行此操作的方法是以下Dockerfile条目:

CMD ["/usr/sbin/apache2ctl", "-D", "FOREGROUND"]