2017-11-22 14 views
0

도커 이미지 node:6에서 (현재) 기반으로하는 node-red docker 이미지를 확장 중입니다.확장 (node.js) 도커 이미지에 맞춤 CA 인증서를 추가하는 방법

사용자 정의 SSL 인증서를 도커 이미지의 인증서 저장소에 추가하고 싶습니다. 지금까지 나는 다음과 같이 이런 짓을 :

FROM nodered/node-red-docker 

ADD DigiCertCA.crt /usr/local/share/ca-certificates/ 
RUN update-ca-certificates 

ADD settings.js /data/settings.js 

RUN npm install node-red-contrib-ttn 
RUN npm install node-red-contrib-influxdb 
RUN npm install node-red-admin 
RUN npm install node-red-node-geohash 

CMD ["npm", "start", "--", "--userDir", "/data"] 

이 이미지를 구축하는 것은 실패의 RUN는 루트가 아닌 사용자 node로 실행되기 때문이다.

Updating certificates in /etc/ssl/certs... ln: failed to create symbolic link '/etc/ssl/certs/DigiCertCA.pem': Permission denied 
The command '/bin/sh -c update-ca-certificates' returned a non-zero code: 1 

루트가 아닌 것으로 알고 있습니다. 그러나 기존 CA 인증서를 사용하여 기존 이미지를 확장하는 올바른 개념은 무엇입니까?

답변

1

왜 사용자를 루트로 전환하여 명령을 실행하여 인증서를 추가하고 다시 전환해야합니까?

FROM nodered/node-red-docker 

ADD DigiCertCA.crt /usr/local/share/ca-certificates/ 
USER root 
RUN update-ca-certificates 
USER node-red 


ADD settings.js /data/settings.js 

RUN npm install node-red-contrib-ttn 
RUN npm install node-red-contrib-influxdb 
RUN npm install node-red-admin 
RUN npm install node-red-node-geohash 

CMD ["npm", "start", "--", "--userDir", "/data"]