私はSymfonyでシーズンされていますが、ドッカーにとってはまったく新しく、「接続が拒否されました」というエラーがあります。これは、その別のプロジェクトから基づいているSymfony + Docker、接続が拒否されました
version: '3.2'
services:
cg-demo:
build: docker/cg-demo
container_name: cg-demo
working_dir: /var/www/html
volumes:
- .:/var/www/html
- ./docker/demo/vhost.conf:/etc/apache2/sites-available/000-default.conf:ro
- ./docker/demo/php.ini:/usr/local/etc/php/php.ini:ro
- ~/.ssh:/var/www/.ssh
- ~/.composer:/var/www/.composer
environment:
- SYMFONY_ENV
- DOMAIN_NAME: cg-demo.docker
- VIRTUAL_HOST: cg-demo.docker
depends_on:
- database
env_file: .env
ports:
- 8000:80
database:
image: percona:5.6
ports:
- 3306:3306
expose:
- 3306
container_name: cg-demo-database
volumes:
- /docker/database:/etc/mysql/conf.d
environment:
MYSQL_ROOT_PASSWORD: root
MYSQL_DATABASE: demo
tmpfs:
- /var/lib/mysql
- /tmpfs:size=300M
:ここ
は私docker-compose
ファイルの内容である
それは初心者のエラーであり、ここでのソリューションは非常に簡単であることかなり確信して...動作していますが、私はここで起こっていることはすべてわかりません...
私はまた、ここに示していないphpmyadminコンテナを持っています。 PhpMyAdminはデータベースに正しく接続し、Webサーバーの問題なく使用できます。それはsymfonyのコンテナに来るとき、データベースを使用しようとしたときにしかし、私はこれを持っている:
[Doctrine\DBAL\Exception\ConnectionException]
An exception occured in driver: SQLSTATE[HY000] [2002] Connection refused
[Doctrine\DBAL\Driver\PDOException]
SQLSTATE[HY000] [2002] Connection refused
[PDOException]
SQLSTATE[HY000] [2002] Connection refused
接続情報は.env
ファイルに、以下の通りです:docker ps
を呼び出す
# Database credentials
DATABASE_HOST=database
DATABASE_PORT=3306
DATABASE_USER=root
DATABASE_PASSWORD=root
DATABASE_DB=cg-demo
は私にこれを提供します:
CONTAINER ID IMAGE COMMAND
CREATED STATUS PORTS NAMES
16a67dadeebb phpmyadmin/phpmyadmin "/run.sh phpmyadmin" 15 minutes ago Up 15 minutes 0.0.0.0:8001->80/tcp cg.phpmyadmin.docker
8bd783aa1dd1 cg_cg-demo "entrypoint.sh apa..." 15 minutes ago Up 15 minutes 0.0.0.0:8000->80/tcp cg-demo
2fc7cd9105ba percona:5.6 "docker-entrypoint..." 15 minutes ago Up 15 minutes (healthy) 3306/tcp cg-database
私はデモコンテナから
ping database
しようとしましたし、それが動作
...
EDIT 1:
ports:
- 3306:3306
編集2:すべての容器から後に除去
:
networks:
- default
データベース容器に以下を追加しましたEDIT 3:
app/config/config.yml
で私の教義構成:
dbal:
host: "%env(DATABASE_HOST)%"
port: "%env(DATABASE_PORT)%"
dbname: "%env(DATABASE_DB)%"
user: "%env(DATABASE_USER)%"
password: "%env(DATABASE_PASSWORD)%"
charset: UTF8
mapping_types:
enum: string
server_version: 5.6
EDIT 4:
は、データベース構成に次を追加しました:
expose:
- 3306
は、あなたがあなたのフィードバックのための 'CG-demo'サービス –
おかげで行ったようにMySQLのポートを公開する必要があります。ポストは – Zephyr
もう一つは、私は同様の問題を持っていた(現在でも動作しない)更新され、私はサービスから 'networks'属性を削除し、それが –