Normalerweise schreibe ich Python- und R-Skripte mit neovim, aber es war mühsam, jede Datei nach der Ausgabe des Diagramms als PNG oder HTML zu öffnen und zu überprüfen. Ich wollte eine Funktion, die automatisch neue Dateien öffnet, also habe ich es mit Docker gemacht.
Erstens habe ich nicht viel gemacht. Ich hoffe, Sie lesen es mit einer Spannung wie "Hmm, es gibt Leute, die darüber nachdenken."
Speichern Sie zunächst das folgende Skript als docker-compose.yml
[^ 1]. Bitte stellen Sie Docker-Compose zur Verfügung.
[^ 1]: Ich denke, Sie haben ein Docker-Image angegeben, das Sie nicht gesehen haben, das aber von mir erstellt wurde. Da es auf Docker Hub veröffentlicht ist, sollten Sie in der Lage sein, Docker normal zu ziehen.
docker-compose.yml
version: "3"
services:
websocket:
image: dr666m1/image_watcher_websocket:version-0.0
volumes:
- .:/work/sync
ports:
- "9999:9999"
webserver:
image: dr666m1/image_watcher_webserver:version-0.0
volumes:
- .:/work/sync
ports:
- "8888:8888"
depends_on:
- websocket
Wechseln Sie danach in das Verzeichnis, in dem Sie PNG und HTML ausgeben möchten, und starten / stoppen Sie mit dem folgenden Befehl ($ FILE_PATH
ist die vorherige docker-compose.yml
).
#Anlaufen
docker-compose -f $FILE_PATH --project-directory $(pwd) up -d
#Halt
docker-compose -f $FILE_PATH --project-directory $(pwd) down
Wenn Sie während des Startvorgangs "http: // localhost: 8888 /" in Ihrem Browser öffnen, wird der am Anfang angezeigte Bildschirm angezeigt.
Wie Sie in "docker-compose.yml" sehen können, werden zwei Docker-Container ausgeführt. Die Rollen der einzelnen werden im Folgenden kurz erläutert. Der Code wird auf meinem [github] veröffentlicht (https://github.com/dr666m1/docker_image_watcher_webserver).
websocket (image_watcher_websocket) Ich werde die Erklärung von WebSocket anderen Artikeln überlassen. Die Rolle dieses Docker-Containers ist:
Ich habe Pythons ** Websocket-Server ** Paket für die Implementierung verwendet.
webserver (image_watcher_webserver) Ich werde die Erklärung, was ein Webserver ist, anderen Artikeln überlassen. Die Rolle dieses Docker-Containers ist:
index.html
zurück
Auf Anfrage werden auch --png / html-Dateien zurückgegebenIch habe Pythons ** Flask ** Paket für die Implementierung verwendet. ** React ** wird in index.html
häufig verwendet.
Sie können zwischen "Einblenden" und "Ausblenden" mit "▶" und "▼" links neben dem Dateinamen wechseln.
Wenn Sie auf den Dateinamen klicken, kann nur diese Datei auf einem separaten Bildschirm angezeigt werden.
Ich bin ein wenig speziell in Bezug auf die automatische Korrektur der vertikalen Breite des Iframes gemäß der scrollHeight der HTML-Datei und die Implementierung der Schaltfläche, um nach oben zurückzukehren.
In meiner Arbeit schreibe ich nur Python, R und SQL für die Analyse, daher habe ich gelernt, wie man mit React Bildschirme erstellt.
Recommended Posts