Я пытаюсь завернуть свой проект на laravel в докер. Добавил контейнеры: php-fpm,redis,nginx,php-worker, сейчас пытаюсь добавить postgresql. В docker-compose.yml файле для докера написал вот это:
db:
image: postgres:14-alpine
restart: always
networks:
- internal
environment:
- DB_CONNECTION=pgsql
- DB_HOST=postgres
- DB_PORT=5432
- DB_DATABASE=*db*
- DB_USERNAME=*username*
- DB_PASSWORD=*password*
- REDIS_HOST=127.0.0.1
- REDIS_PASSWORD=null
- REDIS_PORT=6379
volumes:
- ./docker/postgres/datadir:/var/lib/postgresql/data
Когда запускаю docker-compose build, docker-compose up все проходит успешно и контейнер db пишет
database system is ready to accept connections
Но на деле, когда пытаюсь через браузер запустить проект, вылезает laravel ошибка:
SQLSTATE[08006] [7] could not connect to server: Connection refused Is the server running on host "127.0.0.1" and accepting TCP/IP connections on port 5432? (SQL: select * from information_schema.tables where table_schema = public and table_name = options and table_type = 'BASE TABLE')
Все эти порты, хосты берутся из .env файла, я в докере новичок и насколько знаю, мне надо, чтобы они брались из самого docker-compose.yml файла, где это я могу явно указать?
Так же, у меня локально стоит nginx,apache2 которые я перед запуском контейнеров останавливаю, потому что, контейнеры начинают жаловаться:
bind: address already in use
. Надо ли поступать с постгрес точно так же, отключать его перед запуском контейнеров?