Doccano: Frage: Wie kann ich die im Docker-Container lebende doccano-App SSL-aktivieren?

Erstellt am 28. Aug. 2019  ·  3Kommentare  ·  Quelle: doccano/doccano

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!

question

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:

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;
  }

}

Alle 3 Kommentare

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;
  }

}

War diese Seite hilfreich?
0 / 5 - 0 Bewertungen