-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathDockerfile.dev
More file actions
123 lines (111 loc) · 3.04 KB
/
Dockerfile.dev
File metadata and controls
123 lines (111 loc) · 3.04 KB
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
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
# LaTeX environment development image.
#
# Alessandro Tenaglia <alessandro.tenaglia@uniroma2.it>
# Roberto Masocco <roberto.masocco@uniroma2.it>
#
# April 21, 2026
FROM debian:trixie-slim
ARG USER_UID=1000
ARG USER_GID=${USER_UID}
ARG DEBIAN_FRONTEND=noninteractive
# Install system packages, configure locales
RUN apt-get update && \
apt-get install -y --no-install-recommends \
# --- Base utilities
apt-utils \
ca-certificates \
curl \
git \
gnupg \
less \
locales \
nano \
openssh-client \
openssl \
procps \
python3 \
sudo \
wget \
# --- Zsh and syntax-highlighting helper
python3-pygments \
zsh \
zsh-doc \
# --- Build tooling (some LaTeX workflows call make/gcc)
build-essential \
make \
# --- Graphics / conversion tools used from inside LaTeX
ghostscript \
inkscape \
pandoc \
# --- TeX Live 2024 (Debian trixie)
biber \
cm-super \
latexmk \
lmodern \
tex-gyre \
texlive \
texlive-bibtex-extra \
texlive-extra-utils \
texlive-fonts-extra \
texlive-font-utils \
texlive-lang-english \
texlive-lang-italian \
texlive-latex-extra \
texlive-latex-recommended \
texlive-luatex \
texlive-metapost \
texlive-pictures \
texlive-plain-generic \
texlive-science \
texlive-xetex \
# --- latexindent Perl runtime deps
libfile-homedir-perl \
liblog-dispatch-perl \
liblog-log4perl-perl \
libunicode-linebreak-perl \
libxml-libxml-perl \
libyaml-tiny-perl && \
echo "en_US.UTF-8 UTF-8" > /etc/locale.gen && \
locale-gen && \
update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \
rm -rf /var/lib/apt/lists/*
ENV LANG=en_US.UTF-8
# Create non-root sudo user
RUN groupadd --gid ${USER_GID} latex && \
useradd \
-r \
--create-home \
--shell /usr/bin/zsh \
--uid ${USER_UID} \
--gid ${USER_GID} \
--groups sudo \
latex && \
install -d -o latex -g latex \
/home/latex/workspace \
/home/latex/zsh_history \
/home/latex/.ssh
ENV HOME=/home/latex
# Switch to internal user
USER latex
ENV HOME=/home/latex
WORKDIR ${HOME}
# Install and configure Oh-My-Zsh + plugins + powerlevel10k
ENV ZSH=${HOME}/.oh-my-zsh
ENV ZSH_CUSTOM=${ZSH}/custom
ENV ZSH_PLUGINS=${ZSH_CUSTOM}/plugins
ENV ZSH_THEMES=${ZSH_CUSTOM}/themes
RUN sh -c "$(wget -qO- https://raw.githubusercontent.com/ohmyzsh/ohmyzsh/master/tools/install.sh)" "" --unattended && \
git clone --single-branch --branch 'master' --depth 1 \
https://github.com/zsh-users/zsh-syntax-highlighting.git ${ZSH_PLUGINS}/zsh-syntax-highlighting && \
git clone --single-branch --branch 'master' --depth 1 \
https://github.com/zsh-users/zsh-autosuggestions.git ${ZSH_PLUGINS}/zsh-autosuggestions && \
git clone --single-branch --depth 1 \
https://github.com/romkatv/powerlevel10k.git ${ZSH_THEMES}/powerlevel10k
COPY --chown=latex:latex \
./config/.aliases.sh \
./config/.bashrc \
./config/.nanorc \
./config/.p10k.zsh \
./config/.zshrc \
./
CMD ["zsh"]