我有以下用于 PHP Docker 应用程序的 docker-compose.yml 文件。我尝试在这个 docker 容器中设置 PHPUnit。但它显示以下错误
Error response from daemon: failed to create task for container: failed to create shim task: OCI runtime create failed: runc create failed: unable to start container process: exec: "./vendor/bin/phpunit": stat ./vendor/bin/phpunit: no such file or directory: unknown
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”错误。
PHPUnit 不是服务,不应如此声明。
您可以向
exec
服务发出 php-fpm
命令来运行它。
问题还在于您的目录名称不匹配。完全删除
vendor
体积。工作目录应该是/var/www
。