-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathprepare.sh
executable file
·66 lines (53 loc) · 2.46 KB
/
prepare.sh
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
#!/bin/bash
set -e
export DEBIAN_FRONTEND=noninteractive
apt update
apt dist-upgrade -y
apt install nano sudo gettext-base wget curl git build-essential openssh-client iproute2 libsecret-1-0 dbus-user-session gnome-keyring ca-certificates zlib1g php nginx php-fpm php-intl php-xml php-soap php-redis php-curl php-imagick php-mbstring php-mysql php-sqlite3 -y --no-install-recommends
echo 'vscode-server ALL=(ALL) NOPASSWD:ALL' > /etc/sudoers.d/vscode-server
curl -fsSL https://cli.github.com/packages/githubcli-archive-keyring.gpg | dd of=/usr/share/keyrings/githubcli-archive-keyring.gpg
chmod go+r /usr/share/keyrings/githubcli-archive-keyring.gpg
echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/githubcli-archive-keyring.gpg] https://cli.github.com/packages stable main" | tee /etc/apt/sources.list.d/github-cli.list > /dev/null
apt update
apt install gh -y
dpkgArch="$(dpkg --print-architecture)"
case "${dpkgArch##*-}" in
amd64)
ARCH='x64'
GO_ARCH="amd64"
DOCKER_ARCH=x86_64
;;
arm64)
ARCH='arm64'
GO_ARCH="arm64"
DOCKER_ARCH=aarch64
;;
*)
echo "unsupported architecture"
exit 1
;;
esac
mkdir -p /usr/local/yarn
curl -sL "https://download.docker.com/linux/static/stable/${DOCKER_ARCH}/docker-${DOCKER_VERSION}.tgz" | tar --strip-components 1 -C /usr/local/bin -xzf - 'docker/docker'
curl -sL "https://dl.google.com/go/go${GOLANG_VERSION}.linux-${GO_ARCH}.tar.gz" | tar -C /usr/local -xzf -
curl -sL "https://nodejs.org/dist/v${NODE_VERSION}/node-v${NODE_VERSION}-linux-${ARCH}.tar.gz" | tar --strip-components=1 -C /usr/local -xzf -
curl -sL "https://yarnpkg.com/downloads/${YARN_VERSION}/yarn-v${YARN_VERSION}.tar.gz" | tar --strip-components=1 -C /usr/local/yarn -xzf -
curl -sL https://github.com/krallin/tini/releases/download/${TINI_VERSION}/tini-${GO_ARCH} -o /usr/local/bin/tini
ln -s /usr/local/bin/node /usr/local/bin/nodejs
ln -s /usr/local/yarn/bin/yarn /usr/local/bin/yarn
ln -s /usr/local/yarn/bin/yarnpkg /usr/local/bin/yarnpkg
curl -sL https://aka.ms/install-vscode-server/setup.sh | sh
# smoke tests
node --version
npm --version
yarn --version
go version
groupadd -g 1000 vscode-server
adduser --uid 1000 --gid 1000 --home ${VSCODE_SERVER_HOME_DIR} vscode-server
adduser vscode-server root
mkdir -p ${VSCODE_SERVER_DATA_DIR}
chown -R vscode-server:vscode-server ${VSCODE_SERVER_DATA_DIR}
chmod +x /usr/local/bin/tini /docker-entrypoint.sh
apt autoclean
apt-get clean -y
rm -rf /usr/share/doc /usr/share/doc-base /var/lib/apt/lists/*