2017-11-22 1 views
0

Ich erweitere das node-red docker Image, das (derzeit) auf dem Docker-Image node:6 basiert.So fügen Sie ein benutzerdefiniertes Zertifizierungsstellenzertifikat für ein erweitertes (node.js) Docker-Image hinzu

Ich möchte ein benutzerdefiniertes SSL-Zertifikat in den Zertifikatspeicher des Docker-Images einfügen. Bis jetzt habe ich dies wie folgt:

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"] 

Der Aufbau dieses Bild nicht, weil die RUN als Nicht-Root-Benutzer node ausgeführt wird.

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 

Ich bin mir bewusst, dass als nicht root eine solche Operation nicht möglich ist. Aber was ist das gültige Konzept, um vorhandene Bilder mit benutzerdefinierten CA-Zertifikaten zu erweitern?

Antwort

1

Warum nicht einfach den Benutzer zu root wechseln, um den Befehl zum Hinzufügen des Certs auszuführen und dann zurückzuschalten?

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"] 
Verwandte Themen