Ошибка "database «yii2_db» does not exist" означает, что приложение не может найти базу данных с именем `yii2_db`. В вашем случае это может происходить по нескольким причинам:
1. **База данных еще не создана**: При первом запуске контейнера базы данных Postgres может не быть создана база данных `yii2_db`. Проверьте, создалась ли база данных. Вы можете подключиться к контейнеру базы данных и выполнить команду для просмотра существующих баз данных:
```bash
docker exec -it <имя_контейнера_db> psql -U postgres -c '\l'
```
2. **Проблема с подключением к базе данных**: Иногда контейнер вашего приложения может попытаться подключиться к базе данных до того, как сам контейнер с базой данных полностью инициализируется и будет готов к работе. Хотя вы используете `depends_on`, это лишь гарантирует порядок запуска контейнеров, но не гарантирует, что база данных уже готова к подключению. Вы можете добавить логику ожидания в вашем приложении или использовать `healthcheck` для проверки доступности базы данных.
3. **Неправильные параметры подключения**: Убедитесь, что настройки подключения к базе данных в вашем приложении верны. В вашем случае они выглядят корректными, но стоит проверить, нет ли опечаток или ошибок.
4. **Данные в volumes**: Проверьте, что ваши данные базы данных корректно монтируются и доступны. Если вы используете volumes для хранения данных, убедитесь, что они правильно настроены.
5. **Перезапуск контейнеров**: Если вы изменили настройки или конфигурации, возможно, стоит попробовать перезапустить контейнеры:
```bash
docker-compose down
docker-compose up -d
```
6. **Кэширование конфигураций**: Убедитесь, что в Yii2 у вас нет кэшированных конфигураций, которые могут влиять на подключение к базе данных. Вы можете попробовать сбросить кэш:
```bash
php yii cache/flush-all
```
Если ни одно из предложенных решений не помогло, попробуйте предоставить дополнительные логи или сообщения об ошибках, чтобы детальнее разобраться в проблеме.