J'ai une question idiote et j'en suis désolé, mais comment puis-je activer SSL pour l'ensemble d'applications doccano dans un conteneur Docker ?
Quand je lance l'application comme ceci :
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
Et je fais sudo netstat -tpln
j'obtiens ceci :
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
tcp6 0 0 :::80 :::* LISTEN 32697/docker:proxy
Si je tape http://mydoccano:80/
dans mon navigateur Web, je peux voir l'application Docanno. Malheureusement, ce n'est pas sécurisé.
J'ai donc pensé à configurer nginx dans la machine hôte et à rediriger de 80 à 443 mais j'obtiens cette erreur en essayant d'exécuter l'image docker :
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.
Que puis-je faire pour rediriger de http:/mydoccano/
vers https://mydocano/
? Dois-je configurer nginx dans le conteneur Docker ? Ou dois-je mettre les certificats SSL à l'intérieur du conteneur et l'exécuter en passant une sorte de paramètres SSL ? Des idées ou des repères ? Merci d'avance!
Je recommanderais d'utiliser nginx pour mettre fin à SSL, puis de transmettre la demande à doccano. Notez que si vous utilisez doccano derrière SSL, vous devrez configurer les paramètres mentionnés dans https://github.com/chakki-works/doccano/pull/350.
merci, @cw
Grâce à la suggestion de @cw, j'ai enfin fait fonctionner mon application doccano avec SSL.
Juste pour mémoire et au cas où quelqu'un voudrait savoir comment je l'ai fait fonctionner, voici ma configuration Nginx sur le serveur de production :
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;
}
}
Commentaire le plus utile
Grâce à la suggestion de @cw, j'ai enfin fait fonctionner mon application doccano avec SSL.
Juste pour mémoire et au cas où quelqu'un voudrait savoir comment je l'ai fait fonctionner, voici ma configuration Nginx sur le serveur de production :