11

I ran this command:

docker pull mcr.microsoft.com/mssql/server:2019-latest

I then made a dockerfile to use this container image as a base image for another container

# 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

When I try to build that docker file, I get this error:

ln: failed to create symbolic link '/etc/ssl/certs/CompanyCert.pem': Permission denied

So I added a RUN whoami to my docker file and it returns mssql. When I run id -u it returns 10001. So it seems that the user mssql does not have root permissions.

I tried putting sudo in front of my call to update-ca-certificates but it says:

/bin/bash: sudo: command not found

I tried to RUN su - and that returns:

su: must be run from a terminal

I have successfully used the above dockerfile to install my company certificates on other containers from Microsoft, but it is failing spectacularly this time.

How can I get root access so I can install my company certificate on this SQL Server Container?

Dale K
  • 25,246
  • 15
  • 42
  • 71
Vaccano
  • 78,325
  • 149
  • 468
  • 850

1 Answers1

12

Add USER root to your 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
rajesh-nitc
  • 5,049
  • 3
  • 25
  • 33