我运行了这个命令:
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: failed to create symbolic link '/etc/ssl/certs/CompanyCert.pem': Permission denied
所以我加了一个
RUN whoami
到我的 docker 文件,它返回 mssql。当我运行 id -u
它返回 10001。所以似乎用户 mssql 没有 root 权限。我尝试将 sudo 放在对
update-ca-certificates
的调用前面但它说:/bin/bash: sudo: command not found
我试过
RUN su -
并返回:su: must be run from a terminal
我已成功使用上述 dockerfile 将我的公司证书安装在 Microsoft 的其他容器上,但这次失败了。
如何获得 root 访问权限,以便在此 SQL Server 容器上安装我的公司证书?
最佳答案
添加 USER 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
关于sql-server - 在 Dockerfile 中切换到 Root 用户,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59364683/