處理Symfony 3項目。Docker中的Symfony 3 - 怪異連接拒絕錯誤
doctrine:database:create
或doctrine:schema:update --force
古怪的是,我試圖讓我的控制器方法從我的倉庫的一些數據,但我似乎:關於數據庫的工作,像
我所有的CLI學說突擊隊當我嘗試在瀏覽器中導航到有問題的頁面時,拒絕Connection refused錯誤。
下面一些CONFIGS:
config.yml部分
doctrine:
dbal:
driver: pdo_mysql
host: "%database_host%"
port: "%database_port%"
dbname: "%database_name%"
user: "%database_user%"
password: "%database_password%"
charset: utf8mb4
default_table_options:
charset: utf8mb4
collate: utf8mb4_unicode_ci
orm:
auto_generate_proxy_classes: "%kernel.debug%"
naming_strategy: doctrine.orm.naming_strategy.underscore
auto_mapping: true
parameters.yml
parameters:
database_host: 127.0.0.1
database_port: 3306
database_name: db_name
database_user: db_user
database_password: db_pw
** **控制器
<?php
namespace AppBundle\Controller;
use Sensio\Bundle\FrameworkExtraBundle\Configuration\Route;
use Symfony\Bundle\FrameworkBundle\Controller\Controller;
class DefaultController extends Controller
{
/**
* @Route("/", name="homepage")
*/
public function indexAction()
{
return $this->render('default/index.html.twig');
}
/**
* @Route("/roedel", name="roedel")
*/
public function roedelAction()
{
return $this->render('default/roedel.html.twig');
}
/**
* @Route("/territorium", name="territorium")
*/
public function territoriumAction()
{
return $this->render('default/territorium.html.twig');
}
/**
* @Route("/dejacht", name="jacht")
*/
public function jachtAction()
{
$artists = $this->getDoctrine()
->getRepository('AppBundle:Artist')
->findAll();
return $this->render('default/jacht.html.twig', [
'artists' => $artists
]);
}
}
額外信息:
- 使用泊塢窗,因爲這是一個TestCase,雖然我不知道這是否應該重要,因爲CLI突擊隊教義做的工作。
你執行學說從泊塢窗命令行(如SSH)CLI命令,或在你的操作系統的命令行中(例如PowerShell)?如果後面的,因爲docker是一個虛擬機,所以當你在docker中運行你的應用程序時,它會嘗試從'127.0.0.1'(又名localhost)的Docker配置中訪問mysql服務器,而不是託管操作系統。爲了簡化:請詳細說明安裝/配置mysql的位置。 – fyrye
@fyrye我明白你要去的地方。我正在從我的操作系統命令行執行doctrine CLI命令。 MySQL容器確實運行在不同的容器中(在端口3306上)。這可能意味着我應該更改憑據? – wesvb
您應該在docker中安裝/配置mysql服務器,並且通過SSH或docker容器從您的OS中執行命令行命令。將docker轉到您的應用程序主機中。這將允許您在託管操作系統崩潰/格式時部署泊塢窗,或者與其他開發人員共享。否則,您需要配置一個讓docker與主機操作系統的mysql配置進行通信的方法。請參閱:https://hub.docker.com/r/mysql/mysql-server/在docker上配置mysql將最好地模擬如何在外部服務器上部署應用程序。 – fyrye