-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathDockerfile
More file actions
91 lines (82 loc) · 1.92 KB
/
Dockerfile
File metadata and controls
91 lines (82 loc) · 1.92 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
FROM ubuntu:24.04
ARG USERNAME=ubuntu
ENV DEBIAN_FRONTEND=noninteractive
ENV SHELL=bash
ENV TZ=Etc/UTC
RUN set -ex; \
apt-get update; \
apt-get upgrade -y; \
apt-get install --no-install-recommends -y \
bash-completion \
build-essential \
clang \
cmake \
curl \
direnv \
dnsutils \
dstat \
git \
gpg \
gpg-agent \
htop \
httpie \
iftop \
iotop \
iproute2 \
iputils-ping \
jq \
netcat-openbsd \
net-tools \
perl \
screen \
strace \
sudo \
sysstat \
tcpdump \
telnet \
tmux \
tzdata \
universal-ctags \
vim \
wget \
whois \
; \
:; \
install -dm 755 /etc/apt/keyrings; \
wget -qO - https://mise.jdx.dev/gpg-key.pub | gpg --dearmor \
| tee /etc/apt/keyrings/mise-archive-keyring.gpg 1> /dev/null; \
echo "deb [signed-by=/etc/apt/keyrings/mise-archive-keyring.gpg arch=amd64] https://mise.jdx.dev/deb stable main" \
| tee /etc/apt/sources.list.d/mise.list ;\
apt update; \
apt install -y mise; \
:; \
echo "${USERNAME} ALL=(ALL) NOPASSWD:ALL" >> /etc/sudoers; \
rm -rf /var/lib/apt/lists/*
RUN useradd ${USERNAME} || true
COPY --chown=${USERNAME}:${USERNAME} . /home/${USERNAME}/dotfiles
USER ${USERNAME}
WORKDIR /home/${USERNAME}
SHELL ["/bin/bash", "-c"]
RUN set -ex; \
mise use \
fzf \
go \
java \
neovim \
node@lts \
ripgrep \
rust \
uv \
; \
:; \
cd dotfiles; \
./install.sh; \
source /home/${USERNAME}/.bashrc; \
:; \
uv tool install pynvim; \
npm install -g yarn; \
:; \
/usr/bin/vim -S vim-plug-snapshot.vim +qall; \
nvim -S nvim-plug-snapshot.vim +qall; \
:; \
rm -rf /home/${USERNAME}/.cache