Дополнительный SQL Серверный контейнер БД в настройке ddev рядом с веб-контейнером и БД - PullRequest
1 голос
/ 17 февраля 2020

Я играю, чтобы получить дополнительный SQL Контейнер сервера (как установка площадки для нескольких дБ для TYPO3) в конфигурации ddev в docker -compose.override.yaml.

Это работает как-то, и я может подключаться к SQL серверу с хост-машины (если честно, с большим количеством удачи, чем знания; o).

Чего я абсолютно не знаю, так это как подключить новый контейнер ms sql к веб-контейнер, к которому TYPO3 может получить доступ. Абсолютно без понятия; o (Есть идеи?

ОБНОВЛЕНИЕ: У меня был небольшой прогресс в решении моей проблемы, см. Ниже. Это было проще, чем ожидалось. Ddev строит дополнительный сервер Ms Sql Контейнер и TYPO3 могут получить к нему доступ с помощью дополнительной конфигурации БД.

Не знаю, является ли это хорошим практическим способом. Мы рассмотрим подробнее, будет ли поддерживаться поддержка Ms Sql в TYPO3.

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

Соединения с БД в LocalConfigurtion:

    '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',
        ],
    ],

1 Ответ

0 голосов
/ 18 февраля 2020

Ваша конфигурация выглядит нормально. Эта часть связывает контейнер ms sql с веб-контейнером:

services:
  web:
    links:
      - mssql:mssql

Он должен быть доступен с помощью хоста mssql, как вы правильно установили в LocalConfiguration.php.

*. 1007 * Я бы не назвал файл docker-compose.override.yaml. Я бы назвал это docker-compose.mssql.yaml. Таким образом, вы можете легко добавлять несколько переопределенных docker -композитных файлов и при необходимости легко копировать их в другие проекты. Все docker-compose.*.yaml файлы будут загружены.
...