#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!"