![](/img/trans.png)
[英].Net Core 3.1 MSSQL backend in Docker setup: Docker-compose up producing connection failure
[英]docker-compose for mssql not using .env file?
我有一个名为.mssql
的 .env 文件,其中包含基本的 MSSQL 选项:
ACCEPT_EULA=Y
MSSQL_SA_PASSWORD=12Password34
我的docker-compose.yml
看起来像这样:
version: '3'
services:
db:
image: "mcr.microsoft.com/mssql/server:2017-latest"
volumes:
- ./db-data:/var/opt/mssql
- ./sql_scripts:/sql_scripts
env_file:
- .envs/.local/.mssql
healthcheck:
test: [ "CMD", "/opt/mssql-tools/bin/sqlcmd", "-S", "localhost", "-U", "sa", "-P", "$SA_PASSWORD", "-Q", "SELECT 1" ]
interval: 30s
timeout: 30s
retries: 3
# This command runs the sqlservr process and then runs the sql scripts in the sql_scripts folder - it uses init_done.flag to determine if it has already run
command: /bin/bash -c '/opt/mssql/bin/sqlservr; if [ ! -f /sql_scripts/init_done.flag ]; then apt-get update && apt-get install -y mssql-tools unixodbc-dev; /opt/mssql-tools/bin/sqlcmd -S localhost -U sa -P $SA_PASSWORD -i /sql_scripts/db_setup.sql; /opt/mssql-tools/bin/sqlcmd -S localhost -U sa -P $SA_PASSWORD -i /sql_scripts/second_db_setup.sql; /opt/mssql-tools/bin/sqlcmd -S localhost -U sa -P $SA_PASSWORD -i /sql_scripts/third_db_setup.sql; touch /sql_scripts/init_done.flag; fi; tail -f /dev/null'
ports:
- 1433:1433
volumes:
db-data:
当我运行命令docker-compose up -d --build
它在我运行docker-compose
命令的终端中发出警告: WARN[0000] The "SA_PASSWORD" variable is not set. Defaulting to a blank string.
WARN[0000] The "SA_PASSWORD" variable is not set. Defaulting to a blank string.
然后,当容器启动时,我看到它毫无问题地开始了这个过程。 然后我在容器日志中看到以下内容:
Logon Error: 18456, Severity: 14, State: 8.
Logon Login failed for user 'sa'. Reason: Password did not match that for the login provided.
您在 env 文件中设置 MSSQL_SA_PASSWORD。 但据我所知,在您的 Dockerfile 中,您尝试使用 $SA_PASSWORD 登录。
因此,要么在环境文件中将 MSSQL_SA_PASSWORD 更改为 SA_PASSWORD,要么将 Dockerfile(在“测试”和“命令”部分)从 $SA_PASSWORD 更改为 $MSSQL_SA_PASSWORD。 第二个选项可能是首选,因为图像可能还需要在内部正确设置 MSSQL_SA_PASSWORD。 我不能具体告诉你,因为我不太了解 MSSQL 图像。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.