Ошибка входа для пользователя ‘sa’

#docker

#docker

Вопрос:

Я новичок в docker, и я работаю на MAC. я использую docker compose для контейнеризации моего dotnet api, но когда я пытаюсь выполнить миграцию после «docker-compose up», у меня появляется ошибка «Ошибка входа в систему для пользователя ‘sa'». но при локальном запуске приложения с использованием этого образа sql server я могу подключиться. два контейнера запущены, и это мой файл docker-compose :

 version: '3'
services:
web:
build: .
 container_name: web
 ports:
  - "8000:80"
 depends_on:
  - db
 networks:
  - connection
db:
image: "mcr.microsoft.com/mssql/server:latest"
container_name: db
environment:
  MSSQL_SA_PASSWORD: "P@$$w0rd!"
  ACCEPT_EULA: "Y"
  UserID: "sa"
ports:
- "1433:1433"
networks:
  - connection
  

сети:
подключение: драйвер: мост

и это мои строки подключения :

 "ConnectionStrings": {
"DefaultConnection": "Server=localhost,1433;Initial Catalog=database;User ID=sa;Password=P@$$w0rd!"},
  

Ответ №1:

В docker-compose.yml значение $$ является экранированным $ , поскольку $something оно расширяет переменную. Поэтому:

 P@$$w0rd!
  

становится

 P@$w0rd!
  

и приложение попытается подключиться с неправильным паролем. Вы можете избежать обоих $ с помощью:

 MSSQL_SA_PASSWORD: "P@$$$$w0rd!"