I am trying to run my project using PHP-FPM, PHP-CLI. Through CLI I can create or delete schemas from the database, or load fixtures
github docker file https://github.com/SyntaxErrorLineNULL/start-mobile/tree/main/docker
docker-compose file
version: '3.8'
services:
nginx:
container_name: mobile_nginx_dev
image: nginx
volumes:
- ./docker/nginx/:/etc/nginx/conf.d
- ./:/app
links:
- php-fpm
ports:
- '8000:80'
php-fpm:
container_name: mobile_php-fpm
build:
context: docker
dockerfile: php-fpm/Dockerfile
environment:
DB_HOST: api-postgres
DB_USER: app
DB_PASSWORD: secret
DB_NAME: app
ports:
- 8080:8080
volumes:
- ./:/app
working_dir: /app
links:
- start-mobile-database
php-cli:
container_name: mobile_php-cli
build:
context: docker
dockerfile: php-cli/Dockerfile
environment:
DB_HOST: api-postgres
DB_USER: app
DB_PASSWORD: secret
DB_NAME: app
volumes:
- ./:/app
links:
- start-mobile-database
start-mobile-database:
image: mysql:8.0
ports:
- "3306:3306"
command: --default-authentication-plugin=mysql_native_password
environment:
MYSQL_DATABASE: app
MYSQL_USER: app
MYSQL_PASSWORD: secret
MYSQL_ROOT_PASSWORD: root
volumes:
- ./dump:/docker-entrypoint-initdb.d
- ./conf:/etc/mysql/conf.d
- persistent:/var/lib/mysql
networks:
- default
volumes:
persistent:
Makefile
init: down build up api-composer-install init-db
up:
docker-compose -f docker-compose.yaml up -d
down:
docker-compose -f docker-compose.yaml down -v --remove-orphans
build:
docker-compose -f docker-compose.yaml build --pull
api-composer-install:
docker-compose -f docker-compose.yaml run --rm php-cli composer install
api-composer-update:
docker-compose -f docker-compose.yaml run --rm php-cli composer update
init-db:
docker-compose -f docker-compose.yaml run --rm php-cli bin/console doctrine:schema:drop --force && \
docker-compose -f docker-compose.yaml run --rm php-cli bin/console doctrine:schema:create
clear-cache:
docker-compose -f docker-compose.yaml run --rm php-cli bin/console doctrine:cache:clear-metadata && \
docker-compose -f docker-compose.yaml run --rm php-cli bin/console doctrine:cache:clear-query
load-fixture:
docker-compose -f docker-compose.yaml run --rm php-cli bin/console doctrine:fixtures:load
env file
DATABASE_URL="mysql://app:secret@start-mobile-database/app"
Problem When I try to lift the container, I get the error
.........
docker-compose -f docker-compose.yaml run --rm php-cli bin/console doctrine:schema:drop --force && \
docker-compose -f docker-compose.yaml run --rm php-cli bin/console doctrine:schema:create
Creating start-mobile_php-cli_run ... done
In ExceptionConverter.php line 103:
An exception occurred in the driver: SQLSTATE[HY000] [2002] Connection refused
In Exception.php line 26:
SQLSTATE[HY000] [2002] Connection refused
In Driver.php line 28:
SQLSTATE[HY000] [2002] Connection refused
doctrine:schema:drop [--em EM] [--dump-sql] [-f|--force] [--full-database]
ERROR: 255
make: *** [Makefile:20: init-db]
I will answer some things in advance:
- Before adding PHP-FPM and CLI, there was a container with the same database, and there were no problems in the work, all commands for working with Doctrine were successful.
- I can connect from the side to the database and work with it.
- The config of the env file has not changed, and remained from the old container:
version: '3.8'
services:
db:
image: mysql:8.0
ports:
- "3306:3306"
command: --default-authentication-plugin=mysql_native_password
environment:
MYSQL_DATABASE: app
MYSQL_USER: app
MYSQL_PASSWORD: secret
MYSQL_ROOT_PASSWORD: root
volumes:
- ./dump:/docker-entrypoint-initdb.d
- ./conf:/etc/mysql/conf.d
- persistent:/var/lib/mysql
networks:
- default
volumes:
persistent:
What's my mistake? Thanks in advance for your reply!
source https://stackoverflow.com/questions/70414152/problems-connecting-and-working-with-the-database-when-using-docker
Comments
Post a Comment