Docker-X11-Bridge + Ein Webbrowser 
emacs26 , emacs25 , emacs-snapshot ) zum Debuggen auszutauschenlatest DOCKERFILES/EMACS26emacs25 DOCKERFILES/EMACS25testing von DockerFiles/Snapshotalpine Dockerfiles/Alpine - EMACs bauen auf alpine linux klein (ca. 300 MB unkomprimiert), können aber fehlerhaft seinWenn Sie eine andere EMACS-Version/Konfiguration benötigen
Holen Sie sich zuerst Docker für Ihr Betriebssystem. Dann können Sie eines der Bilder als Basis (von) für Ihre Dockerfile verwenden. Einfaches Beispiel, Spacemacs -Verteilung. Dadurch können Sie zusätzliche Software-/Paketabhängigkeiten installieren und sichern. Mit DockerFile -Anweisung können Sie Ihre .emacs.d aus Archiven und Remote -Repositories wie GitHub mit URL extrahieren. Sie können auch einfach eines der Bilder ausführen:
Holen Sie XQuartz
open -a XQuartz
Gehen Sie in den Xquartz -Einstellungen auf die Registerkarte "Sicherheit" und stellen Sie sicher
ip=$(ifconfig en0 | grep inet | awk '$1=="inet" {print $2}')
xhost + $ip
docker run -ti --name emacs
-e DISPLAY=$ip:0
-e UNAME="emacser"
-e GNAME="emacsers"
-e UID="1000"
-e GID="1000"
-v <path_to_your_.emacs.d>:/home/emacs/.emacs.d
-v <path_to_your_workspace>:/mnt/workspace
jare/emacs emacs
Quelle
Andere Methode
Holen Sie sich Cygwin mit xinit , xorg-server und optionalen winpty (um EMACS -Container mit -t auszuführen)
export DISPLAY=<your-machine-ip>:0.0
startxwin -- -listen tcp &
xhost + <your-machine-ip>
docker run --name emacs
-e DISPLAY="$DISPLAY"
-e UNAME="emacser"
-e GNAME="emacsers"
-e UID="1000"
-e GID="1000"
-v <path_to_your_.emacs.d>:/home/emacs/.emacs.d
-v <path_to_your_workspace>:/mnt/workspace
jare/emacs emacs
Oder mit -ti via winpty
winpty docker run -ti --name emacs
-e DISPLAY="$DISPLAY"
-e UNAME="emacser"
-e GNAME="emacsers"
-e UID="1000"
-e GID="1000"
-v <path_to_your_.emacs.d>:/home/emacs/.emacs.d
-v <path_to_your_workspace>:/mnt/workspace
jare/emacs emacs
Quelle Sie können @Ninrods Setup verwenden
UID und vorzugsweise sollten UNAME mit der Benutzer -ID des Hosts übereinstimmen. Stellen Sie außerdem $DISPLAY
docker run -ti --name emacs -v /tmp/.X11-unix:/tmp/.X11-unix:ro
-e DISPLAY="unix$DISPLAY"
-e UNAME="emacser"
-e GNAME="emacsers"
-e UID="1000"
-e GID="1000"
-v <path_to_your_.emacs.d>:/home/emacs/.emacs.d
-v <path_to_your_workspace>:/mnt/workspace
jare/emacs emacs
Das war's! Jetzt sollten Sie das EMACS -Fenster sehen.
Möglicherweise müssen Sie die lokale Verbindung für den UNAME des Benutzers zulassen, der mit der Benutzer -Hosts -ID übereinstimmen sollte.
xhost +si:localuser:<UNAME>
Oder lassen Sie die lokale Verbindung vom Hostnamen des Containers aus (dies sollte mit jeder UID funktionieren)
xhost +local:`docker inspect --format='{{ .Config.Hostname }}' emacs`
Quelle
docker rm -f emacs - emacs -Container entfernendocker restart emacs - Neustartem emacs -Container neu startendocker rmi -f jare/emacs - entfernen Sie jare/emacs -Bilddocker pull jare/emacs - Holen Sie sich eine neuere jare/emacs -Versiondocker images -a - Alle Bilder listendocker ps -a - Alle Container listendocker run ... jare/emacs - Führen Sie den Standardbefehl ausdocker run -ti ... jare/emacs /bin/bash - Start Bashdocker exec emacs /usr/bin/emacs - Start /usr/bin/emacs im laufenden emacs -Containerdocker logs emacs - Drucken emacs -Containerprotokolledocker run ... -p 8080:8080 ... jare/emacs - Zugriff auf den Container -Server von Localhost: 8080docker cp <from_my_local_machine_path> emacs:/<to_my_emacs_container_path>docker cp emacs:/<from_my_emacs_container_path> <to_my_local_machine_path>docker volume create --name my-workspace docker run ... -v my-workspace:/mnt/workspace ... jare/emacs docker run ... -v my-workspace:/home/developer/workspace ... jare/vim-bundle