Sql server 切换到Dockerfile中的Root用户

Sql server 切换到Dockerfile中的Root用户,sql-server,docker,ubuntu,root,Sql Server,Docker,Ubuntu,Root,我运行了以下命令: docker pull mcr.microsoft.com/mssql/server:2019-latest 然后我制作了一个dockerfile,将此容器图像用作另一个容器的基础图像 # escape=` FROM mcr.microsoft.com/mssql/server:2019-latest SHELL ["/bin/bash", "-c"] COPY ./CompanyCert.crt /usr/local/share/ca-certificates/Co

我运行了以下命令:

docker pull mcr.microsoft.com/mssql/server:2019-latest
然后我制作了一个dockerfile,将此容器图像用作另一个容器的基础图像

# escape=`
FROM  mcr.microsoft.com/mssql/server:2019-latest
SHELL ["/bin/bash", "-c"]

COPY ./CompanyCert.crt  /usr/local/share/ca-certificates/CompanyCert.crt
RUN update-ca-certificates
当我尝试构建docker文件时,出现以下错误:

ln:未能创建符号链接“/etc/ssl/certs/CompanyCert.pem”:权限被拒绝

所以我在docker文件中添加了一个
runwhoami
,它返回mssql。当我运行
id-u
时,它返回10001。因此,用户mssql似乎没有根权限

我试着把sudo放在我的
更新ca证书的电话前面,但它说:

/bin/bash:sudo:未找到命令

我尝试运行su-
,结果是:

苏:必须从终点站运行

我已经成功地使用上面的dockerfile在Microsoft的其他容器上安装了我的公司证书,但这次失败得惊人


如何获得root访问权限,以便在此SQL Server容器上安装公司证书?

用户root添加到您的
Dockerfile

FROM  mcr.microsoft.com/mssql/server:2019-latest
USER root
SHELL ["/bin/bash", "-c"]

COPY ./CompanyCert.crt  /usr/local/share/ca-certificates/CompanyCert.crt
RUN update-ca-certificates

工作得很好!非常感谢。