Urm*_*Lmn 2 php rest slim docker
我目前正在使用 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" ]
Run Code Online (Sandbox Code Playgroud)
这是我的 Docker-compose 文件:
version: '2'
services:
app:
build: ./app
volumes:
- ./app:/usr/src/app
ports:
- 5001:80
Run Code Online (Sandbox Code Playgroud)
有人可以告诉我如何更改我的 Dockerfile 或 Docker-compose 文件,以便 apache 服务器在第一个请求后不会退出,但它仍然运行并侦听其他请求。
先感谢您!
以下是配置 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
Run Code Online (Sandbox Code Playgroud)
在本例中,我正在安装 Apache 的 PHP mods 并在前台运行 Web 服务器。以下是此 Dockerfile 的构建命令的示例:
docker build -t "myApache" .
Run Code Online (Sandbox Code Playgroud)
现在我有了一个图像,我可以使用以下运行命令运行容器:
docker run -p 8080:80 -p 4433:443 --name my_web_server -P -d myApache
Run Code Online (Sandbox Code Playgroud)
运行此命令后,您应该能够通过端口 8080 ( http://localhost:8080 )访问 Web 服务器
| 归档时间: |
|
| 查看次数: |
3194 次 |
| 最近记录: |