-
Notifications
You must be signed in to change notification settings - Fork 0
/
Dockerfile.voidlinux
125 lines (102 loc) · 2.37 KB
/
Dockerfile.voidlinux
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
124
125
FROM ghcr.io/void-linux/void-linux:latest-full-x86_64
ARG USER=shank
ARG PASSWD=pass
ARG UID=1000
ARG GID=1000
ENV USER=${USER}
ENV HOME=/home/${USER}
# timezone
ENV TZ="America/New_York"
# better colors
ENV TERM=xterm-256color
# update packages
RUN xbps-install --sync --update
# base utils
RUN xbps-install --sync -y xtools
# enable repositories
RUN xbps-install --sync -y \
void-repo-debug \
void-repo-multilib \
void-repo-nonfree
# dev utils
RUN xbps-install --sync -y \
StyLua \
base-devel \
bash \
bat \
black \
clang \
clang-tools-extra \
cmake \
exa \
fd \
file \
fish-shell \
fzf \
helix \
htop \
jq \
just \
lazygit \
lld \
lf \
man-db \
ncurses \
neofetch \
neovim \
nodejs \
openssh \
pkg-config \
python3-neovim \
python3-pip \
ripgrep \
rustup \
sd \
stow \
sudo \
tealdeer \
tmux \
tree \
unzip \
wget \
xclip \
xsel
# locale
RUN sed -i -e 's/#en_US.UTF-8/en_US.UTF_8/' /etc/default/libc-locales
RUN xbps-reconfigure --force glibc-locales
# timezone
RUN ln -sf /usr/share/zoneinfo/America/Indiana/Indianapolis /etc/localtime
# create user
RUN useradd --create-home ${USER} --uid ${UID} --shell /usr/bin/bash
RUN echo "${USER} ALL=(ALL) ALL" >> /etc/sudoers
RUN echo "${PASSWD}\n${PASSWD}" | passwd ${USER}
# fish prompt
RUN sd -s "'>'" "' |'" /usr/share/fish/functions/fish_prompt.fish
RUN sd -s "'#'" "' #'" /usr/share/fish/functions/fish_prompt.fish
# change users default shell
RUN chsh ${USER} --shell /usr/bin/fish
# change to $USER directory
WORKDIR /home/${USER}
USER ${USER}
# dotfiles
RUN git clone https://gitlab.com/shank/dotfiles.git \
&& cd dotfiles \
&& git remote set-url origin [email protected]:shank/dotfiles.git
# stow packages
RUN cd dotfiles \
&& rm --force ${HOME}/.config/fish/functions/fish_user_key_bindings.fish \
&& stow --verbose --no-folding fish neovim tmux bins git helix
# tmux plugin manager
RUN git clone https://github.com/tmux-plugins/tpm $HOME/.tmux/plugins/tpm
# change the shell for the rest of the commands commands
SHELL ["/usr/bin/fish", "--login", "-c"]
# fisher (fish shell)
RUN curl -sL https://git.io/fisher | source && fisher install jorgebucaran/fisher
RUN fisher install patrickf1/fzf.fish jethrokuan/z
# rust
RUN echo "1" | rustup-init
# RUN mkdir ~/.cargo-target
# python packages
RUN pip install bpython
# start fish shell
ENTRYPOINT ["fish"]