-
Notifications
You must be signed in to change notification settings - Fork 8
/
Copy pathDockerfile
66 lines (62 loc) · 2.51 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
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
ARG VARIANT="bookworm"
FROM buildpack-deps:${VARIANT}
ARG USERNAME=root
ARG USER_UID=0
ARG USER_GID=0
ARG INSTALL_ZSH="true"
ARG UPGRADE_PACKAGES="true"
# Copy scripts
# TODO Use common-library and then the rest, so that the context does not change for this stage.
COPY common-library-scripts/*.sh common-library-scripts/*.env /tmp/library-scripts/
RUN apt-get update && export DEBIAN_FRONTEND=noninteractive \
&& /bin/bash /tmp/library-scripts/common-debian.sh "${INSTALL_ZSH}" "${USERNAME}" "${USER_UID}" "${USER_GID}" "${UPGRADE_PACKAGES}" "true" "false" \
#
# ****************************************************************************
# * TODO: Add any additional OS packages you want included in the definition *
# * here. We want to do this before cleanup to keep the "layer" small. *
# ****************************************************************************
&& apt-get -y install --no-install-recommends \
emacs-nox \
tmux screen \
htop procps file \
sqlite3 postgresql-client \
mc tree ack fzf \
lua5.3 \
#
&& apt-get autoremove -y && apt-get clean -y && rm -rf /var/lib/apt/lists/* /tmp/library-scripts
# Runtimes
COPY library-scripts/*.sh library-scripts/*.env /tmp/library-scripts/
# External scripts
RUN curl -L https://raw.githubusercontent.com/tj/n/master/bin/n -o /tmp/library-scripts/n
RUN cd /tmp/library-scripts && \
/bin/bash swift5-debian.sh && \
# Rust
/bin/bash rust-debian.sh && \
/bin/bash rust-analyzer-debian.sh && \
# Node
/bin/bash n lts && \
npm i -g n yarn \
typescript-language-server typescript bash-language-server vls svelte-language-server \
awk-language-server@>=0.5.2 && \
# Bun
curl -fsSL https://bun.sh/install | BUN_INSTALL=/usr/local /bin/bash && \
# Ruby
/bin/bash rbenv-system-wide.sh && \
/bin/bash -l -c "rbenv install 3.2.2" && /bin/bash -l -c "rbenv global 3.2.2" && \
/bin/bash -l -c "rbenv install 2.7.7" && \
# Go
/bin/bash go-debian.sh && \
# Python
/bin/bash pyenv-system-wide.sh && \
/bin/bash -l -c "pyenv install 3.11.5" && /bin/bash -l -c "pyenv global 3.11.5" && \
/bin/bash -l -c "pyenv install 2.7.18" && \
# PHP
/bin/bash php-debian.sh && \
# other tools
/bin/bash helix-debian.sh && \
/bin/bash nvim-debian.sh && \
# /bin/bash broot-debian.sh && \
/bin/bash gh-debian.sh && \
/bin/bash tailscale-debian.sh && \
rm -rf /tmp/*
# TODO We should include a changelog for what is new in the image.