在 Dockerfile 中切换到 root 用户

Vac*_*ano 4 sql-server ubuntu root docker

我运行了这个命令:

docker pull mcr.microsoft.com/mssql/server:2019-latest
Run Code Online (Sandbox Code Playgroud)

然后我制作了一个 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
Run Code Online (Sandbox Code Playgroud)

当我尝试构建该 docker 文件时,出现此错误:

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

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

我尝试将 sudo 放在我的电话前,update-ca-certificates但它说:

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

我尝试RUN su -并返回:

su:必须从终端运行

我已成功使用上述 dockerfile 在 Microsoft 的其他容器上安装我的公司证书,但这次失败了。

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

Raj*_*pta 5

添加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
Run Code Online (Sandbox Code Playgroud)