如何使用docker

时间:2018-12-09 10:20:09

标签: symfony docker symfony4

我正在尝试将(本地开发)symfony4连接到docker中的数据库,这是docker容器

83d1b68ce44a        cytopia/mariadb-10.1:latest      "/docker-entrypoint.…"   3 days ago          Up About an hour    0.0.0.0:3306->3306/tcp                       devilbox_mysql_1

网络正在运行并且已完全配置,我不知道在.env文件中应该使用哪个主机。

谢谢

3 个答案:

答案 0 :(得分:1)

您将端口3306绑定到主机,因此我们必须告诉Symfony使用此端口。我们必须使用地址127.0.0.1,因为with localhost, MySQL try to connect through a socket

因此,您应该得到这样的结果:

DATABASE_URL=mysql://USER:PASSWORD@127.0.0.1:3306/DATABASE_NAME

您可能需要配置对MariaDB的访问权限:

doctrine:
    dbal:
        # configure these for your database server
        driver: 'pdo_mysql'
        server_version: 'mariadb-10.2'

请参见MariaDB 10.0 JSON type with symfony 4

答案 1 :(得分:0)

根据用法,您应该尝试不同的方法。如果您没有使用docker_compose.yml,然后尝试使用主机名0.0.0.0:3306,但如果使用的是dockerfile,例如this(这是穆迪的话,但可以完成工作)。

因此,在后一种情况下,我使用 service 名称作为主机名以完成工作。通常,我使用docker-compose.yml方法来配置运行环境。

还请记住,使用docker-compose.yml还会使用.env文件进行配置,因此也可能导致冲突。

答案 2 :(得分:0)

DATABASE_URL=mysql://user:password@mariadb:3306/databaseName

此示例“ mariadb”是容器别名。