Ich habe eine dumme Frage, und es tut mir leid, aber wie kann ich die doccano-App in einem Docker-Container SSL-aktivieren?
Wenn ich die App so starte:
docker run -d --rm --name doccano \
-e "ADMIN_USERNAME=admin" \
-e "[email protected]" \
-e "ADMIN_PASSWORD=password" \
-e "DEBUG=False" \
-e "SECRET_KEY=secret-key" \
-p 80:8000 doccano:myrebuilt
Und ich mache sudo netstat -tpln
Ich bekomme das:
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
tcp6 0 0 :::80 :::* LISTEN 32697/docker:proxy
Wenn ich http://mydoccano:80/
in meinen Webbrowser eingebe, sehe ich die Docanno-App. Dies ist leider nicht sicher.
Also dachte ich darüber nach, nginx auf dem Hostcomputer einzurichten und von 80 auf 443 umzuleiten, aber ich erhalte diese Fehlermeldung, wenn ich versuche, das Docker-Image auszuführen:
fc310303a5710e422580f1ffd5a0f1a30
docker: Error response from daemon: driver failed programming external connectivity on endpoint doccano (fa81ff4b030a29636bc22178e75b95a9d9988984325): Error starting userland proxy: listen tcp 0.0.0.0:80: bind: address already in use.
Was kann ich tun, um von http:/mydoccano/
auf https://mydocano/
umzuleiten? Soll ich nginx im Docker-Container einrichten? Oder sollte ich die SSL-Zertifikate in den Container legen und ausführen, während ich eine Art SSL-Parameter übergebe? Irgendwelche Ideen oder Hinweise? Danke im Voraus!
Ich würde empfehlen, nginx zu verwenden, um SSL zu beenden und die Anfrage dann an doccano weiterzuleiten. Beachten Sie, dass Sie, wenn Sie doccano hinter SSL verwenden, die in https://github.com/chakki-works/doccano/pull/350 genannten Einstellungen konfigurieren müssen
danke, @cw
Dank @cw-Vorschlag habe ich meine doccano-App endlich mit SSL zum Laufen gebracht.
Nur fürs Protokoll und falls jemand daran interessiert ist zu wissen, wie ich es zum Laufen gebracht habe, hier ist meine Nginx-Konfiguration auf dem Produktionsserver:
upstream doccano_app {
server 127.0.0.1:8080;
}
server {
listen 80;
listen [::]:80;
server_name doccano.mydomain.com;
location / {
return 301 https://$host$request_uri;
}
}
server {
listen 443 ssl;
listing [::]443 ssl;
server_name doccano.mydomain.com;
ssl_certificate /etc/letsencrypt/live/doccano.mydomain.com/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/doccano.mydomain.com/privkey.pem;
root /var/www/html;
try_files $uri @docker;
location <strong i="7">@docker</strong> {
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Host $http_host;
proxy_set_header X-Forwarded_Proto $scheme;
proxy_redirect off;
proxy_pass http://doccano_app;
}
}
Hilfreichster Kommentar
Dank @cw-Vorschlag habe ich meine doccano-App endlich mit SSL zum Laufen gebracht.
Nur fürs Protokoll und falls jemand daran interessiert ist zu wissen, wie ich es zum Laufen gebracht habe, hier ist meine Nginx-Konfiguration auf dem Produktionsserver: