1
0
Fork 0

Initial installation scripts

main
Ambrose Chua 2018-03-27 23:47:53 +08:00
parent 0850dd1cbe
commit 9846ddb18d
8 changed files with 180 additions and 0 deletions

3
.dockerignore Normal file
View File

@ -0,0 +1,3 @@
Dockerfile
README.md
.git

8
.drone.yml Normal file
View File

@ -0,0 +1,8 @@
pipeline:
docker:
image: plugins/docker
registry: registry.labs.0x.no
repo: registry.labs.0x.no/env
tags:
- latest

32
.install/golang.sh Executable file
View File

@ -0,0 +1,32 @@
#!/bin/sh
set -e
echo
echo "Installing Go $GOLANG_VERSION..."
echo
apk add --no-cache --virtual .build-deps \
bash \
gcc \
musl-dev \
openssl \
go
GOROOT_BOOTSTRAP="$(go env GOROOT)"
GOOS="$(go env GOOS)"
GOARCH="$(go env GOARCH)"
GOHOSTOS="$(go env GOHOSTOS)"
GOHOSTARCH="$(go env GOHOSTARCH)"
wget -O go.tgz "https://golang.org/dl/go$GOLANG_VERSION.src.tar.gz"
echo 'f3de49289405fda5fd1483a8fe6bd2fa5469e005fd567df64485c4fa000c7f24 *go.tgz' | sha256sum -c -
tar -C /usr/local -xzf go.tgz
rm go.tgz
cd /usr/local/go/src
./make.bash
apk del .build-deps
echo 'export GOPATH="$HOME/go"' >> /etc/profile.d/golang
echo 'export PATH="$GOPATH/bin:/usr/local/go/bin:$PATH"' >> /etc/profile.d/golang

20
.install/install.sh Executable file
View File

@ -0,0 +1,20 @@
#!/bin/sh
set -e
BASE_DIR="$(dirname $0)"
source ./.versions
for f in $BASE_DIR/*; do
BASE_NAME="$(basename $f)"
if [ "$BASE_NAME" = "install.sh" ]; then
continue
fi
echo
echo "Running $BASE_NAME..."
$f
done

80
.install/node.sh Executable file
View File

@ -0,0 +1,80 @@
#!/bin/sh
set -e
echo
echo "Installing Node.js $NODE_VERSION..."
echo
apk add --no-cache \
libstdc++
apk add --no-cache --virtual .build-deps \
binutils-gold \
curl \
g++ \
gcc \
gnupg \
libgcc \
linux-headers \
make \
python
for key in \
94AE36675C464D64BAFA68DD7434390BDBE9B9C5 \
FD3A5288F042B6850C66B31F09FE44734EB7990E \
71DCFD284A79C3B38668286BC97EC7A07EDE3FC1 \
DD8F2338BAE7501E3DD5AC78C273792F7D83545D \
C4F0DFFF4E8C1A8236409D08E73BC641CC11F4C8 \
B9AE9905FFD7803F25714661B63B535A4C206CA9 \
56730D5401028683275BD23C23EFEFE93C4CFFFE \
77984A986EBC2AA786BC0F66B01FBB92821C587A \
; do
gpg --keyserver hkp://p80.pool.sks-keyservers.net:80 --recv-keys "$key" ||
gpg --keyserver hkp://ipv4.pool.sks-keyservers.net --recv-keys "$key" ||
gpg --keyserver hkp://pgp.mit.edu:80 --recv-keys "$key"
done
curl -SLO "https://nodejs.org/dist/v$NODE_VERSION/node-v$NODE_VERSION.tar.xz"
curl -SLO --compressed "https://nodejs.org/dist/v$NODE_VERSION/SHASUMS256.txt.asc"
gpg --batch --decrypt --output SHASUMS256.txt SHASUMS256.txt.asc
grep " node-v$NODE_VERSION.tar.xz\$" SHASUMS256.txt | sha256sum -c -
tar -xf "node-v$NODE_VERSION.tar.xz"
cd "node-v$NODE_VERSION"
./configure
make -j$(getconf _NPROCESSORS_ONLN)
make install
apk del .build-deps
cd ..
rm -Rf "node-v$NODE_VERSION"
rm "node-v$NODE_VERSION.tar.xz" SHASUMS256.txt.asc SHASUMS256.txt
echo
echo "Installing Yarn $YARN_VERSION..."
echo
apk add --no-cache --virtual .build-deps-yarn \
curl \
gnupg \
tar
for key in \
6A010C5166006599AA17F08146C2130DFD2497F5 \
; do
gpg --keyserver hkp://p80.pool.sks-keyservers.net:80 --recv-keys "$key" ||
gpg --keyserver hkp://ipv4.pool.sks-keyservers.net --recv-keys "$key" ||
gpg --keyserver hkp://pgp.mit.edu:80 --recv-keys "$key"
done
curl -fSLO --compressed "https://yarnpkg.com/downloads/$YARN_VERSION/yarn-v$YARN_VERSION.tar.gz"
curl -fSLO --compressed "https://yarnpkg.com/downloads/$YARN_VERSION/yarn-v$YARN_VERSION.tar.gz.asc"<Paste>
gpg --batch --verify yarn-v$YARN_VERSION.tar.gz.asc yarn-v$YARN_VERSION.tar.gz
mkdir -p /opt
tar -xzf yarn-v$YARN_VERSION.tar.gz -C /opt/
ln -s /opt/yarn-v$YARN_VERSION/bin/yarn /usr/local/bin/yarn
ln -s /opt/yarn-v$YARN_VERSION/bin/yarnpkg /usr/local/bin/yarnpkg
rm yarn-v$YARN_VERSION.tar.gz.asc yarn-v$YARN_VERSION.tar.gz
apk del .build-deps-yarn

9
.install/zsh.sh Executable file
View File

@ -0,0 +1,9 @@
#!/bin/sh
set -e
echo
echo "Installing zsh..."
echo
apk add --no-cache zsh

7
.versions Executable file
View File

@ -0,0 +1,7 @@
#!/bin/sh
export GOLANG_VERSION=1.10
export NODE_VERSION=9.9.0
export YARN_VERSION=1.5.1

21
Dockerfile Normal file
View File

@ -0,0 +1,21 @@
FROM alpine:latest
# Install tools from source
WORKDIR /
COPY .versions .versions
COPY .install/* .install/
RUN ./.install/install.sh
# Create user
RUN adduser -s /bin/zsh -D ambrose
USER ambrose
# Install dotfiles
WORKDIR /home/ambrose
COPY . .