【发布时间】:2022-07-01 16:02:51
【问题描述】:
我正在使用具有 M1 CPU 的 MacBook Pro,因此我无法使用“正常”的 mssql docker 映像。我正在使用没有 sqlcmd 的 azure-sql-edge 来初始化数据库(创建架构、数据库、登录)。
我创建了一个 sql 脚本,我想在容器启动后运行它,但我找不到 sqlcmd 的任何替代方法。
还有其他方法吗?
【问题讨论】:
-
没有sqlcmd?你试过
docker run -it --rm mcr.microsoft.com/azure-sql-edge:latest ls -la /opt/mssql-tools/bin了吗? -
返回
ls: cannot access '/opt/mssql-tools/bin': No such file or directory。mssql-tools文件夹在容器中不存在。 -
我很抱歉,您完全正确 - 我没有在 ARM64 上进行测试。 Docker hub page 甚至说,sqlcmd 工具在 ARM64 版本的 SQL Edge 容器中不可用。
bcp工具也不存在,因为整个文件夹都丢失了。 -
在 ARM64 上没有 bcp 和 sqlcmd 的情况下,我只能建议使用 nodejs、pwsh (PowerShell) 或 Python 脚本从主机或同一容器中的另一个容器对容器执行更改码头工人网络。请注意,尽管 SQL 容器“立即”启动,但其中的 mssql 服务可能需要几秒/几十秒才能启动。您的初始化脚本将需要重试等待,直到它可以成功连接,如 mssql-node-docker-demo-app 所示
-
是的,最后我不得不去找一个
node脚本。
标签: sql-server docker sqlcmd azure-sql-edge