Skip to content

Instantly share code, notes, and snippets.

@alphapapa
Created September 19, 2020 20:01
Show Gist options
  • Save alphapapa/6cc040b5767b4135be26884633e57383 to your computer and use it in GitHub Desktop.
Save alphapapa/6cc040b5767b4135be26884633e57383 to your computer and use it in GitHub Desktop.
Emacs native-comp branch convenience c ode

Emacs native-comp Recipes

For lack of a better term.

Update Docker image

  1. Update Andrea’s image.
    docker pull andreacorallo/emacs-nativecomp:latest
        

  1. Tangle my Dockerfile.
    FROM andreacorallo/emacs-nativecomp:latest
    
    RUN adduser --quiet --uid 1000 --disabled-password me
    RUN apt-get update
    RUN apt-get install -y git install-info texinfo
    
    ENV DISPLAY=:0
    USER me:me
        
  2. Rebuild my image.
    docker build -t ap/emacs-native-comp .
        

Run Docker container

  • Notes
    • Run xhost + to enable GUI sessions.
      • That disables all X session security, AFAIK. Is there a better way?
  • Command
    docker run -v /home/me:/home/me -v /tmp/.X11-unix/:/tmp/.X11-unix --env=DISPLAY=:0 --dns=8.8.8.8 -u me -i -t ap/emacs-native-comp:latest
        
  • Script
    docker run --rm=true -v /home/me:/home/me -v /tmp/.X11-unix/:/tmp/.X11-unix --env=DISPLAY=:0 --dns=8.8.8.8 -u me -i -t ap/emacs-native-comp:latest bash -c 'cd ~; ~/.bin/emacs-sandbox -d ~/tmp/src/emacs/native-comp/.emacs.d'
        
@alphapapa
Copy link
Author

@pataquets FYI, you're right that the problem was the Docker version. According to the Docker Hub documentation, my version of Docker was supported, but as best I could figure out, Andrea updated his Dockerfile with syntax that my version of Docker didn't support (but rather than giving some kind of "unrecognized Dockerfile keyword" error, Docker gave that useless message). Since then, I've switched to using GNU Guix to build/install a version of Emacs 28 into my user profile, which is working well. (It's also simpler, as it doesn't require bind-mounting directories and special files, dealing with network bridges to the container, X permissions, etc.)

@pataquets
Copy link

Good to know such weird message. Great to know you've gone the Guix way, since I'm on Bionic also considering going for it or switching to Arch to use AUR. Ditto for Nyxt, btw.
Thanks for sharing all that info, @alphapapa.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment