我正在尝试设置 Codeception 来对我的 Web 应用程序进行验收和功能测试。以下是我的文件:
docker-compose.yml
version: '3.7'
services:
# nginx - web server
nginx:
build:
context: ./docker-config/nginx
dockerfile: ./Dockerfile
env_file: &env
- ./cms/.env
init: true
ports:
- "8000:80"
volumes:
- cpresources:/var/www/project/cms/web/cpresources
- ./cms/web:/var/www/project/cms/web:cached
networks:
mmc-network:
aliases:
- mmc.nginx
# php - run php-fpm
php:
build: &php-build
context: ./docker-config/php-prod-craft
dockerfile: ./Dockerfile
depends_on:
- "mysql"
- "redis"
env_file:
*env
expose:
- "9000"
init: true
volumes: &php-volumes
- some volumes............
networks:
mmc-network:
aliases:
- mmc.php
# mysql - database
mysql:
build:
context: …Run Code Online (Sandbox Code Playgroud) 我使用 dockerfile 创建了一个 php-composer 图像:
FROM php:7
RUN apt-get update
RUN apt-get install curl
RUN curl -sS https://getcomposer.org/installer -o composer-setup.php
RUN php composer-setup.php --install-dir=/usr/local/bin --filename=composer
RUN apt-get install -y git
Run Code Online (Sandbox Code Playgroud)
我运行以下命令来创建一个容器并启动一个 Laravel 应用程序。
docker run -p 127.0.0.1:3000:8000 --name MyTest -dt php-composer to create a container
docker cp laravelApp/ d4bbb5d36312:/usr/
docker exec -it MyTest bash
cd usr/laravelApp
php artisan serve
Run Code Online (Sandbox Code Playgroud)
之后,容器的终端将显示成功信息:
Laravel development server started: <http://127.0.0.1:8000>
Run Code Online (Sandbox Code Playgroud)
但是当我在本地浏览器访问 127.0.0.1:3000 时,我什么也得不到。
那么是否有可能简单地运行 php artisan serve 来在 docker 容器内启动一个 Laravel 应用程序?
或者我必须使用 nginx 或 …