繁体   English   中英

docker-compose 对于 mssql 不使用 .env 文件?

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM