nginx 在Docker容器中安装phpunit

lf5gs5x2  于 5个月前  发布在  Nginx
关注(0)|答案(1)|浏览(45)

我有下面的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错误。

q8l4jmvw

q8l4jmvw1#

PHPUnit不是一个服务,也不应该被声明为服务,否则它会一直运行在一个无限循环中。
您可以通过向php-fpm服务发出exec命令来运行它。
还有一个问题是你的目录名不匹配。完全删除vendor卷。工作目录应该是/var/www
Composer也不应该是一个单独的服务。它不提供任何服务,它是按需调用的。使用COPY --from将其包含到php-fpm服务中。它将简化许多用例,例如检查平台依赖关系。

相关问题