This image is based on Archlinux.It contains these primary tools (except provided by alpine):
- bash
- git
- curl
- openssh-client
- python
- yay (For Arch User Repository)
- gcc
- make
- emacs
- shadowsocks-rust (Used for proxy)
- proxychains-ng (A tool helps you use shadowsocks conveniently)
- other optional tools
Clone this repository to your disk. Go into the directory and run this command:
docker build -t jinwuzhao/emacs .
Copy shell script emacs
from this repository to one of directories in environment variable $PATH
.
Run command emacs .
to open project with current directory. You can also use other relative path or absolute path instead.
If you need network proxy, use -p
option:
emacs . -p
Note this command will copy sscfg.json
from local config directory to the path /etc/shadowsocks/config.json
of container and copy proxychains.conf
to /etc/proxychains.conf
. Then launch the ss-local(shadowsocks-libev client) with config sscfg.json
and run emacs by proxychains4(proxychains-ng) with config proxychains.conf
.
This repository contains sscfg.json
and proxychains.conf
sample. You can modify them as you need.
By default, the detach-keys
of docker is ctrl+p,ctrl+q
and it will conflicts with the move key of emacs. To solve this problem, you can modify the detach-keys
to another value such as ctrl+^,ctrl+q
.You can modify the docker config file at ~/.docker/config.json
:
{
"detachKeys": "ctrl-^,ctrl-q"
}
If you run it with X11 environment and want to share clipboards between host and container, you can install emacs package xclip.el
:
# install xclip.el
M-x package-install RET xclip
M-x xclip-mode
You may add xclip-mode
into .emacs
file and commit a layer on this image.