Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/typo3/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Docker 在ddev设置中web和db容器旁边的附加SQL Server db容器_Docker_Typo3_Ddev - Fatal编程技术网

Docker 在ddev设置中web和db容器旁边的附加SQL Server db容器

Docker 在ddev设置中web和db容器旁边的附加SQL Server db容器,docker,typo3,ddev,Docker,Typo3,Ddev,我想在docker-compose.override.yaml中的ddev配置中获得一个额外的SQL Server容器(作为TYPO3的多数据库游乐场设置) 它以某种方式工作,我可以从主机连接到SQL Server(老实说,幸运多于知识;o) 我完全不知道如何将新的mssql容器连接到TYPO3可以访问的web容器。绝对没有线索,;有什么想法吗 更新: 我的问题取得了一些进展,如下所示。这比预期的要简单。Ddev正在构建一个额外的MsSql服务器容器,TYPO3可以使用额外的DB配置访问它 不知

我想在docker-compose.override.yaml中的ddev配置中获得一个额外的SQL Server容器(作为TYPO3的多数据库游乐场设置)

它以某种方式工作,我可以从主机连接到SQL Server(老实说,幸运多于知识;o)

我完全不知道如何将新的mssql容器连接到TYPO3可以访问的web容器。绝对没有线索,;有什么想法吗

更新: 我的问题取得了一些进展,如下所示。这比预期的要简单。Ddev正在构建一个额外的MsSql服务器容器,TYPO3可以使用额外的DB配置访问它

不知道这是否是一个好的实用方法。如果TYPO3中的MsSql支持可用,我们将进行更多调查

docker compose.override.yaml:

version: '3.6'

services:
  web:
    environment:
      - TYPO3_CONTEXT=Development/Ddev
    links:
      - mssql:mssql

  mssql:
    # https://hub.docker.com/_/microsoft-mssql-server
    image: "mcr.microsoft.com/mssql/server"
    volumes:
      - mssql-db-data:/var/opt/mssql/
    environment:
      SA_PASSWORD: "MyPassword001"
      ACCEPT_EULA: "Y"
    ports:
      - "1433:1433"
volumes:
  mssql-db-data:
    driver: local
    'DB' => [
        'Connections' => [
            'Default' => [
                'charset'  => 'utf8',
                'dbname'   => 'db',
                'driver'   => 'mysqli',
                'host'     => 'db',
                'password' => 'db',
                'port'     => 3306,
                'user'     => 'db',            
            ],
            'MsSql' => [
                'charset' => 'UTF-8',
                'dbname' => 'master',
                'driver' => 'sqlsrv',
                'host' => 'mssql',
                'password' => 'MyPassword001',
                'port' => '1433',
                'user' => 'SA',
            ],
        ],
        'TableMapping' => [
            'sys_log' => 'MsSql',
        ],
    ],
本地配置中的数据库连接:

version: '3.6'

services:
  web:
    environment:
      - TYPO3_CONTEXT=Development/Ddev
    links:
      - mssql:mssql

  mssql:
    # https://hub.docker.com/_/microsoft-mssql-server
    image: "mcr.microsoft.com/mssql/server"
    volumes:
      - mssql-db-data:/var/opt/mssql/
    environment:
      SA_PASSWORD: "MyPassword001"
      ACCEPT_EULA: "Y"
    ports:
      - "1433:1433"
volumes:
  mssql-db-data:
    driver: local
    'DB' => [
        'Connections' => [
            'Default' => [
                'charset'  => 'utf8',
                'dbname'   => 'db',
                'driver'   => 'mysqli',
                'host'     => 'db',
                'password' => 'db',
                'port'     => 3306,
                'user'     => 'db',            
            ],
            'MsSql' => [
                'charset' => 'UTF-8',
                'dbname' => 'master',
                'driver' => 'sqlsrv',
                'host' => 'mssql',
                'password' => 'MyPassword001',
                'port' => '1433',
                'user' => 'SA',
            ],
        ],
        'TableMapping' => [
            'sys_log' => 'MsSql',
        ],
    ],

更新2:

version: '3.6'

services:
  web:
    environment:
      - TYPO3_CONTEXT=Development/Ddev
    links:
      - mssql:mssql

  mssql:
    # https://hub.docker.com/_/microsoft-mssql-server
    image: "mcr.microsoft.com/mssql/server"
    volumes:
      - mssql-db-data:/var/opt/mssql/
    environment:
      SA_PASSWORD: "MyPassword001"
      ACCEPT_EULA: "Y"
    ports:
      - "1433:1433"
volumes:
  mssql-db-data:
    driver: local
    'DB' => [
        'Connections' => [
            'Default' => [
                'charset'  => 'utf8',
                'dbname'   => 'db',
                'driver'   => 'mysqli',
                'host'     => 'db',
                'password' => 'db',
                'port'     => 3306,
                'user'     => 'db',            
            ],
            'MsSql' => [
                'charset' => 'UTF-8',
                'dbname' => 'master',
                'driver' => 'sqlsrv',
                'host' => 'mssql',
                'password' => 'MyPassword001',
                'port' => '1433',
                'user' => 'SA',
            ],
        ],
        'TableMapping' => [
            'sys_log' => 'MsSql',
        ],
    ],
下面是一个小更新,请参见下文

docker compose.mssql.yaml:

version: '3.6'

services:
  web:
    environment:
      - TYPO3_CONTEXT=Development/Ddev
    links:
      - mssql:mssql

  mssql:
    # https://hub.docker.com/_/microsoft-mssql-server
    image: "mcr.microsoft.com/mssql/server"
    volumes:
      - mssql-db-data:/var/opt/mssql/
    environment:
      SA_PASSWORD: "MyPassword001"
      ACCEPT_EULA: "Y"
    ports:
      - "1433:1433"
volumes:
  mssql-db-data:
    driver: local
    'DB' => [
        'Connections' => [
            'Default' => [
                'charset'  => 'utf8',
                'dbname'   => 'db',
                'driver'   => 'mysqli',
                'host'     => 'db',
                'password' => 'db',
                'port'     => 3306,
                'user'     => 'db',            
            ],
            'MsSql' => [
                'charset' => 'UTF-8',
                'dbname' => 'master',
                'driver' => 'sqlsrv',
                'host' => 'mssql',
                'password' => 'MyPassword001',
                'port' => '1433',
                'user' => 'SA',
            ],
        ],
        'TableMapping' => [
            'sys_log' => 'MsSql',
        ],
    ],
通过这种配置,我在DDEV中获得了一个mssql容器

version: '3.6'

services:
  web:
    links:
      - mssql:mssql

  mssql:
    # https://hub.docker.com/_/microsoft-mssql-server
    image: "mcr.microsoft.com/mssql/server"
    volumes:
      - mssql-db-data:/var/opt/mssql/
    environment:
      SA_PASSWORD: "MyPassword001"
      ACCEPT_EULA: "Y"
    ports:
      - "1433:1433"
volumes:
  mssql-db-data:
    driver: local
web构建/Dockerfile:

version: '3.6'

services:
  web:
    environment:
      - TYPO3_CONTEXT=Development/Ddev
    links:
      - mssql:mssql

  mssql:
    # https://hub.docker.com/_/microsoft-mssql-server
    image: "mcr.microsoft.com/mssql/server"
    volumes:
      - mssql-db-data:/var/opt/mssql/
    environment:
      SA_PASSWORD: "MyPassword001"
      ACCEPT_EULA: "Y"
    ports:
      - "1433:1433"
volumes:
  mssql-db-data:
    driver: local
    'DB' => [
        'Connections' => [
            'Default' => [
                'charset'  => 'utf8',
                'dbname'   => 'db',
                'driver'   => 'mysqli',
                'host'     => 'db',
                'password' => 'db',
                'port'     => 3306,
                'user'     => 'db',            
            ],
            'MsSql' => [
                'charset' => 'UTF-8',
                'dbname' => 'master',
                'driver' => 'sqlsrv',
                'host' => 'mssql',
                'password' => 'MyPassword001',
                'port' => '1433',
                'user' => 'SA',
            ],
        ],
        'TableMapping' => [
            'sys_log' => 'MsSql',
        ],
    ],
web容器需要额外的包。这个Dockerfile对我来说非常好用。 此链接有一个更高级的解决方案:


您的配置看起来不错。此部分将mssql容器链接到web容器:

services:
  web:
    links:
      - mssql:mssql
应该可以使用主机
mssql
访问它,正如您在
LocalConfiguration.php
中正确设置的那样


但我不会将该文件称为
docker compose.override.yaml
。我会将其称为
docker compose.mssql.yaml
。这样,您可以更轻松地添加多个“override”docker compose文件,并在需要时轻松地将其复制到其他项目中。所有
docker compose.*.yaml
文件都将被加载。

您的配置看起来很好e、 此部分将mssql容器链接到web容器:

services:
  web:
    links:
      - mssql:mssql
应该可以使用主机
mssql
访问它,正如您在
LocalConfiguration.php
中正确设置的那样


我不会把这个文件叫做
docker-compose.override.yaml
,我会把它叫做
docker-compose.mssql.yaml
。这样你就可以更容易地添加多个“override”docker-compose文件,如果需要的话也可以轻松地将它们复制到其他项目中。所有
docker-compose.*.yaml
文件都会被加载。

我不确定我是否理解你的意思你的问题是,你不知道如何从web docker访问de-mssql docker?你确定你需要一个额外的容器,而不仅仅是另一个数据库,对吗?创建数据库非常简单。我不确定我是否理解你的问题,你不知道如何从web docker访问de-mssql docker?你确定你需要一个额外的容器,而不仅仅是另一个数据库对吗?创建数据库非常简单。Thx是文件命名提示。我将在我的项目文件中更改它。@Christiansontag您成功了吗?尝试使用本地mssql,但没有成功?@hugronaphor我添加了更多信息,请参阅更新2。也许这将为您指明正确的方向。非常接近,但有还有一些与tls相关的问题,通常无法进行身份验证,我放弃了nowThx的文件命名提示。我将在我的项目文件中对其进行更改。@Christiansontag您成功了吗?尝试使用本地mssql,但没有成功?@hugronaphor我添加了更多信息,请参阅更新2。也许这将为您指明正确的方向。G非常接近,但还有一些与tls相关的问题,通常无法进行身份验证,我现在放弃了