基于mssql-tools的Docker容器无法直接调用sqlcmd的问题咨询
解决mssql-tools自定义容器中sqlcmd无法直接调用的问题
问题分析
基于mcr.microsoft.com/mssql-tools构建自定义容器时,替换默认ENTRYPOINT为tail -f /dev/null后,直接输入sqlcmd会提示命令找不到,但使用完整路径/opt/mssql-tools/bin/sqlcmd可正常运行。原因是官方镜像的默认启动流程会自动将/opt/mssql-tools/bin目录加入系统PATH环境变量,替换ENTRYPOINT后跳过了这个初始化步骤,导致系统无法识别sqlcmd的快捷调用。
解决方案
在Dockerfile中手动将/opt/mssql-tools/bin添加到PATH环境变量,修改后的Dockerfile如下:
FROM mcr.microsoft.com/mssql-tools ENV PATH="$PATH:/opt/mssql-tools/bin" ENTRYPOINT [ "tail", "-f", "/dev/null" ]
验证方法
构建镜像并启动容器后,执行以下命令验证:
sqlcmd -? # 直接调用sqlcmd查看帮助 which sqlcmd # 应返回/opt/mssql-tools/bin/sqlcmd
内容的提问来源于stack exchange,提问作者hudsonsc
相关产品推荐
相关产品推荐

