gpt4 book ai didi

sql-server - 从 docker 中的脚本创建 SQL Server 数据库

转载 作者:行者123 更新时间:2023-12-03 18:46:52 26 4
gpt4 key购买 nike

我希望是一个简单的问题。我到处都找不到任何东西。

如何在 Microsoft SQL Server Docker 容器中创建数据库?

Dockerfile:

我正在查看以下 Dockerfile:

FROM microsoft/mssql-server-windows-developer:latest

ENV sa_password ab873jouehxaAGR

WORKDIR /
COPY /db-scripts/create-db.sql .

# here be the existing run commnd in the image microsoft/mssql-server-windows-developer:latest
#CMD ["powershell", "-Command", "$ErrorActionPreference = 'Stop'; $ProgressPreference = 'SilentlyContinue';", ".\\start -sa_password $env:sa_password -ACCEPT_EULA $env:ACCEPT_EULA -attach_dbs \\\"$env:attach_dbs\\\" -Verbose" ]

RUN (sqlcmd -S localhost -U SA -P ab873jouehxaAGR -i create-db.sql)

docker-compose.yml:

我整理了以下 docker compose 文件:

version: '3.4'

services:
sql.data:
image: ${DOCKER_REGISTRY}myfirst-mssql:latest
container_name: myfirst-mssql_container
build:
context: .
dockerfile: ./Dockerfile
environment:
SA_PASSWORD: ab873jouehxaAGR
ACCEPT_EULA: Y

整合

我正在针对上述内容运行命令 docker-compose up。并假设 create-db.sql 文件将简单地创建一个与这里无关的数据库,以保持最小化。

错误

我在上面得到的错误是 SA 的登录在运行 .sql 脚本时无效:

Step 7/7 : RUN (sqlcmd -S localhost -U SA -P ab873jouehxaAGR -i create-db.sql)
---> Running in 2ac5644d0bd9
Sqlcmd: Error: Microsoft ODBC Driver 13 for SQL Server : Login failed for user 'SA'..

看起来这在密码更改为 ab873jouehxaAGR 之前运行,这通常看起来像来自 mssql-server-windows-developer:latest.json 的命令,用于检查 vscode 中的图像 - \start -sa_password $env:sa_password -ACCEPT_EULA $env:ACCEPT_EULA -attach_dbs 确实如此。

环境

我在 Windows 10 上运行 docker Docker 版本 18.06.1-ce,构建 e68fc7a

附加或编写脚本

我没有指定使用我在许多示例中看​​到的环境变量 attach_dbs 附加数据库。

我试图从端到端测试的角度寻找管理 sql 容器的最佳实践,很多文章似乎没有涵盖数据方面的部分 - 即 Development Workflow

我很想听听关于 Docker 世界中这两种方法的评论想法。

最佳答案

使用以下命令可以解决您的问题

docker-compose up --build -d

version: '3.4'
services:
sql.data:
image: ${DOCKER_REGISTRY}myfirst-mssql:latest
container_name: myfirst-mssql_container
environment:
SA_PASSWORD: ab873jouehxaAGR
ACCEPT_EULA: Y

之后:

docker exec myfirst-mssql_container sqlcmd 
-d master
-S localhost
-U "sa"
-P "ab873jouehxaAGR"
-Q 'select 1'

关于sql-server - 从 docker 中的脚本创建 SQL Server 数据库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52105555/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com