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

Docker container exiting immediately after running php code

我目前正在使用 Slim 框架开发 RESTful API,我正在尝试 运行 它在 docker 容器上。然而,问题是脚本 运行s 仅执行一次,然后自动退出 docker,退出代码为 0,即它捕获了 index.php 页面的第一个 http 请求,returns 然后退出。

我敢肯定,一定有一种方法可以在容器上 运行 apache,这样每次我请求特定的 URL(比如 localhost:8080/ api/something) 在我的本地浏览器上,以便容器中 运行ning 的 apache 服务器可以处理这些请求。但是,由于我之前没有任何使用 docker 的经验,我目前无法解决这个问题。

这是我的Docker文件:

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

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

提前致谢!

这是 Apache 配置为 运行 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 模组并 运行 在前台安装网络服务器。这是此 Dockerfile 的构建命令示例:

docker build -t "myApache" .

现在我有了图像,我可以使用此 运行 命令 运行 容器:

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

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