Ich habe einen Docker-Container, der eine Django-App enthält. Die statischen Dateien werden erzeugt und in einen statischen Ordner kopiert.
Container Ordnerhierarchie:Dateien aus Docker-Container zum Host aussetzen
- var
- django
- app
- static
, bevor ich das Docker Bild bauen, ich laufe ./manage.py collectstatic
so die statischen Dateien sind im /var/django/static
Ordner. Um die App verfügbar zu machen und die statischen Dateien zu bedienen, habe ich auf dem Host ein nginx. Das Problem ist, dass, wenn ich ein Volume zwischen dem statischen Ordner und einem bestimmten Ordner auf dem Host, wenn ich den Docker-Container ausführen, der /var/django/static
Ordner im Container wird gelöscht (na ja, nicht gelöscht, aber gemountet). Gibt es einen Weg, dies zu überwinden? wie in der Lautstärke einstellen, aber docker, die aktuellen Dateien auch zu nehmen?
Warum nicht ein 'nginx' Docker Bild bauen statt? Also, was Sie hier tun würden, ist, was immer Sie tun müssen, um Ihre django-Webanwendung zu "bauen" und dann hinzuzufügen (mit dem 'ADD'-Schlüsselwort von dockerfile), um die statischen Dateien in das nginx-Bild zu schieben? –
weil unsere qa/integration/production env so funktioniert. Das Nginx ist auf dem Host und nicht auf Docker ausgeführt. –
Ich verstehe. Sie schauen sich also an, die Dateien eines Containers auf den Host zu laden, was ziemlich unkonventionell ist, weil die Leute das normalerweise umgekehrt tun. Was ist also der Zweck, einen Container zu haben, in dem Sie nur an seinen Dateien interessiert sind? Warum nicht einfach symbolisch das statische Dateiverzeichnis mit dem Verzeichnis verknüpfen, welches 'ngix' seine Dateien bereitstellt. –