Docker 在ddev设置中web和db容器旁边的附加SQL Server 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: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配置访问它 不知
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相关的问题,通常无法进行身份验证,我现在放弃了