has/tests/containers/ubuntu.Dockerfile

148 lines
6.0 KiB
Docker

FROM ubuntu:bionic-20200311
# Updates path with node, npm, npx, and globally installed npm packages
ENV node=12.18.1
ENV PATH="${PATH}:/node-v${node}-linux-x64/bin"
# already contains
# apt=1.6.12
# apt-get=1.6.12
# awk
# bash=4.4.20
# bzip2=1.0.6
# gnu_coreutils=8.28
# grep=3.1
# gzip=1.6
# perl=26
# sed=4.4
# tar=1.29
# tput #todo
RUN apt-get update && DEBIAN_FRONTEND="noninteractive" apt-get install --no-install-recommends -y -qq \
ack=2.22* \
ant=1.10.5* \
apache2-utils=2.4* `# ab=2.3` \
apt-utils `# todo` \
aptitude=0.8.10* \
autojump=22.5.0* \
awscli=1.14.44* `# aws=1.14.44` \
build-essential zlib1g-dev libssl-dev libncurses-dev libffi-dev libsqlite3-dev libreadline-dev libbz2-dev `# required for eb` \
bzr=2.7.0+bzr6622-10 `# bzr=2.8.0` \
curl=7.58.0* \
docker.io=19.03.6* `# docker=19.03.6` \
emacs=47.0 `# emacs=25.2.2` \
file=1:5.32* \
gcc=4:7.4.0-1ubuntu2.3 `# gcc=7.5.0` \
git=1:2.17.1* \
gpg-agent `# todo:apt-key` \
gradle=4.4.1* \
groovy=2.4.16* \
httpie=0.9.8* `# http=0.9.8` \
hugo=0.40.1* \
jq=1.5* \
leiningen=2.8.1* `# lein=2.8.1` \
locales `# required for brew` \
make=4.1* \
maven=3.6.0* `# mvn=3.6.0` \
mercurial=4.5.3* `# hg=4.5.3` \
nano=2.9.3* \
openjdk-11-jdk-headless=11.0.7* `# java=11.0.7 # javac=11.0.7` \
perl6=6.c-1 `# perl6=2018.03` \
php=1:7.2+60ubuntu1 `# php=7.2.24` \
postgresql-client=10+190* `# psql=10.12` \
pv=1.6.6* \
python=2.7.15~rc1-1 `# python=2.7.17` \
python3=3.6.7-1~18.04 `# python3=3.6.9` \
r-cran-littler=0.3.3* `# R=3.4.4` \
rake=12.3.1* \
ruby=1:2.5.1 \
ruby-bundler=1.16.1* `# bundle=1.16.1` \
rubygems `# gem=2.7.6` \
scala=2.11.12* \
silversearcher-ag=2.1.0* `# ag=2.1.0` \
software-properties-common `# todo:add-apt-repository` \
subversion=1.9.7* `# svn=1.9.7` \
sudo=1.8.21* \
tree=1.7.0* \
unar=1.10.1* \
unzip=6.0-21ubuntu1 `# unzip=6.00` \
vim=2:8.0* \
wget=1.19.4* \
xz-utils=5.2.2* `# xz=5.2.2` \
yarn `# yarn=0.32` \
zip=3.0* \
zsh=5.4.2* && \
\
commit="87b16eb" `# bats=1.2.0` && \
curl -L "https://github.com/bats-core/bats-core/tarball/${commit}" | tar xz && \
"bats-core-bats-core-${commit}/install.sh" /usr/local && \
\
brew=2.2.13 && \
git clone --depth=1 --branch ${brew} https://github.com/Homebrew/brew && \
locale-gen en_US en_US.UTF-8 && \
eval $(brew/bin/brew shellenv) && \
ln -s /brew/bin/brew /usr/local/bin/brew && \
brew --version && \
\
code=1.44.2 && \
curl -L "https://az764295.vo.msecnd.net/stable/ff915844119ce9485abfe8aa9076ec76b5300ddd/code_${code}-1587059832_amd64.deb" --output code_${code}.deb && \
`# installing missing dependencies requires apt update which is the first done above` \
dpkg -i code_${code}.deb || apt-get install -f -y && \
rm -f code_${code}.deb && \
\
commit="102025c" `# eb=3.18.1` && \
curl -L "https://github.com/aws/aws-elastic-beanstalk-cli-setup/tarball/${commit}" | tar xz && \
"aws-aws-elastic-beanstalk-cli-setup-${commit}/scripts/bundled_installer" && \
ln -s /root/.ebcli-virtual-env/executables/eb /usr/local/bin/eb && \
\
gcloud=289.0.0 && \
curl -L "https://dl.google.com/dl/cloudsdk/channels/rapid/downloads/google-cloud-sdk-${gcloud}-linux-x86_64.tar.gz" | tar xz && \
ln -s /google-cloud-sdk/bin/gcloud /usr/local/bin/gcloud && \
\
gor=1.0.0 && \
curl -L "https://github.com/buger/goreplay/releases/download/v${gor}/gor_${gor}_x64.tar.gz" | tar xz --directory /usr/local/bin && \
\
hub=2.14.2 && \
curl -fsSL "https://github.com/github/hub/raw/master/script/get" | bash -s ${hub} && \
\
kotlin=1.3.72 && \
curl -L "https://github.com/JetBrains/kotlin/releases/download/v${kotlin}/kotlin-compiler-${kotlin}.zip" -o /kotlin.zip && \
unzip kotlin.zip && rm kotlin.zip && \
ln -s /kotlinc/bin/kotlin /usr/local/bin/kotlin && \
ln -s /kotlinc/bin/kotlinc /usr/local/bin/kotlinc && \
\
netlifyctl=0.4.0 && \
curl -L "https://github.com/netlify/netlifyctl/releases/download/v${netlifyctl}/netlifyctl-linux-amd64-${netlifyctl}.tar.gz" | tar xz --directory /usr/local/bin && \
\
rg=12.0.1 && \
curl -L "https://github.com/BurntSushi/ripgrep/releases/download/${rg}/ripgrep-${rg}-x86_64-unknown-linux-musl.tar.gz" | tar xz && \
ln -s "/ripgrep-${rg}-x86_64-unknown-linux-musl/rg" /usr/local/bin/rg && \
\
sbt=1.3.4 && \
curl -L "https://piccolo.link/sbt-${sbt}.tgz" | tar xz && \
ln -s /sbt/bin/sbt /usr/local/bin/sbt && \
sbt --version && sbt --version && \
\
add-apt-repository -y ppa:longsleep/golang-backports `#go` && \
add-apt-repository -y ppa:ondrej/php `#php5` && \
add-apt-repository -y ppa:projectatomic/ppa `#podman` && \
wget -qO - https://download.sublimetext.com/sublimehq-pub.gpg | sudo apt-key add - `#subl` && \
add-apt-repository -y "deb https://download.sublimetext.com/ apt/stable/" `#subl` && \
apt-get update && DEBIAN_FRONTEND="noninteractive" apt-get install --no-install-recommends -y -qq \
golang-go=2:1.14* `# go=1.14.2` \
php5.6=5.6.40* `# php5=5.6.40` \
podman=1.6.2* \
sublime-text=3211 `# subl=3211` && \
ln -s /usr/bin/php5.6 /usr/bin/php5 && \
\
curl -L "https://nodejs.org/dist/v${node}/node-v${node}-linux-x64.tar.gz" | tar xz && \
\
npm install --global --no-optional `# npm=6.14.5` \
brunch@"=3.0.0" \
grunt-cli@"=1.3.2" \
gulp-cli@"=2.2.0" \
heroku@"=7.39.3" \
netlify-cli@"=2.33.0" \
serverless@"=1.67.3" `# sls=1.67.3` && \
\
apt-get -y autoremove && apt-get -y clean && rm -rf /var/lib/apt/lists/*