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 )