Console PHP script works differently when executed through docker exec or through PhpStorm

I am trying to run the console console of the Doctrine 2 script through PhpStorm. Docker is configured as a Deploy server.

If I run this:

$ docker exec container_name /var/www/vendor/bin/doctrine-module orm:schema-tool:create

he prints:

There are no metadata classes to process.

But when I run PHP Run / Debug configuration in PhpStorm: File: / home / username / PhpstormProjects / proj / vendor / bin / doctrine-module

he prints:

docker: // image_name / container_name / var / www / vendor / bin / doctrine-module

Fatal error: Uncaught PDOException: PDO :: __ construct (): php_network_getaddresses: getaddrinfo failed: name or service not known in / var / www / vendor / zendframework / zend -servicemanager / src / ServiceManager.php on line 765

Zend\ServiceManager\Exception\ServiceNotCreatedException: "doctrine.connection.orm_default". : : SQLSTATE [HY000] [2002] php_network_getaddresses: getaddrinfo : /var/www/vendor/zendframework/zend -servicemanager/src/ServiceManager.php 765

:     0.0001 349368 1. {main}()/var/www/vendor/doctrine/doctrine-module/bin/doctrine-module: 0     0.0268 360480 2. include ('/var/www/vendor/doctrine/doctrine-module/bin/doctrine-module.php')/var/www/vendor/doctrine/doctrine-module/bin/doctrine-module: 4     0.9376 4076096 3. Zend\ServiceManager\ServiceManager- > get()/var/www/vendor/doctrine/doctrine-module/bin/doctrine-module.php:61     0.9376 4076096 4. Zend\ServiceManager\ServiceManager- > doCreate()/var/www/vendor/zendframework/zend-servicemanager/src/ServiceManager.php:200

255

, PDO

new PDO("mysql:host=db;port=3306;dbname=dbname", "user", "pass", [])

-compose.yml:

version: '2'
services:
    nginx:
        container_name: nginx
        build:
            context: .
            dockerfile: DockerfileNginx
        ports:
            - "80:80"
        depends_on:
            - php
        working_dir: /var/www
        links:
            - php
        volumes:
            - .:/var/www
        links:
            - db
    php:
        container_name: php
        build:
            context: .
            dockerfile: DockerfilePhp
            - db
        volumes:
            - .:/var/www
        expose:
            - "9000"
        depends_on:
            - db
    db:
        container_name: db
        image: "mysql:5.6"
        ports:
            - "3306:3306"
        environment:
            MYSQL_ROOT_PASSWORD: pass
            MYSQL_DATABASE: dbname
            MYSQL_USER: user
            MYSQL_PASSWORD: pass
+4
1

, , PHPStorm Docker- PHP. , - .

:

  • Docker
  • docker network ls (. , docker-compose )
  • PHPStorm Docker ( Frameworks → PHP → PHPUnit: Docker container...) db (- : name = your_containter_name_1, alias = db)
+7

Source: https://habr.com/ru/post/1667130/


All Articles