forked from TerrorJack/gitpod-ghc
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Dockerfile
132 lines (127 loc) · 3.9 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
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
126
127
128
129
130
131
132
FROM ubuntu:22.04
ARG UID=33333
ARG USER=gitpod
ARG DEBIAN_FRONTEND=noninteractive
RUN \
yes | unminimize && \
apt install -y \
curl \
gnupg \
software-properties-common && \
curl -L https://apt.llvm.org/llvm-snapshot.gpg.key | gpg --dearmor -o /etc/apt/trusted.gpg.d/llvm-snapshot.gpg && \
echo "deb http://apt.llvm.org/jammy/ llvm-toolchain-jammy main" >> /etc/apt/sources.list.d/llvm-toolchain.list && \
echo "deb http://apt.llvm.org/jammy/ llvm-toolchain-jammy-14 main" >> /etc/apt/sources.list.d/llvm-toolchain.list && \
echo "deb http://apt.llvm.org/jammy/ llvm-toolchain-jammy-13 main" >> /etc/apt/sources.list.d/llvm-toolchain.list && \
curl -L https://deb.nodesource.com/gpgkey/nodesource.gpg.key | gpg --dearmor -o /etc/apt/trusted.gpg.d/nodesource.gpg && \
echo "deb https://deb.nodesource.com/node_18.x jammy main" >> /etc/apt/sources.list.d/nodesource.list && \
curl -L https://cli.github.com/packages/githubcli-archive-keyring.gpg -o /etc/apt/trusted.gpg.d/githubcli-archive-keyring.gpg && \
echo "deb https://cli.github.com/packages stable main" > /etc/apt/sources.list.d/github-cli.list && \
curl -L https://download.docker.com/linux/ubuntu/gpg | gpg --dearmor -o /etc/apt/trusted.gpg.d/docker.gpg && \
echo "deb https://download.docker.com/linux/ubuntu jammy stable" >> /etc/apt/sources.list.d/docker.list && \
curl -L https://pkgs.tailscale.com/stable/ubuntu/jammy.noarmor.gpg -o /usr/share/keyrings/tailscale-archive-keyring.gpg && \
curl -L https://pkgs.tailscale.com/stable/ubuntu/jammy.tailscale-keyring.list -o /etc/apt/sources.list.d/tailscale.list && \
add-apt-repository -y ppa:savoury1/ffmpeg4 && \
add-apt-repository -y ppa:git-core/ppa && \
add-apt-repository -y ppa:ubuntu-toolchain-r/ppa && \
apt full-upgrade -y && \
apt install -y \
asciinema \
automake \
bash-completion \
bear \
bison \
bsdmainutils \
build-essential \
busybox \
ccache \
chrpath \
clang-14 \
clang-format-14 \
clang-tidy-14 \
clang-tools-14 \
clangd-14 \
cmake \
creduce \
csmith \
dbus-x11 \
direnv \
docker-ce \
doxygen \
flex \
gawk \
gcc-11-plugin-dev \
gdb \
gh \
ghostscript \
git-annex \
git-lfs \
gnome-keyring \
htop \
jq \
libclang-14-dev \
libdw-dev \
libfuzzer-14-dev \
libgmp-dev \
libnuma-dev \
libssl-dev \
libtool-bin \
lld-14 \
llvm-14-dev \
locales-all \
man-db \
mosh \
nano \
neofetch \
ninja-build \
nodejs \
pandoc \
parallel \
patchelf \
pkg-config \
psmisc \
python-dev-is-python3 \
python3-clang-14 \
python3-full \
python3-sphinx \
python3-virtualenv \
rapidjson-dev \
rclone \
ripgrep \
shellcheck \
shfmt \
strace \
sudo \
supervisor \
tailscale \
time \
tk-dev \
tmate \
unzip \
valgrind \
xutils-dev \
zstd && \
cd $(mktemp -d) && \
PLAYWRIGHT_SKIP_BROWSER_DOWNLOAD=1 npm install playwright && \
npx playwright install-deps && \
cd $(mktemp -d) && \
curl -L https://github.com/profclems/glab/releases/download/v1.22.0/glab_1.22.0_Linux_x86_64.deb -O && \
dpkg -i glab_1.22.0_Linux_x86_64.deb && \
apt purge -y \
mawk && \
apt autoremove --purge -y && \
cp -a /etc/skel/. /root && \
echo "%sudo ALL=(ALL) NOPASSWD: ALL" > /etc/sudoers.d/sudo && \
chmod 0440 /etc/sudoers.d/sudo && \
useradd -G sudo -m -u ${UID} ${USER} && \
rm -rf \
/root/.launchpadlib \
/root/.npm \
/tmp/* \
/var/lib/apt/lists/* \
/var/tmp/*
USER ${USER}
WORKDIR /home/${USER}
ENV \
NIX_PROFILES="/nix/var/nix/profiles/default /home/${USER}/.nix-profile" \
NIX_SSL_CERT_FILE="/etc/ssl/certs/ca-certificates.crt" \
PATH="/home/${USER}/.cabal/bin:/home/${USER}/.ghcup/bin:/home/${USER}/.cargo/bin:/home/${USER}/.deno/bin:/home/${USER}/.local/bin:/home/${USER}/.nix-profile/bin:${PATH}"