Several tools added to the Linux image for parity (#133)
* Misc. new tools * Additions and updates * Fix * Add Firefox, PhantomJS, PyPy2, PyPy3, Terraform, Xvfb * Add eula acceptance variable * Add slash to fix Firefox install * Fix xvfb install * Fix phantomjs install
This commit is contained in:
Родитель
6bc3547a87
Коммит
caa2c6ee88
37
README.md
37
README.md
|
@ -136,26 +136,45 @@ These derived images include a set of standard capabilities that enable many of
|
|||
- Azure CLI 2.0.38
|
||||
- CLang 6.0
|
||||
- CMake 3.10.2
|
||||
- Erlang/OTP 21
|
||||
- Firefox 61.0.1
|
||||
- GCC 5.4.0
|
||||
- Go 1.9.4 and 1.10
|
||||
- Google Chrome 68.0
|
||||
- Haskell 2014.2.0.0
|
||||
- Helm 2.9.1
|
||||
- HipHop VM (HHVM) 3.27.0
|
||||
- Java OpenJDK 7 (1.7.0_95), 8 (1.8.0_162), 9 (1.9.0_4), 10 (1.10.0_2), and 11 (1.11.24)
|
||||
- Heroku CLI 7.7.10
|
||||
- HipHop VM (HHVM) 3.27.1
|
||||
- ImageMagick 6.8.9-9
|
||||
- Java OpenJDK 7 (1.7.0_95), 8 (1.8.0_181), 9 (1.9.0_4), 10 (1.10.0_2), and 11 (1.11.24)
|
||||
- Java tools (Ant 1.9.6, Gradle 4.6, Maven 3.3.9)
|
||||
- kubectl 1.10.4
|
||||
- jq 1.5-1
|
||||
- kubectl 1.11.1
|
||||
- Mercurial 3.7.3
|
||||
- Miniconda 4.5.4
|
||||
- MS SQL Server client tools 17.2.0000.1
|
||||
- MySQL Client 14.14
|
||||
- .NET Core SDK 2.1.300 (runtime 2.1.0)
|
||||
- Node.js 8.11.3 LTS
|
||||
- Mono 5.14.0.177
|
||||
- Microsoft SQL Server Client Tools 17.2.0.1
|
||||
- MySQL Client 5.7.23
|
||||
- MySQL Server 5.7.23
|
||||
- .NET Core SDK 2.1.400 (runtime 2.1.2)
|
||||
- Node.js 8.11.3 LTS (with bower, grunt, gulp, n, parcel, and webpack)
|
||||
- PhantomJS 2.1.1
|
||||
- PHP 5.6, 7.0, 7.1, and 7.2 (with composer, phpunit, and xdebug)
|
||||
- Pollinate 4.33
|
||||
- Powershell Core v6.1.0-preview.2
|
||||
- PyPy2 (6.0.0) and PyPy3 (6.0.0)
|
||||
- Python 2.7.15, 3.4.8, 3.5.5, 3.6.5 and 3.7.0 (available through the [Use Python Version](https://go.microsoft.com/fwlink/?linkid=871498) task)
|
||||
- Ruby 2.3.7, 2.4.4 and 2.5.1 (available through the [Use Ruby Version](https://go.microsoft.com/fwlink/?linkid=2005989) task)
|
||||
- rebar 3.6.1
|
||||
- rsync 3.1.1
|
||||
- Ruby 2.3.7, 2.4.4 and 2.5.1 (available through the [Use Ruby Version](https://go.microsoft.com/fwlink/?linkid=2005989) task)
|
||||
- Scala sbt-extras
|
||||
- ShellCheck 0.3.7-5
|
||||
- Sphinx 2.2.9
|
||||
- Subversion 1.9.3
|
||||
- Terraform 0.11.8
|
||||
- xsltproc 1.1.28 and xalan 1.11
|
||||
- yarn 1.7.0
|
||||
- Xvfb 2:1.18.4
|
||||
- yarn 1.9.2
|
||||
|
||||
### `docker` images
|
||||
These derived images include a version of the Docker CLI and a compatible version of the Docker Compose CLI. This image cannot run most of the built-in VSTS build or release tasks but it can run tasks that invoke arbitrary Docker workloads.
|
||||
|
|
|
@ -1,5 +1,10 @@
|
|||
FROM microsoft/vsts-agent:ubuntu-14.04
|
||||
|
||||
# To make it easier for build and release pipelines to run apt-get,
|
||||
# configure apt to not require confirmation (assume the -y argument by default)
|
||||
ENV DEBIAN_FRONTEND=noninteractive
|
||||
RUN echo "APT::Get::Assume-Yes \"true\";" > /etc/apt/apt.conf.d/90assumeyes
|
||||
|
||||
# Install basic command-line utilities
|
||||
RUN apt-get update \
|
||||
&& apt-get install -y --no-install-recommends \
|
||||
|
@ -11,6 +16,8 @@ RUN apt-get update \
|
|||
iputils-ping \
|
||||
locales \
|
||||
openssh-client \
|
||||
rsync\
|
||||
shellcheck \
|
||||
sudo \
|
||||
telnet \
|
||||
time \
|
||||
|
@ -26,6 +33,9 @@ ENV LC_ALL $LANG
|
|||
RUN locale-gen $LANG \
|
||||
&& update-locale
|
||||
|
||||
# Accept EULA - needed for certain Microsoft packages like SQL Server Client Tools
|
||||
ENV ACCEPT_EULA=Y
|
||||
|
||||
# Install essential build tools
|
||||
RUN apt-get update \
|
||||
&& apt-get install -y --no-install-recommends \
|
||||
|
@ -57,6 +67,18 @@ RUN curl -sL https://cmake.org/files/v3.10/cmake-3.10.2-Linux-x86_64.sh -o cmake
|
|||
&& ./cmake.sh --prefix=/usr/local --exclude-subdir \
|
||||
&& rm cmake.sh
|
||||
|
||||
# Install Erlang
|
||||
RUN echo "deb http://binaries.erlang-solutions.com/debian xenial contrib" > /etc/apt/sources.list.d/eslerlang.list \
|
||||
&& wget -O - http://binaries.erlang-solutions.com/debian/erlang_solutions.asc | sudo apt-key add - \
|
||||
&& apt-get update \
|
||||
&& apt-get install -y --no-install-recommends esl-erlang \
|
||||
&& rm -rf /var/lib/apt/lists/*
|
||||
|
||||
# Install Firefox
|
||||
RUN apt-get update \
|
||||
&& apt-get install -y firefox \
|
||||
&& rm -rf /var/lib/apt/lists/*
|
||||
|
||||
# Install Go
|
||||
RUN curl -sL https://dl.google.com/go/go1.9.4.linux-amd64.tar.gz -o go1.9.4.linux-amd64.tar.gz \
|
||||
&& mkdir -p /usr/local/go1.9.4 \
|
||||
|
@ -79,9 +101,17 @@ RUN wget -q -O - https://dl-ssl.google.com/linux/linux_signing_key.pub | sudo ap
|
|||
&& rm -rf /var/lib/apt/lists/*
|
||||
ENV CHROME_BIN /usr/bin/google-chrome
|
||||
|
||||
# Install Haskell
|
||||
RUN apt-get update \
|
||||
&& apt-get install -y haskell-platform \
|
||||
&& rm -rf /var/lib/apt/lists/*
|
||||
|
||||
# Install Helm
|
||||
RUN curl https://raw.githubusercontent.com/kubernetes/helm/master/scripts/get | bash
|
||||
|
||||
# Install Heroku CLI
|
||||
RUN curl https://cli-assets.heroku.com/install-ubuntu.sh | sh
|
||||
|
||||
# Install HHVM
|
||||
RUN apt-get update \
|
||||
&& apt-key adv --recv-keys --keyserver hkp://keyserver.ubuntu.com:80 0xB4112585D386EB94 \
|
||||
|
@ -90,6 +120,15 @@ RUN apt-get update \
|
|||
&& apt-get install -y hhvm \
|
||||
&& rm -rf /var/lib/apt/lists/*
|
||||
|
||||
# Install ImageMagick
|
||||
RUN apt-get update \
|
||||
&& apt-get install -y --no-install-recommends --fix-missing \
|
||||
imagemagick \
|
||||
libmagickcore-dev \
|
||||
libmagickwand-dev \
|
||||
libmagic-dev \
|
||||
&& rm -rf /var/lib/apt/lists/*
|
||||
|
||||
# Install Java OpenJDKs
|
||||
RUN apt-add-repository -y ppa:openjdk-r/ppa
|
||||
RUN apt-get update \
|
||||
|
@ -139,6 +178,11 @@ RUN curl -LO https://storage.googleapis.com/kubernetes-release/release/$(curl -s
|
|||
&& chmod +x ./kubectl \
|
||||
&& mv ./kubectl /usr/local/bin/kubectl
|
||||
|
||||
# Install Mercurial
|
||||
RUN apt-get update \
|
||||
&& apt-get install -y mercurial \
|
||||
&& rm -rf /var/lib/apt/lists/*
|
||||
|
||||
# Install Miniconda
|
||||
RUN curl -sL https://repo.continuum.io/miniconda/Miniconda3-latest-Linux-x86_64.sh -o miniconda.sh \
|
||||
&& chmod +x miniconda.sh \
|
||||
|
@ -155,10 +199,18 @@ RUN apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys 3FA7E03280
|
|||
|
||||
# Install MySQL Client
|
||||
RUN apt-get update \
|
||||
&& apt-get install mysql-client -y \
|
||||
&& apt-get install -y mysql-client \
|
||||
&& rm -rf /var/lib/apt/lists/*
|
||||
ENV mysql=/usr/bin/mysql
|
||||
|
||||
# Install MySQL Server
|
||||
ENV MYSQL_ROOT_PASSWORD=
|
||||
RUN bash -c 'debconf-set-selections <<< "mysql-server mysql-server/root_password password $MYSQL_ROOT_PASSWORD"'
|
||||
RUN bash -c 'debconf-set-selections <<< "mysql-server mysql-server/root_password_again password $MYSQL_ROOT_PASSWORD"'
|
||||
RUN apt-get update \
|
||||
&& apt-get install -y mysql-server \
|
||||
&& rm -rf /var/lib/apt/lists/*
|
||||
|
||||
# Install .NET Core SDK and initialize package cache
|
||||
RUN curl https://packages.microsoft.com/config/ubuntu/14.04/packages-microsoft-prod.deb > packages-microsoft-prod.deb \
|
||||
&& dpkg -i packages-microsoft-prod.deb \
|
||||
|
@ -176,14 +228,30 @@ RUN apt-get update \
|
|||
&& apt-get install -y --no-install-recommends azcopy \
|
||||
&& rm -rf /var/lib/apt/lists/*
|
||||
|
||||
# Install LTS Node.js and related build tools
|
||||
# Install LTS Node.js and related tools
|
||||
RUN curl -sL https://git.io/n-install | bash -s -- -ny - \
|
||||
&& ~/n/bin/n lts \
|
||||
&& npm install -g bower grunt gulp n \
|
||||
&& npm install -g bower \
|
||||
&& npm install -g grunt \
|
||||
&& npm install -g gulp \
|
||||
&& npm install -g n \
|
||||
&& npm install -g webpack webpack-cli --save-dev \
|
||||
&& npm install -g parcel-bundler \
|
||||
&& npm i -g npm \
|
||||
&& rm -rf ~/n
|
||||
ENV bower=/usr/local/bin/bower \
|
||||
grunt=/usr/local/bin/grunt
|
||||
|
||||
# Install PhantomJS
|
||||
RUN apt-get update \
|
||||
&& apt-get install -y chrpath libssl-dev libxft-dev libfreetype6 libfreetype6-dev libfontconfig1 libfontconfig1-dev \
|
||||
&& rm -rf /var/lib/apt/lists/* \
|
||||
&& export PHANTOM_JS=phantomjs-2.1.1-linux-x86_64 \
|
||||
&& wget https://bitbucket.org/ariya/phantomjs/downloads/$PHANTOM_JS.tar.bz2 \
|
||||
&& tar xvjf $PHANTOM_JS.tar.bz2 \
|
||||
&& mv $PHANTOM_JS /usr/local/share \
|
||||
&& ln -sf /usr/local/share/$PHANTOM_JS/bin/phantomjs /usr/local/bin
|
||||
|
||||
# Install PHP versions and libraries
|
||||
RUN apt-add-repository ppa:ondrej/php -y \
|
||||
&& apt-get update \
|
||||
|
@ -368,6 +436,11 @@ RUN wget -q -O phpunit https://phar.phpunit.de/phpunit-7.phar \
|
|||
&& chmod +x phpunit \
|
||||
&& mv phpunit /usr/local/bin/phpunit
|
||||
|
||||
# Install Pollinate
|
||||
RUN apt-get update \
|
||||
&& apt-get install -y --no-install-recommends pollinate \
|
||||
&& rm -rf /var/lib/apt/lists/*
|
||||
|
||||
# Install Powershell Core
|
||||
RUN curl https://packages.microsoft.com/keys/microsoft.asc | apt-key add - \
|
||||
&& curl https://packages.microsoft.com/config/ubuntu/14.04/prod.list | tee /etc/apt/sources.list.d/microsoft.list \
|
||||
|
@ -376,6 +449,20 @@ RUN curl https://packages.microsoft.com/keys/microsoft.asc | apt-key add - \
|
|||
powershell \
|
||||
&& rm -rf /var/lib/apt/lists/*
|
||||
|
||||
# Instally PyPy2
|
||||
RUN wget -q -P /tmp https://bitbucket.org/pypy/pypy/downloads/pypy2-v6.0.0-linux64.tar.bz2 \
|
||||
&& tar -x -C /opt -f /tmp/pypy2-v6.0.0-linux64.tar.bz2 \
|
||||
&& rm /tmp/pypy2-v6.0.0-linux64.tar.bz2 \
|
||||
&& mv /opt/pypy2-v6.0.0-linux64 /opt/pypy2 \
|
||||
&& ln -s /opt/pypy2/bin/pypy /usr/local/bin/pypy
|
||||
|
||||
# Install PyPy3
|
||||
RUN wget -q -P /tmp https://bitbucket.org/pypy/pypy/downloads/pypy3-v6.0.0-linux64.tar.bz2 \
|
||||
&& tar -x -C /opt -f /tmp/pypy3-v6.0.0-linux64.tar.bz2 \
|
||||
&& rm /tmp/pypy3-v6.0.0-linux64.tar.bz2 \
|
||||
&& mv /opt/pypy3-v6.0.0-linux64 /opt/pypy3 \
|
||||
&& ln -s /opt/pypy3/bin/pypy3 /usr/local/bin/pypy3
|
||||
|
||||
# Install Python
|
||||
RUN apt-get update \
|
||||
&& apt-get install -y --no-install-recommends \
|
||||
|
@ -385,6 +472,11 @@ RUN apt-get update \
|
|||
python3-pip \
|
||||
&& rm -rf /var/lib/apt/lists/*
|
||||
|
||||
# Install rebar3 (for Erlang)
|
||||
RUN wget -q -O rebar3 https://s3.amazonaws.com/rebar3/rebar3 \
|
||||
&& chmod +x rebar3 \
|
||||
&& mv rebar3 /usr/local/bin/rebar3
|
||||
|
||||
# Install Ruby requirements
|
||||
RUN apt-get update \
|
||||
&& apt-get install -y libz-dev openssl libssl-dev
|
||||
|
@ -393,6 +485,11 @@ RUN apt-get update \
|
|||
RUN curl -s https://raw.githubusercontent.com/paulp/sbt-extras/master/sbt > /usr/local/bin/sbt \
|
||||
&& chmod 0755 /usr/local/bin/sbt
|
||||
|
||||
# Install Sphinx
|
||||
RUN apt-get update \
|
||||
&& apt-get install -y sphinxsearch \
|
||||
&& rm -rf /var/lib/apt/lists/*
|
||||
|
||||
# Install Subversion
|
||||
RUN apt-get update \
|
||||
&& apt-get install -y --no-install-recommends \
|
||||
|
@ -400,6 +497,12 @@ RUN apt-get update \
|
|||
&& rm -rf /var/lib/apt/lists/*
|
||||
ENV svn=/usr/bin/svn
|
||||
|
||||
# Install Terraform
|
||||
RUN TERRAFORM_VERSION=$(curl -s https://checkpoint-api.hashicorp.com/v1/check/terraform | jq -r .current_version) \
|
||||
&& curl -LO https://releases.hashicorp.com/terraform/${TERRAFORM_VERSION}/terraform_${TERRAFORM_VERSION}_linux_amd64.zip \
|
||||
&& unzip terraform_${TERRAFORM_VERSION}_linux_amd64.zip -d /usr/local/bin \
|
||||
&& rm -f terraform_${TERRAFORM_VERSION}_linux_amd64.zip
|
||||
|
||||
# XSLT transformation
|
||||
RUN apt-get update \
|
||||
&& apt-get install -y --no-install-recommends \
|
||||
|
@ -414,6 +517,11 @@ RUN curl -sS https://dl.yarnpkg.com/debian/pubkey.gpg | sudo apt-key add - \
|
|||
&& apt-get install -y --no-install-recommends yarn \
|
||||
&& rm -rf /var/lib/apt/lists/*
|
||||
|
||||
# Install Xvfb
|
||||
RUN apt-get update \
|
||||
&& apt-get install -y xvfb \
|
||||
&& rm -rf /var/lib/apt/lists/*
|
||||
|
||||
# Download hosted tool cache
|
||||
ENV AGENT_TOOLSDIRECTORY=/opt/hostedtoolcache
|
||||
RUN azcopy --recursive --source https://vstsagenttools.blob.core.windows.net/tools/hostedtoolcache/linux --destination $AGENT_TOOLSDIRECTORY
|
||||
|
|
|
@ -1,5 +1,10 @@
|
|||
FROM microsoft/vsts-agent:ubuntu-16.04
|
||||
|
||||
# To make it easier for build and release pipelines to run apt-get,
|
||||
# configure apt to not require confirmation (assume the -y argument by default)
|
||||
ENV DEBIAN_FRONTEND=noninteractive
|
||||
RUN echo "APT::Get::Assume-Yes \"true\";" > /etc/apt/apt.conf.d/90assumeyes
|
||||
|
||||
# Install basic command-line utilities
|
||||
RUN apt-get update \
|
||||
&& apt-get install -y --no-install-recommends \
|
||||
|
@ -11,6 +16,8 @@ RUN apt-get update \
|
|||
iputils-ping \
|
||||
locales \
|
||||
openssh-client \
|
||||
rsync\
|
||||
shellcheck \
|
||||
sudo \
|
||||
telnet \
|
||||
time \
|
||||
|
@ -26,7 +33,7 @@ ENV LC_ALL $LANG
|
|||
RUN locale-gen $LANG \
|
||||
&& update-locale
|
||||
|
||||
# Accept EULA - needed for certain Microsoft packages
|
||||
# Accept EULA - needed for certain Microsoft packages like SQL Server Client Tools
|
||||
ENV ACCEPT_EULA=Y
|
||||
|
||||
# Install essential build tools
|
||||
|
@ -60,6 +67,18 @@ RUN curl -sL https://cmake.org/files/v3.10/cmake-3.10.2-Linux-x86_64.sh -o cmake
|
|||
&& ./cmake.sh --prefix=/usr/local --exclude-subdir \
|
||||
&& rm cmake.sh
|
||||
|
||||
# Install Erlang
|
||||
RUN echo "deb http://binaries.erlang-solutions.com/debian xenial contrib" > /etc/apt/sources.list.d/eslerlang.list \
|
||||
&& wget -O - http://binaries.erlang-solutions.com/debian/erlang_solutions.asc | sudo apt-key add - \
|
||||
&& apt-get update \
|
||||
&& apt-get install -y --no-install-recommends esl-erlang \
|
||||
&& rm -rf /var/lib/apt/lists/*
|
||||
|
||||
# Install Firefox
|
||||
RUN apt-get update \
|
||||
&& apt-get install -y firefox \
|
||||
&& rm -rf /var/lib/apt/lists/*
|
||||
|
||||
# Install Go
|
||||
RUN curl -sL https://dl.google.com/go/go1.9.4.linux-amd64.tar.gz -o go1.9.4.linux-amd64.tar.gz \
|
||||
&& mkdir -p /usr/local/go1.9.4 \
|
||||
|
@ -82,9 +101,17 @@ RUN wget -q -O - https://dl-ssl.google.com/linux/linux_signing_key.pub | sudo ap
|
|||
&& rm -rf /var/lib/apt/lists/*
|
||||
ENV CHROME_BIN /usr/bin/google-chrome
|
||||
|
||||
# Install Haskell
|
||||
RUN apt-get update \
|
||||
&& apt-get install -y haskell-platform \
|
||||
&& rm -rf /var/lib/apt/lists/*
|
||||
|
||||
# Install Helm
|
||||
RUN curl https://raw.githubusercontent.com/kubernetes/helm/master/scripts/get | bash
|
||||
|
||||
# Install Heroku CLI
|
||||
RUN curl https://cli-assets.heroku.com/install-ubuntu.sh | sh
|
||||
|
||||
# Install HHVM
|
||||
RUN apt-get update \
|
||||
&& apt-key adv --recv-keys --keyserver hkp://keyserver.ubuntu.com:80 0xB4112585D386EB94 \
|
||||
|
@ -93,6 +120,15 @@ RUN apt-get update \
|
|||
&& apt-get install -y hhvm \
|
||||
&& rm -rf /var/lib/apt/lists/*
|
||||
|
||||
# Install ImageMagick
|
||||
RUN apt-get update \
|
||||
&& apt-get install -y --no-install-recommends --fix-missing \
|
||||
imagemagick \
|
||||
libmagickcore-dev \
|
||||
libmagickwand-dev \
|
||||
libmagic-dev \
|
||||
&& rm -rf /var/lib/apt/lists/*
|
||||
|
||||
# Install Java OpenJDKs
|
||||
RUN apt-add-repository -y ppa:openjdk-r/ppa
|
||||
RUN apt-get update \
|
||||
|
@ -142,6 +178,11 @@ RUN curl -LO https://storage.googleapis.com/kubernetes-release/release/$(curl -s
|
|||
&& chmod +x ./kubectl \
|
||||
&& mv ./kubectl /usr/local/bin/kubectl
|
||||
|
||||
# Install Mercurial
|
||||
RUN apt-get update \
|
||||
&& apt-get install -y mercurial \
|
||||
&& rm -rf /var/lib/apt/lists/*
|
||||
|
||||
# Install Miniconda
|
||||
RUN curl -sL https://repo.continuum.io/miniconda/Miniconda3-latest-Linux-x86_64.sh -o miniconda.sh \
|
||||
&& chmod +x miniconda.sh \
|
||||
|
@ -160,15 +201,24 @@ RUN apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys 3FA7E03280
|
|||
RUN curl https://packages.microsoft.com/keys/microsoft.asc | apt-key add - \
|
||||
&& curl https://packages.microsoft.com/config/ubuntu/16.04/prod.list | tee /etc/apt/sources.list.d/msprod.list \
|
||||
&& apt-get update \
|
||||
&& apt-get install -y mssql-tools unixodbc-dev
|
||||
&& apt-get install -y mssql-tools unixodbc-dev \
|
||||
&& rm -rf /var/lib/apt/lists/*
|
||||
ENV PATH=$PATH:/opt/mssql-tools/bin
|
||||
|
||||
# Install MySQL Client
|
||||
RUN apt-get update \
|
||||
&& apt-get install mysql-client -y \
|
||||
&& apt-get install -y mysql-client \
|
||||
&& rm -rf /var/lib/apt/lists/*
|
||||
ENV mysql=/usr/bin/mysql
|
||||
|
||||
# Install MySQL Server
|
||||
ENV MYSQL_ROOT_PASSWORD=
|
||||
RUN bash -c 'debconf-set-selections <<< "mysql-server mysql-server/root_password password $MYSQL_ROOT_PASSWORD"'
|
||||
RUN bash -c 'debconf-set-selections <<< "mysql-server mysql-server/root_password_again password $MYSQL_ROOT_PASSWORD"'
|
||||
RUN apt-get update \
|
||||
&& apt-get install -y mysql-server \
|
||||
&& rm -rf /var/lib/apt/lists/*
|
||||
|
||||
# Install .NET Core SDK and initialize package cache
|
||||
RUN curl https://packages.microsoft.com/config/ubuntu/16.04/packages-microsoft-prod.deb > packages-microsoft-prod.deb \
|
||||
&& dpkg -i packages-microsoft-prod.deb \
|
||||
|
@ -186,14 +236,30 @@ RUN apt-get update \
|
|||
&& apt-get install -y --no-install-recommends azcopy \
|
||||
&& rm -rf /var/lib/apt/lists/*
|
||||
|
||||
# Install LTS Node.js and related build tools
|
||||
# Install LTS Node.js and related tools
|
||||
RUN curl -sL https://git.io/n-install | bash -s -- -ny - \
|
||||
&& ~/n/bin/n lts \
|
||||
&& npm install -g bower grunt gulp n \
|
||||
&& npm install -g bower \
|
||||
&& npm install -g grunt \
|
||||
&& npm install -g gulp \
|
||||
&& npm install -g n \
|
||||
&& npm install -g webpack webpack-cli --save-dev \
|
||||
&& npm install -g parcel-bundler \
|
||||
&& npm i -g npm \
|
||||
&& rm -rf ~/n
|
||||
ENV bower=/usr/local/bin/bower \
|
||||
grunt=/usr/local/bin/grunt
|
||||
|
||||
# Install PhantomJS
|
||||
RUN apt-get update \
|
||||
&& apt-get install -y chrpath libssl-dev libxft-dev libfreetype6 libfreetype6-dev libfontconfig1 libfontconfig1-dev \
|
||||
&& rm -rf /var/lib/apt/lists/* \
|
||||
&& export PHANTOM_JS=phantomjs-2.1.1-linux-x86_64 \
|
||||
&& wget https://bitbucket.org/ariya/phantomjs/downloads/$PHANTOM_JS.tar.bz2 \
|
||||
&& tar xvjf $PHANTOM_JS.tar.bz2 \
|
||||
&& mv $PHANTOM_JS /usr/local/share \
|
||||
&& ln -sf /usr/local/share/$PHANTOM_JS/bin/phantomjs /usr/local/bin
|
||||
|
||||
# Install PHP versions and libraries
|
||||
RUN apt-add-repository ppa:ondrej/php -y \
|
||||
&& apt-get update \
|
||||
|
@ -378,6 +444,11 @@ RUN wget -q -O phpunit https://phar.phpunit.de/phpunit-7.phar \
|
|||
&& chmod +x phpunit \
|
||||
&& mv phpunit /usr/local/bin/phpunit
|
||||
|
||||
# Install Pollinate
|
||||
RUN apt-get update \
|
||||
&& apt-get install -y --no-install-recommends pollinate \
|
||||
&& rm -rf /var/lib/apt/lists/*
|
||||
|
||||
# Install Powershell Core
|
||||
RUN curl https://packages.microsoft.com/keys/microsoft.asc | apt-key add - \
|
||||
&& curl https://packages.microsoft.com/config/ubuntu/16.04/prod.list | tee /etc/apt/sources.list.d/microsoft.list \
|
||||
|
@ -386,6 +457,20 @@ RUN curl https://packages.microsoft.com/keys/microsoft.asc | apt-key add - \
|
|||
powershell \
|
||||
&& rm -rf /var/lib/apt/lists/*
|
||||
|
||||
# Instally PyPy2
|
||||
RUN wget -q -P /tmp https://bitbucket.org/pypy/pypy/downloads/pypy2-v6.0.0-linux64.tar.bz2 \
|
||||
&& tar -x -C /opt -f /tmp/pypy2-v6.0.0-linux64.tar.bz2 \
|
||||
&& rm /tmp/pypy2-v6.0.0-linux64.tar.bz2 \
|
||||
&& mv /opt/pypy2-v6.0.0-linux64 /opt/pypy2 \
|
||||
&& ln -s /opt/pypy2/bin/pypy /usr/local/bin/pypy
|
||||
|
||||
# Install PyPy3
|
||||
RUN wget -q -P /tmp https://bitbucket.org/pypy/pypy/downloads/pypy3-v6.0.0-linux64.tar.bz2 \
|
||||
&& tar -x -C /opt -f /tmp/pypy3-v6.0.0-linux64.tar.bz2 \
|
||||
&& rm /tmp/pypy3-v6.0.0-linux64.tar.bz2 \
|
||||
&& mv /opt/pypy3-v6.0.0-linux64 /opt/pypy3 \
|
||||
&& ln -s /opt/pypy3/bin/pypy3 /usr/local/bin/pypy3
|
||||
|
||||
# Install Python
|
||||
RUN apt-get update \
|
||||
&& apt-get install -y --no-install-recommends \
|
||||
|
@ -395,6 +480,11 @@ RUN apt-get update \
|
|||
python3-pip \
|
||||
&& rm -rf /var/lib/apt/lists/*
|
||||
|
||||
# Install rebar3 (for Erlang)
|
||||
RUN wget -q -O rebar3 https://s3.amazonaws.com/rebar3/rebar3 \
|
||||
&& chmod +x rebar3 \
|
||||
&& mv rebar3 /usr/local/bin/rebar3
|
||||
|
||||
# Install Ruby requirements
|
||||
RUN apt-get update \
|
||||
&& apt-get install -y libz-dev openssl libssl-dev
|
||||
|
@ -403,6 +493,11 @@ RUN apt-get update \
|
|||
RUN curl -s https://raw.githubusercontent.com/paulp/sbt-extras/master/sbt > /usr/local/bin/sbt \
|
||||
&& chmod 0755 /usr/local/bin/sbt
|
||||
|
||||
# Install Sphinx
|
||||
RUN apt-get update \
|
||||
&& apt-get install -y sphinxsearch \
|
||||
&& rm -rf /var/lib/apt/lists/*
|
||||
|
||||
# Install Subversion
|
||||
RUN apt-get update \
|
||||
&& apt-get install -y --no-install-recommends \
|
||||
|
@ -410,6 +505,12 @@ RUN apt-get update \
|
|||
&& rm -rf /var/lib/apt/lists/*
|
||||
ENV svn=/usr/bin/svn
|
||||
|
||||
# Install Terraform
|
||||
RUN TERRAFORM_VERSION=$(curl -s https://checkpoint-api.hashicorp.com/v1/check/terraform | jq -r .current_version) \
|
||||
&& curl -LO https://releases.hashicorp.com/terraform/${TERRAFORM_VERSION}/terraform_${TERRAFORM_VERSION}_linux_amd64.zip \
|
||||
&& unzip terraform_${TERRAFORM_VERSION}_linux_amd64.zip -d /usr/local/bin \
|
||||
&& rm -f terraform_${TERRAFORM_VERSION}_linux_amd64.zip
|
||||
|
||||
# XSLT transformation
|
||||
RUN apt-get update \
|
||||
&& apt-get install -y --no-install-recommends \
|
||||
|
@ -424,6 +525,11 @@ RUN curl -sS https://dl.yarnpkg.com/debian/pubkey.gpg | sudo apt-key add - \
|
|||
&& apt-get install -y --no-install-recommends yarn \
|
||||
&& rm -rf /var/lib/apt/lists/*
|
||||
|
||||
# Install Xvfb
|
||||
RUN apt-get update \
|
||||
&& apt-get install -y xvfb \
|
||||
&& rm -rf /var/lib/apt/lists/*
|
||||
|
||||
# Download hosted tool cache
|
||||
ENV AGENT_TOOLSDIRECTORY=/opt/hostedtoolcache
|
||||
RUN azcopy --recursive --source https://vstsagenttools.blob.core.windows.net/tools/hostedtoolcache/linux --destination $AGENT_TOOLSDIRECTORY
|
||||
|
|
|
@ -1,5 +1,10 @@
|
|||
FROM microsoft/vsts-agent:$(VSTS_AGENT_TAG)
|
||||
|
||||
# To make it easier for build and release pipelines to run apt-get,
|
||||
# configure apt to not require confirmation (assume the -y argument by default)
|
||||
ENV DEBIAN_FRONTEND=noninteractive
|
||||
RUN echo "APT::Get::Assume-Yes \"true\";" > /etc/apt/apt.conf.d/90assumeyes
|
||||
|
||||
# Install basic command-line utilities
|
||||
RUN apt-get update \
|
||||
&& apt-get install -y --no-install-recommends \
|
||||
|
@ -11,6 +16,8 @@ RUN apt-get update \
|
|||
iputils-ping \
|
||||
locales \
|
||||
openssh-client \
|
||||
rsync\
|
||||
shellcheck \
|
||||
sudo \
|
||||
telnet \
|
||||
time \
|
||||
|
@ -26,6 +33,9 @@ ENV LC_ALL $LANG
|
|||
RUN locale-gen $LANG \
|
||||
&& update-locale
|
||||
|
||||
# Accept EULA - needed for certain Microsoft packages like SQL Server Client Tools
|
||||
ENV ACCEPT_EULA=Y
|
||||
|
||||
# Install essential build tools
|
||||
RUN apt-get update \
|
||||
&& apt-get install -y --no-install-recommends \
|
||||
|
@ -57,6 +67,18 @@ RUN curl -sL https://cmake.org/files/v3.10/cmake-3.10.2-Linux-x86_64.sh -o cmake
|
|||
&& ./cmake.sh --prefix=/usr/local --exclude-subdir \
|
||||
&& rm cmake.sh
|
||||
|
||||
# Install Erlang
|
||||
RUN echo "deb http://binaries.erlang-solutions.com/debian xenial contrib" > /etc/apt/sources.list.d/eslerlang.list \
|
||||
&& wget -O - http://binaries.erlang-solutions.com/debian/erlang_solutions.asc | sudo apt-key add - \
|
||||
&& apt-get update \
|
||||
&& apt-get install -y --no-install-recommends esl-erlang \
|
||||
&& rm -rf /var/lib/apt/lists/*
|
||||
|
||||
# Install Firefox
|
||||
RUN apt-get update \
|
||||
&& apt-get install -y firefox \
|
||||
&& rm -rf /var/lib/apt/lists/*
|
||||
|
||||
# Install Go
|
||||
RUN curl -sL https://dl.google.com/go/go1.9.4.linux-amd64.tar.gz -o go1.9.4.linux-amd64.tar.gz \
|
||||
&& mkdir -p /usr/local/go1.9.4 \
|
||||
|
@ -79,9 +101,17 @@ RUN wget -q -O - https://dl-ssl.google.com/linux/linux_signing_key.pub | sudo ap
|
|||
&& rm -rf /var/lib/apt/lists/*
|
||||
ENV CHROME_BIN /usr/bin/google-chrome
|
||||
|
||||
# Install Haskell
|
||||
RUN apt-get update \
|
||||
&& apt-get install -y haskell-platform \
|
||||
&& rm -rf /var/lib/apt/lists/*
|
||||
|
||||
# Install Helm
|
||||
RUN curl https://raw.githubusercontent.com/kubernetes/helm/master/scripts/get | bash
|
||||
|
||||
# Install Heroku CLI
|
||||
RUN curl https://cli-assets.heroku.com/install-ubuntu.sh | sh
|
||||
|
||||
# Install HHVM
|
||||
RUN apt-get update \
|
||||
&& apt-key adv --recv-keys --keyserver hkp://keyserver.ubuntu.com:80 0xB4112585D386EB94 \
|
||||
|
@ -90,6 +120,15 @@ RUN apt-get update \
|
|||
&& apt-get install -y hhvm \
|
||||
&& rm -rf /var/lib/apt/lists/*
|
||||
|
||||
# Install ImageMagick
|
||||
RUN apt-get update \
|
||||
&& apt-get install -y --no-install-recommends --fix-missing \
|
||||
imagemagick \
|
||||
libmagickcore-dev \
|
||||
libmagickwand-dev \
|
||||
libmagic-dev \
|
||||
&& rm -rf /var/lib/apt/lists/*
|
||||
|
||||
# Install Java OpenJDKs
|
||||
RUN apt-add-repository -y ppa:openjdk-r/ppa
|
||||
RUN apt-get update \
|
||||
|
@ -139,6 +178,11 @@ RUN curl -LO https://storage.googleapis.com/kubernetes-release/release/$(curl -s
|
|||
&& chmod +x ./kubectl \
|
||||
&& mv ./kubectl /usr/local/bin/kubectl
|
||||
|
||||
# Install Mercurial
|
||||
RUN apt-get update \
|
||||
&& apt-get install -y mercurial \
|
||||
&& rm -rf /var/lib/apt/lists/*
|
||||
|
||||
# Install Miniconda
|
||||
RUN curl -sL https://repo.continuum.io/miniconda/Miniconda3-latest-Linux-x86_64.sh -o miniconda.sh \
|
||||
&& chmod +x miniconda.sh \
|
||||
|
@ -155,10 +199,18 @@ RUN apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys 3FA7E03280
|
|||
|
||||
# Install MySQL Client
|
||||
RUN apt-get update \
|
||||
&& apt-get install mysql-client -y \
|
||||
&& apt-get install -y mysql-client \
|
||||
&& rm -rf /var/lib/apt/lists/*
|
||||
ENV mysql=/usr/bin/mysql
|
||||
|
||||
# Install MySQL Server
|
||||
ENV MYSQL_ROOT_PASSWORD=
|
||||
RUN bash -c 'debconf-set-selections <<< "mysql-server mysql-server/root_password password $MYSQL_ROOT_PASSWORD"'
|
||||
RUN bash -c 'debconf-set-selections <<< "mysql-server mysql-server/root_password_again password $MYSQL_ROOT_PASSWORD"'
|
||||
RUN apt-get update \
|
||||
&& apt-get install -y mysql-server \
|
||||
&& rm -rf /var/lib/apt/lists/*
|
||||
|
||||
# Install .NET Core SDK and initialize package cache
|
||||
RUN curl https://packages.microsoft.com/config/ubuntu/$(UBUNTU_VERSION)/packages-microsoft-prod.deb > packages-microsoft-prod.deb \
|
||||
&& dpkg -i packages-microsoft-prod.deb \
|
||||
|
@ -176,14 +228,30 @@ RUN apt-get update \
|
|||
&& apt-get install -y --no-install-recommends azcopy \
|
||||
&& rm -rf /var/lib/apt/lists/*
|
||||
|
||||
# Install LTS Node.js and related build tools
|
||||
# Install LTS Node.js and related tools
|
||||
RUN curl -sL https://git.io/n-install | bash -s -- -ny - \
|
||||
&& ~/n/bin/n lts \
|
||||
&& npm install -g bower grunt gulp n \
|
||||
&& npm install -g bower \
|
||||
&& npm install -g grunt \
|
||||
&& npm install -g gulp \
|
||||
&& npm install -g n \
|
||||
&& npm install -g webpack webpack-cli --save-dev \
|
||||
&& npm install -g parcel-bundler \
|
||||
&& npm i -g npm \
|
||||
&& rm -rf ~/n
|
||||
ENV bower=/usr/local/bin/bower \
|
||||
grunt=/usr/local/bin/grunt
|
||||
|
||||
# Install PhantomJS
|
||||
RUN apt-get update \
|
||||
&& apt-get install -y chrpath libssl-dev libxft-dev libfreetype6 libfreetype6-dev libfontconfig1 libfontconfig1-dev \
|
||||
&& rm -rf /var/lib/apt/lists/* \
|
||||
&& export PHANTOM_JS=phantomjs-2.1.1-linux-x86_64 \
|
||||
&& wget https://bitbucket.org/ariya/phantomjs/downloads/$PHANTOM_JS.tar.bz2 \
|
||||
&& tar xvjf $PHANTOM_JS.tar.bz2 \
|
||||
&& mv $PHANTOM_JS /usr/local/share \
|
||||
&& ln -sf /usr/local/share/$PHANTOM_JS/bin/phantomjs /usr/local/bin
|
||||
|
||||
# Install PHP versions and libraries
|
||||
RUN apt-add-repository ppa:ondrej/php -y \
|
||||
&& apt-get update \
|
||||
|
@ -368,6 +436,11 @@ RUN wget -q -O phpunit https://phar.phpunit.de/phpunit-7.phar \
|
|||
&& chmod +x phpunit \
|
||||
&& mv phpunit /usr/local/bin/phpunit
|
||||
|
||||
# Install Pollinate
|
||||
RUN apt-get update \
|
||||
&& apt-get install -y --no-install-recommends pollinate \
|
||||
&& rm -rf /var/lib/apt/lists/*
|
||||
|
||||
# Install Powershell Core
|
||||
RUN curl https://packages.microsoft.com/keys/microsoft.asc | apt-key add - \
|
||||
&& curl https://packages.microsoft.com/config/ubuntu/$(UBUNTU_VERSION)/prod.list | tee /etc/apt/sources.list.d/microsoft.list \
|
||||
|
@ -376,6 +449,20 @@ RUN curl https://packages.microsoft.com/keys/microsoft.asc | apt-key add - \
|
|||
powershell \
|
||||
&& rm -rf /var/lib/apt/lists/*
|
||||
|
||||
# Instally PyPy2
|
||||
RUN wget -q -P /tmp https://bitbucket.org/pypy/pypy/downloads/pypy2-v6.0.0-linux64.tar.bz2 \
|
||||
&& tar -x -C /opt -f /tmp/pypy2-v6.0.0-linux64.tar.bz2 \
|
||||
&& rm /tmp/pypy2-v6.0.0-linux64.tar.bz2 \
|
||||
&& mv /opt/pypy2-v6.0.0-linux64 /opt/pypy2 \
|
||||
&& ln -s /opt/pypy2/bin/pypy /usr/local/bin/pypy
|
||||
|
||||
# Install PyPy3
|
||||
RUN wget -q -P /tmp https://bitbucket.org/pypy/pypy/downloads/pypy3-v6.0.0-linux64.tar.bz2 \
|
||||
&& tar -x -C /opt -f /tmp/pypy3-v6.0.0-linux64.tar.bz2 \
|
||||
&& rm /tmp/pypy3-v6.0.0-linux64.tar.bz2 \
|
||||
&& mv /opt/pypy3-v6.0.0-linux64 /opt/pypy3 \
|
||||
&& ln -s /opt/pypy3/bin/pypy3 /usr/local/bin/pypy3
|
||||
|
||||
# Install Python
|
||||
RUN apt-get update \
|
||||
&& apt-get install -y --no-install-recommends \
|
||||
|
@ -385,6 +472,11 @@ RUN apt-get update \
|
|||
python3-pip \
|
||||
&& rm -rf /var/lib/apt/lists/*
|
||||
|
||||
# Install rebar3 (for Erlang)
|
||||
RUN wget -q -O rebar3 https://s3.amazonaws.com/rebar3/rebar3 \
|
||||
&& chmod +x rebar3 \
|
||||
&& mv rebar3 /usr/local/bin/rebar3
|
||||
|
||||
# Install Ruby requirements
|
||||
RUN apt-get update \
|
||||
&& apt-get install -y libz-dev openssl libssl-dev
|
||||
|
@ -393,6 +485,11 @@ RUN apt-get update \
|
|||
RUN curl -s https://raw.githubusercontent.com/paulp/sbt-extras/master/sbt > /usr/local/bin/sbt \
|
||||
&& chmod 0755 /usr/local/bin/sbt
|
||||
|
||||
# Install Sphinx
|
||||
RUN apt-get update \
|
||||
&& apt-get install -y sphinxsearch \
|
||||
&& rm -rf /var/lib/apt/lists/*
|
||||
|
||||
# Install Subversion
|
||||
RUN apt-get update \
|
||||
&& apt-get install -y --no-install-recommends \
|
||||
|
@ -400,6 +497,12 @@ RUN apt-get update \
|
|||
&& rm -rf /var/lib/apt/lists/*
|
||||
ENV svn=/usr/bin/svn
|
||||
|
||||
# Install Terraform
|
||||
RUN TERRAFORM_VERSION=$(curl -s https://checkpoint-api.hashicorp.com/v1/check/terraform | jq -r .current_version) \
|
||||
&& curl -LO https://releases.hashicorp.com/terraform/${TERRAFORM_VERSION}/terraform_${TERRAFORM_VERSION}_linux_amd64.zip \
|
||||
&& unzip terraform_${TERRAFORM_VERSION}_linux_amd64.zip -d /usr/local/bin \
|
||||
&& rm -f terraform_${TERRAFORM_VERSION}_linux_amd64.zip
|
||||
|
||||
# XSLT transformation
|
||||
RUN apt-get update \
|
||||
&& apt-get install -y --no-install-recommends \
|
||||
|
@ -414,6 +517,11 @@ RUN curl -sS https://dl.yarnpkg.com/debian/pubkey.gpg | sudo apt-key add - \
|
|||
&& apt-get install -y --no-install-recommends yarn \
|
||||
&& rm -rf /var/lib/apt/lists/*
|
||||
|
||||
# Install Xvfb
|
||||
RUN apt-get update \
|
||||
&& apt-get install -y xvfb \
|
||||
&& rm -rf /var/lib/apt/lists/*
|
||||
|
||||
# Download hosted tool cache
|
||||
ENV AGENT_TOOLSDIRECTORY=/opt/hostedtoolcache
|
||||
RUN azcopy --recursive --source https://vstsagenttools.blob.core.windows.net/tools/hostedtoolcache/linux --destination $AGENT_TOOLSDIRECTORY
|
||||
|
|
Загрузка…
Ссылка в новой задаче