Есть такой
docker-compose.ymlversion: '2'
services:
nginx:
build:
context: ./
dockerfile: docker/nginx.docker
volumes:
- ./:/var/www
- ./docker/nginx/ssl:/etc/nginx/ssl
ports:
- "8080:80"
links:
- php-fpm
php-fpm:
build:
context: ./
dockerfile: docker/php-fpm.docker
volumes:
- ./:/var/www
links:
- mysql
environment:
- "DB_PORT=3306"
- "DB_HOST=mysql"
php-cli:
build:
context: ./
dockerfile: docker/php-cli.docker
volumes:
- ./:/var/www
links:
- mysql
environment:
- "DB_PORT=3306"
- "DB_HOST=mysql"
tty: true
mysql:
image: mysql:5.7
volumes:
- ./docker/mysql/my.cnf:/etc/mysql/conf.d/my.cnf
- ./docker/mysql/rodeo.sql:/docker-entrypoint-initdb.d/init.sql
- ./docker/storage/mysql:/var/lib/mysql
environment:
- "MYSQL_ROOT_PASSWORD=secret"
- "MYSQL_USER=app"
- "MYSQL_PASSWORD=secret"
- "MYSQL_DATABASE=app"
ports:
- "33061:3306"
Acceptance тесты настроены так
acceptance.suite.ymlactor: AcceptanceTester
modules:
enabled:
- PhpBrowser:
url: http://localhost:8080
- \Helper\Acceptance
и отлично работают локально или в Вагранте
Как запустить acceptance тесты с помощью Codeception?
unit-тесты отлично работают так:
docker-compose exec php-cli vendor/bin/codecept run
acceptance тесты, понятное дело, требуют доступности localhost:8080, а в контейнере такого нет
также приложению (старенькая CMS) нужен nginx, тк фронт-контроллер настроен в конфиге хоста
UPD: Правильно понимаю — не нужно Nginx и PHP 7.1 запускать в разных контейнерах?