Beim Bereitstellen von Skripten über den Docker-Interpreter werden in Pycharm keine Volume-Bindungen erkannt

Beim Bereitstellen von Skripten über den Docker-Interpreter werden in Pycharm keine Volume-Bindungen erkannt

Ich habe die Volume-Bindung eingerichtet, die einige verschiedene Pfade zu meinem Docker-Container abbildet. Ich habe das Docker-Plugin in Pycharm Pro eingerichtet und den Interpreter des Containers als meinen Python-Interpreter festgelegt. Ich kann meine Python-Skripte problemlos mit dem Docker-Interpreter bereitstellen (in Bezug auf Pakete und Abhängigkeiten, die auf dem Docker-Image erstellt wurden).

Wenn ich jedoch Skripts bereitstelle und versuche, über Volume-Bindings auf Dateien zuzugreifen, die auf meinem lokalen Computer gespeichert sind, werden sie nicht gefunden. Wenn ich eine interaktive Debug-Shell in pycharm öffne und os.path.exist ausführe, gibt es True für die übergeordneten Pfade der Volume-Bindings (innerhalb des Containers) zurück, aber False für alle Dateien oder Verzeichnisse, die von meinem lokalen Computer dorthin zugeordnet werden sollen.

Das ist seltsam, da die Lautstärkebindungen aktiv sind. Ich habe das auf verschiedene Weise überprüft:

  1. Ich kann sehen, dass das Docker-Toolfenster von Pycharm die Bindungen korrekt auflistet

  2. Ich kann sehen, dass die zugeordneten Dateien im Container angezeigt werden, wenn ich sie vom Terminal aus überprüfe.

  3. Ich kann auch ein Terminal in meinem Container öffnen, die Python-Shell starten und os.path.exist ausführen. Dies gibt ebenfalls „True“ zurück und bestätigt, dass die Verzeichnisse zugeordnet und unter den Pfaden gefunden werden, die ich in meinen Volume-Bindungen angegeben habe.

Warum kann ich beim Bereitstellen von Python-Skripten über den Docker-Interpreter von Pycharm nicht auf meine Volume-Bindungen zugreifen, obwohl die Skripte ansonsten einwandfrei ausgeführt werden?

System Information:

Pycharm-Version: Pycharm Professional 2019.1.2

Docker-Version: 2.0.0.3

Betriebssystem des lokalen Computers: macOS 10.13.4 High Sierra

Docker-Betriebssystem: Ubuntu 16.04

Antwort1

Es stellt sich heraus, dass sich das Docker-Plugin für Pycharm nicht an bestehende laufende Container anhängt, wenn ich ein Skript bereitstelle (obwohl es auf etwas irreführende Weise ein Docker-Toolfenster hat, das laufende Container auflistet und ihre Volume-Bindungen anzeigt, als ob diese für die Bereitstellung verwendet würden). Stattdessen startet es jedes Mal, wenn Sie ein Skript bereitstellen, einen neuen Container aus dem Image. Wenn Sie also bei jedem Starten des Skripts Volumes an diese temporären Containerinstanzen binden möchten, müssen Sie zu „Ausführen/Konfigurationen bearbeiten“ navigieren und für jedes Skript die Volume-Bindungen unter „Docker-Containereinstellungen“ festlegen. Ich wusste nicht, dass dies die Volume-Bindungen waren, die für die Bereitstellung verwendet wurden, und nicht die, die im Docker-Toolfenster des laufenden Containers festgelegt wurden.

verwandte Informationen