Docker-compose MS SQL attach_dbs - PullRequest
       1

Docker-compose MS SQL attach_dbs

0 голосов
/ 20 сентября 2018

Мой docker-compose должен запустить три разных контейнера: 1 MS SQL и три веб-приложения.Это мой docker-compose.yml:

    version: "3"

services: 

  gwammssql:
    image: microsoft/mssql-server-windows-express
    container_name: mssql-gwam
    networks:
      - gwam_net
    ports:
      - "1433:1433"  
    environment:
      - sa_password=Password01
      - ACCEPT_EULA=Y
      - attach_dbs="[{'dbName':'GWAM','dbFiles':['C:\\temp\\GWAM.mdf','C:\\temp\\GWAM.ldf']}]"
    volumes:
      - C:/temp/:C:/temp/

  gwam-app:
    image: myrepo/web-app
    container_name: gwamapp1
    ports:
      - 6001:6001
    depends_on:
      - gwammssql
    environment:
      - ASPNETCORE_URLS=http://*:6001
      - App__DatabaseInfo__ConnectionString=Data Source=gwammssql;Initial Catalog='GWAM';User ID='sa';Password='Password01';Connect Timeout=30;Pooling=false;
      - App__DatabaseInfo__SelectTopValue=15
      - App__SecretsKeys__TokenHashingKey=iraiadsafAiDailgattaBaL
      - App__ExternalServices__MQServerUrl=localhost
      - App__ExternalServices__MQUserName=guest
      - App__ExternalServices__MQPassword=guest
      - App__ExternalServices__MQPort=5672
    networks:
      - gwam_net

  gwam-login:
    image: myrepo/micro-login
    container_name: gwamlogin1
    ports:
      - 6002:6002
    depends_on:
      - gwammssql
    environment:
      - ASPNETCORE_URLS=http://*:6002
      - App__DatabaseInfo__ConnectionString=Data Source=gwammssql;Initial Catalog='GWAM';User ID='sa';Password='Password01';Connect Timeout=30;Pooling=false;
      - App__DatabaseInfo__SelectTopValue=15
      - App__SecretsKeys__TokenHashingKey=iraihgnAiDailgattaBaL
      - App__ExternalServices__MQServerUrl=localhost
      - App__ExternalServices__MQUserName=guest
      - App__ExternalServices__MQPassword=guest
      - App__ExternalServices__MQPort=5672
    networks:
      - gwam_net

  gwam-account:
    image: myrepo/micro-account
    container_name: gwamaccount1
    ports:
      - 6003:6003
    depends_on:
      - gwammssql
    environment:
      - ASPNETCORE_URLS=http://*:6003
      - App__DatabaseInfo__ConnectionString=Data Source=gwammssql;Initial Catalog='GWAM';User ID='sa';Password='Password01';Connect Timeout=30;Pooling=false;
      - App__DatabaseInfo__SelectTopValue=15
      - App__SecretsKeys__TokenHashingKey=iradgnAgilgattaBaL
      - App__ExternalServices__MQServerUrl=localhost
      - App__ExternalServices__MQUserName=guest
      - App__ExternalServices__MQPassword=guest
      - App__ExternalServices__MQPort=5672
    networks:
      - gwam_net

networks:
  gwam_net:
    external:
      name: nat

Проблема в переменной окружения attach_dbs.Мне нужно прикрепить файл .mdf и ldf, но каждый раз, когда я запускаю файл compose, я получаю один и тот же вывод, и БД не присоединяется ...

attach dbs output

1 Ответ

0 голосов
/ 07 июня 2019

Я надеюсь, что вы решили свою проблему, но на тот случай, если кто-то еще попадет в эту ветку.У меня была такая же или, по крайней мере, очень похожая проблема.Я запускаю контейнеры Windows на Windows 10 Enterprise.

Это сработало:

 docker run --rm --name mssql -d -p 1433:1433 -e sa_password=myPassword -v ./data:C:/db/ -e ACCEPT_EULA=Y -e attach_dbs="[{'dbName':'myDB','dbFiles': ['c:\\db\\DB_Data.MDF', 'c:\\db\\DB_Log.LDF']}]" microsoft/mssql-server-windows-developer

Но в моем docker-compose этого не произошло, я получил ту же ошибку:

Снимок экрана

version: '3.7'
services:
 mssql:
  image: microsoft/mssql-server-windows-developer
  environment:
   - ACCEPT_EULA=Y
   - SA_PASSWORD=myPassword
   - MSSQL_PID=Enterprise
   - attach_dbs="[{'dbName':'myDB','dbFiles'['c:\\db\\DB_Data.MDF','c:\\db\\DB_Log.LDF']}]"
  ports:
   - '1433:1433'
  volumes:
   - d:\dockershare\data:c:/db

Я долго искал и не нашел никого, кто бы сталкивался с подобной проблемой, в большинстве обсуждений я обнаружил ошибку "ConvertFrom-Json: Нераспознанная escape-последовательность"прочееПри аварии я увидел файл docker-compose, в котором файл attach_db не был инкапсулирован в "".Может быть, кто-нибудь может объяснить, почему.

Я изменил эту строку:

- attach_dbs="[{'dbName':'myDB','dbFiles'['c:\\db\\DB_Data.MDF','c:\\db\\DB_Log.LDF']}]"

На это:

- attach_dbs=[{"dbName":"myDB","dbFiles"["c:\\db\\DB_Data.MDF","c:\\db\\DB_Log.LDF"]}]

И теперь это работает.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...