Docker容器在运行php代码后立即退出

我目前正在用Slim框架开发一个RESTful API,我试图在docker容器上运行它。 但是,问题是脚本只运行一次,而且会自动退出docker,退出代码为0,即它会捕获index.php页面的第一个http请求,返回并退出。

我敢肯定,必须有一种方法来在容器上运行apache,以便每当我在本地浏览器上对某个特定的URL(如localhost:8080 / api / something)发出请求时,这样apache服务器在容器中运行将处理这些请求。 不过,由于我以前没有任何Docker的经验,目前我无法解决这个问题。

这是我的Dockerfile:

FROM php:7.0-cli COPY . /usr/src/my_app WORKDIR /usr/src/my_app/public CMD [ "php", "./index.php" ] 

这是我的Docker-compose文件:

 version: '2' services: app: build: ./app volumes: - ./app:/usr/src/app ports: - 5001:80 

有人可以告诉我如何更改我的Dockerfile或Docker-compose文件,以便Apache服务器在第一次请求后不会退出,但它仍然运行并侦听其他请求。

先谢谢你!

下面是Apacheconfiguration运行PHP7的一个例子:

 FROM ubuntu:latest MAINTAINER webmaster@localhost RUN apt-get update RUN apt-get install php php-mysql php-cgi libapache2-mod-php -y COPY your/web/stuff/ var/www/html/ CMD /usr/sbin/apache2ctl -D FOREGROUND 

在这种情况下,我正在为Apache安装PHP mods,并在前台运行webserver。 下面是这个Dockerfile的构build命令的一个例子:

 docker build -t "myApache" . 

现在我有一个图像,我可以用这个运行命令运行容器:

 docker run -p 8080:80 -p 4433:443 --name my_web_server -P -d myApache 

通过这个运行,您应该能够访问端口8080上的Web服务器( http:// localhost:8080 )

Interesting Posts