simplify Emacs 29 installation steps in Dockerfile

This commit is contained in:
riscy 2024-04-14 11:33:24 -07:00
parent abc6c17643
commit ca11b0cf36

View file

@ -1,22 +1,13 @@
# With big thanks to @Silex and @purcell, this Dockerfile is based on:
# <https://github.com/Silex/docker-emacs/blob/master/29.1/debian/Dockerfile>
FROM nixos/nix:2.19.1 AS nixos
ADD https://api.github.com/repos/purcell/nix-emacs-ci/git/refs/heads/master /tmp/cache
RUN nix-env -iA cachix -f https://cachix.org/api/v1/install \
&& cachix use emacs-ci \
&& nix-env -iA emacs-29-1 -f https://github.com/purcell/nix-emacs-ci/archive/master.tar.gz \
&& nix --extra-experimental-features nix-command copy --no-require-sigs --to /nix-emacs "$(command -v emacs)" \
&& ln --relative --symbolic /nix-emacs/nix/store/*emacs* /nix-emacs/nix/store/emacs
FROM debian:trixie-20231120-slim
COPY --from=nixos /nix-emacs/nix/store /nix/store
ENV PATH="/nix/store/emacs/bin:$PATH"
# Based on:
# <https://ubuntuhandbook.org/index.php/2023/08/gnu-emacs-29-1-ubuntu-ppa/>
FROM ubuntu:22.04
RUN apt-get update \
&& apt-get -y install curl gnupg openssh-client wget \
&& apt-get -y --no-install-recommends install software-properties-common \
&& add-apt-repository ppa:ubuntuhandbook1/emacs \
&& apt-get -y install emacs emacs-common \
&& apt-get -y purge software-properties-common \
&& apt-get -y autoremove \
&& rm -rf /var/lib/apt/lists/* /root/.cache/*