我有下面的docker-compose.yml文件为PHP Docker应用程序。我试图在这个Docker容器中设置PHPUnit。但它显示以下错误
第一个月
docker-compose.yml文件
version: "3.3"
services:
composer:
image: composer:2
environment:
- COMPOSER_CACHE_DIR=/app/var/cache/composer
volumes:
- .:/app
restart: always
sql-db:
build:
context: ./sql-db
environment:
MYSQL_ROOT_PASSWORD: codingchallenge
MYSQL_DATABASE: codingchallenge
MYSQL_USER: codingchallenge
MYSQL_PASSWORD: codingchallenge
ports:
- "8322:3306"
networks:
- backend-php
php-fpm:
depends_on:
- sql-db
- nginx_backend
build: ./php-fpm
restart: always
environment:
MYSQL_DB_HOST: sql-db
MYSQL_DB_PORT: 3306
MYSQL_DB_USER: codingchallenge
MYSQL_DB_PASSWORD: codingchallenge
MYSQL_DATABASE: codingchallenge
DATABASE_URL: mysql://codingchallenge:codingchallenge@sql-db:3306/codingchallenge
networks:
- backend-php
volumes:
- sock:/sock
- ./app:/var/www
- ./vendor:/var/www/vendor
links:
- sql-db
nginx_backend:
build:
context: ./nginx-backend
ports:
- "8321:80"
volumes:
- ./app:/var/www:ro
- sock:/sock
networks:
- backend-php
restart: always
phpunit:
image: php:7.3-cli
restart: always
volumes:
- sock:/sock
- ./app:/var/www
- ./vendor:/var/www/vendor
working_dir: /app
entrypoint: vendor/bin/phpunit
volumes:
sock:
networks:
backend-php:
字符串
如果有人知道如何在上面的容器中设置PHPUnit。
我在docker-compose.yml文件中添加了PHPUnit容器。但仍然不起作用,并抛出vendor/bin/phpunit not found错误。
1条答案
按热度按时间q8l4jmvw1#
PHPUnit不是一个服务,也不应该被声明为服务,否则它会一直运行在一个无限循环中。
您可以通过向
php-fpm
服务发出exec
命令来运行它。还有一个问题是你的目录名不匹配。完全删除
vendor
卷。工作目录应该是/var/www
。Composer也不应该是一个单独的服务。它不提供任何服务,它是按需调用的。使用
COPY --from
将其包含到php-fpm
服务中。它将简化许多用例,例如检查平台依赖关系。