【问题标题】:PHPUnit Doesn't Connect To DatabasePHPUnit 不连接到数据库
【发布时间】:2022-12-11 22:23:42
【问题描述】:

我已经建立了一个基于 Docker Sail(Windows 上的 Ubuntu)的项目, 该项目工作正常,除非 PHPUnit 连接到数据库。

我尝试使用“sudo apt-get install php-mysql”安装 mysql

现在我得到这个错误

这是我的 docker 文件

# For more information: https://laravel.com/docs/sail
version: '3'
services:
 laravel.test:
    build:
        context: ./vendor/laravel/sail/runtimes/8.1
        dockerfile: Dockerfile
        args:
            WWWGROUP: '${WWWGROUP}'
    image: sail-8.1/app
    extra_hosts:
        - 'host.docker.internal:host-gateway'
    ports:
        - '${APP_PORT:-80}:80'
    environment:
        WWWUSER: '${WWWUSER}'
        LARAVEL_SAIL: 1
        XDEBUG_MODE: '${SAIL_XDEBUG_MODE:-off}'
        XDEBUG_CONFIG: '${SAIL_XDEBUG_CONFIG:-client_host=host.docker.internal}'
    volumes:
        - '.:/var/www/html'
    networks:
        - sail
    depends_on:
        - mysql

 mysql:
    image: 'mysql:8.0'
    ports:
        - '${FORWARD_DB_PORT:-3306}:3306'
    environment:
        MYSQL_ROOT_PASSWORD: '${DB_PASSWORD}'
        MYSQL_DATABASE: '${DB_DATABASE}'
        MYSQL_USER: '${DB_USERNAME}'
        MYSQL_PASSWORD: '${DB_PASSWORD}'
        MYSQL_ALLOW_EMPTY_PASSWORD: 'yes'
    volumes:
        - './_dockerdata/sailmysql:/var/lib/mysql'
    networks:
        - sail
    healthcheck:
        test: ["CMD", "mysqladmin", "ping", "-p${DB_PASSWORD}"]
        retries: 3
        timeout: 5s

#phpmyadmin
phpmyadmin:
    image: phpmyadmin
    container_name: phpmyadmin
    restart: unless-stopped
    ports: 
    - 8085:80
    environment:
    - PMA_ARBITRARY=1
    networks:
    - sail

 networks:
  sail:
    driver: bridge
 volumes:
  sailmysql:
    driver: local

这是我关于使用测试的 phpunitxml

    <server name="APP_ENV" value="testing"/>
    <!-- <server name="DB_CONNECTION" value="sqlite"/> -->
    <!-- <server name="DB_DATABASE" value=":memory:"/> -->

这是关于数据库连接的 .env 文件

 DB_CONNECTION=mysql
 DB_HOST=mysql
 DB_PORT=3306

【问题讨论】:

  • 您必须在容器内执行所有命令,包括 phpunit,否则它不知道如何将 mysql 解析为 docker 容器

标签: docker ubuntu phpunit windows-subsystem-for-linux laravel-sail


【解决方案1】:

请尝试将DB_HOST 更改为localhost。 Mysql 服务应在 docker 容器内的 localhost/127.0.0.1 运行。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-01-07
    • 2019-04-06
    • 1970-01-01
    • 1970-01-01
    • 2015-01-14
    • 2020-03-09
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多