Php 如何使用docker compose运行自动codeception验收测试?

Php 如何使用docker compose运行自动codeception验收测试?,php,docker-compose,codeception,Php,Docker Compose,Codeception,我正在尝试使用docker compose运行用codeception编写的测试。我已经写了docker-compose.yml。该文件如下所示: docker compose所在的文件夹中有tests(文件夹)、codecept.phar和codeception.yml。 我正在尝试运行以下命令: docker编写运行--rm codecept运行验收 它试图执行验收测试,但我得到以下错误: “[ConnectionException]无法连接到的Webdriver。请确保Selenium服务

我正在尝试使用docker compose运行用codeception编写的测试。我已经写了docker-compose.yml。该文件如下所示:

docker compose所在的文件夹中有tests(文件夹)、codecept.phar和codeception.yml。 我正在尝试运行以下命令:

docker编写运行--rm codecept运行验收

它试图执行验收测试,但我得到以下错误: “[ConnectionException]无法连接到的Webdriver。请确保Selenium服务器或PhantomJS正在运行。”

有什么想法吗

期望该命令开始执行codeception验收测试

docker-compose.yml如下所示:

version: '3'
services:
  codecept:
    image: codeception/codeception
    depends_on:
      - chrome
      - web
    volumes:
      - .:/project
  web:
    image: php:7-apache
    #depends_on:
     # - db
    volumes:
      - .:/var/www/html
  db:
    image: percona:5.6
  chrome:
    image: selenium/standalone-chrome
运行命令以执行测试:


docker compose运行--rm codecept运行验收

我发现您的设置中存在两个问题

首先,您需要如下配置链接:

version: '3'
  services:
    codecept:
      image: codeception/codeception
      depends_on:
        - chrome
        - web
      links:
        - chrome
        - web
      volumes:
        - .:/project
    web:
      image: php:7-apache
      #depends_on:
      # - db
      volumes:
        - .:/var/www/html
    db:
      image: percona:5.6
    chrome:
      image: selenium/standalone-chrome
然后,您需要将指向127.0.0.1:4444的配置更改为chrome:4444,因为docker compose将使用网络中链接服务的名称创建此dns条目


127.0.0.1将无法工作,因为它未在codeception容器中运行。

我发现您的设置中存在两个问题

首先,您需要如下配置链接:

version: '3'
  services:
    codecept:
      image: codeception/codeception
      depends_on:
        - chrome
        - web
      links:
        - chrome
        - web
      volumes:
        - .:/project
    web:
      image: php:7-apache
      #depends_on:
      # - db
      volumes:
        - .:/var/www/html
    db:
      image: percona:5.6
    chrome:
      image: selenium/standalone-chrome
然后,您需要将指向127.0.0.1:4444的配置更改为chrome:4444,因为docker compose将使用网络中链接服务的名称创建此dns条目

127.0.0.1将不起作用,因为它未在codeception容器中运行