1. Zertifikate in Docker mounten
Um ein selbstsigniertes Zertifikat in einem Docker-Container verfügbar zu machen, müssen wir das Zertifikat vom Hostsystem in den Container mounten. Dies wird in der docker-compose.yml
Datei wie folgt konfiguriert:
volumes:
- "./conf/services/config.json.production:/etc/enginsight/server-m2/config.json"
- "/pfad/auf/host/cert.pem:/etc/ssl/cert.pem"
Links: Pfad des root Zertifikats auf dem Server
Rechts: Pfad im Docker Container
2. Umgebungsvariable für Node.js setzen
Da Node.js nicht auf den System-Truststore zugreift, muss die Umgebungsvariable NODE_EXTRA_CA_CERTS
gesetzt werden, um auf das Zertifikat zu verweisen:
environment:
- NODE_EXTRA_CA_CERTS=/etc/ssl/cert.pem
- "./conf/services/config.json.production:/etc/enginsight/server-m2/config.json"
3. Integration einer Hostdatei
Docker nutzt nicht die Hostdatei des Systems, daher muss sie ebenfalls gemountet werden. Dies kann durch extra_hosts
in der docker-compose.yml
Datei geschehen:
extra_hosts:
- "ngs-app.domain:10.4.0.21"
4. Proxy-Konfiguration
Sollte ein Proxy erforderlich sein, kann dieser in der Datei docker-compose.yml
konfiguriert werden. Diese Datei sollte nach folgender Anleitung befüllt werden:
environment:
- HTTP_PROXY=http://proxy.url.de:port
- HTTPS_PROXY=http://proxyfürhttps.url.de:port
- NO_PROXY=.<domain>.de
5. Beispiel einer docker-compose.yml
Datei
Hier ist ein vollständiges Beispiel einer docker-compose.yml
Datei für den server-m2
Container:
version: '3.8'
services:
server-m2:
image: registry.enginsight.com/enginsight/server-m2:5.7.2
extra_hosts:
- "ngs-siem.domain.de:10.4.0.24"
- "ngs-app.domain:10.4.0.21"
networks:
- redis
- mongodb
ports:
- "82:8080"
depends_on:
- redis
- mongodb
- mongodb-setup
restart: always
environment:
- HTTP_PROXY=http://proxy.de:8080
- HTTPS_PROXY=http://proxy.de:8443
- NO_PROXY=.proxy.de
- NODE_EXTRA_CA_CERTS=/etc/ssl/cert.pem
volumes:
- "./conf/services/config.json.production:/etc/enginsight/server-m2/config.json"
- "/etc/nginx/cert.pem:/etc/ssl/cert.pem"
networks:
redis:
mongodb: