Ich bin neu bei Docker. Ich benutze Docker & amp; docker-compose, durch ein flaschen-tutorial gehen. Das Basis-Docker-Bild ist python 2.7 slim. Es läuft unter Linux. Andockfenster 1.11.2 Die Anwendung funktioniert gut. Ich möchte, dass pycharm pro den Remote-Interpreter verbindet, etwas, das ich noch nie zuvor gemacht habe.
Ich folgte den Anweisungen für docker-compose. Anfangs war es fehlgeschlagen, weil es keine Verbindung zu Port 2376 herstellen konnte. Ich fügte diesen Port zu docker-compose.yml hinzu und der Fehler ging weg. Der Versuch, die Konfiguration zu speichern, stürzt / hängt jedoch mit dem Dialog 'Getting Remote Interpreter Version' ab. Dies wird nie abgeschlossen. Außerdem kann ich nicht mit pycharm aufhören. Dies geschieht in Pycharm 2016.2 und 2016.3 EAP (2.).
Die Hilfe sagt "SFTP Unterstützung wird benötigt, um Helfer auf den Server zu kopieren". Bedeutet das, dass ich etwas tun muss?
Ich benutze keine Docker-Maschine Das Problem war, dass TCP-Zugriff auf die Docker-API nicht standardmäßig unter Ubuntu 16.04 eingerichtet ist.
Es gibt Vorschläge zum Aktivieren des TCP / IP-Zugriffs.
Aber JetBrains gab mir die einfachste Lösung:
Wenn Sie Linux verwenden, ist es sehr wahrscheinlich, dass Docker mit installiert wurde Die Standardeinstellungen und Docker erwarten, dass sie unter UNIX verwendet werden Domain-Datei-Socket /var/run/docker.sock. Und Sie sollten angeben unix: ///var/run/docker.sock im Feld API-URL. Bitte kommentieren ob es hilft!
Dieser Vorschlag funktionierte mit meiner von Ubuntu 16.04 abgeleiteten Distribution.
Dies wird in den PyCharm-Einstellungen unter Build, Execution, Deployment in den Docker-Eintrag übernommen.
Sie können dies auch bearbeiten, während Sie einen Remote-Interpreter einrichten, aber nur, indem Sie einen neuen Docker-Eintrag erstellen.
TCP / IP-Methode
Diese Methode funktioniert, wenn Sie TCP / IP-Zugriff wünschen, aber dies ist ein Sicherheitsrisiko. Der Socket-Ansatz ist besser, weshalb wahrscheinlich der Standard ist.
docker anpassen
Die Docker Systemeinheit kann durch Überschreiben der Einheit angepasst werden wird mit den Standard-CoreOS-Einstellungen ausgeliefert. Häufige Anwendungsfälle für das Tun Dies ist im Folgenden beschrieben.
Aktivieren Sie die Remote-API auf einem neuen Socket
Erstellen Sie eine Datei mit dem Namen /etc/systemd/system/docker-tcp.socket Docker ist auf einem TCP-Socket an Port 2375 verfügbar.
%Vor%Aktivieren Sie dann diesen neuen Socket:
%Vor%Testen Sie, dass es funktioniert:
%Vor%
Sobald ich dachte, nach Ubuntu 16.04 zu suchen, stieß ich auf einfachere Lösungen, aber ich prüfte sie nicht.
Zum Beispiel:
Bearbeiten Sie die Datei /lib/systemd/system/docker.service
Ändern Sie die Zeile, die mit ExecStart beginnt, so aus:
%Vor%Wo mein Zusatz ist der "-H tcp: / 0.0.0.0: 2375" -Teil. Speichern Sie die geänderte Datei. Starten Sie den Docker-Dienst neu:
%Vor%Testen Sie, ob die Docker-API wirklich zugänglich ist:
%Vor%
I - docker-komponieren
Ich denke, PyCharm wird docker-compose up
ausführen, haben Sie versucht, diesen Befehl zuerst in Ihrem Terminal auszuführen (von wo% code_% ist)?
Vielleicht, wenn einige Fehler auftreten, erhalten Sie mehr Informationen in Ihrem Terminal.
II - pycharm docker-konfiguration
Andernfalls könnte dies an der Konfiguration Ihrer Docker-Maschine in PyCharm liegen.
Was mache ich, um meinen Rechner zu konfigurieren und um sicher zu sein, dass dieser richtig konfiguriert ist:
1 - Führe docker-compose.yml
in deiner Shell aus
2 - Kopieren Sie die URL ohne docker-machine ls
3 - gehe zu pycharm Einstellungen - & gt; tcp://
- & gt; Build, Execution, Deployement
- & gt; Docker
um einen neuen Server zu erstellen, fülle den Server +
field
4 - fügen Sie die zuvor kopierte URL ein, wobei name
5 - füllen Sie den Pfad Ihres Computerzertifikats-Ordners
6 - tick https://
7 - Klicken Sie auf Import credentials from Docker Machine
- & gt; Ihr Gerät sollte in der Auswahlliste erscheinen
8 - speichere diesen Server
9 - Wählen Sie diesen Server bei der Konfiguration Ihres Remote-Interpreters aus den PyCharm-Einstellungen - & gt; Detect
- & gt; Project
- & gt; Project Interpreter
- & gt; wheel
- & gt; add remote
oder Docker
10 - Sie sollten einen Servicenamen auswählen können
11 - Speichere deinen neuen Interpreter
11 - Versuchen Sie zweimal, den Test zu starten, manchmal kann es einige Zeit dauern, ihn zu initialisieren