-
Notifications
You must be signed in to change notification settings - Fork 0
/
Dockerfile
48 lines (48 loc) · 1.55 KB
/
Dockerfile
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
FROM debian
RUN apt-get update --yes && \
apt-get install --yes \
bash-completion \
build-essential \
curl \
git \
libgccjit-12-dev \
libgif-dev \
libgmp-dev \
libgnutls28-dev \
libgtk-3-dev \
libjansson-dev \
libjpeg-dev \
libpng-dev \
libtiff-dev \
libtinfo-dev \
libtree-sitter-dev \
libxpm-dev \
rsync \
unzip
RUN curl -fsSL https://cli.github.com/packages/githubcli-archive-keyring.gpg | \
dd of=/usr/share/keyrings/githubcli-archive-keyring.gpg
RUN echo "deb [arch=$(dpkg --print-architecture) \
signed-by=/usr/share/keyrings/githubcli-archive-keyring.gpg] \
https://cli.github.com/packages stable main" | \
tee /etc/apt/sources.list.d/github-cli.list > /dev/null
RUN apt-get update --yes && apt-get install --yes gh
RUN curl --remote-name https://ftp.gnu.org/gnu/emacs/emacs-29.1.tar.xz
RUN tar -xf emacs-29.1.tar.xz
WORKDIR /emacs-29.1
RUN ./configure --with-native-compilation
RUN make
RUN make install
RUN curl -fsSL --remote-name \
https://raw.githubusercontent.com/ocaml/opam/master/shell/install.sh
RUN sh ./install.sh <<EOF
/usr/local/bin
EOF
RUN adduser ilankri
USER ilankri
RUN opam init --auto-setup --disable-sandboxing --yes
RUN opam update --yes && opam install --yes ocaml-lsp-server
WORKDIR /home/ilankri
COPY --chown=ilankri . .
RUN opam pin add --kind=path --yes .config/emacs/
RUN make
CMD ["bash", "--login"]