Remove sources.list.d/foo.list after adding in a layer

Avoids W: Target packages configured multiple times due to mulitple repos being added in different layers
Ensures layers are fully independent
This commit is contained in:
David Kale 2018-09-12 12:33:15 -04:00
Родитель 752c83ef98
Коммит 6ea9d5d1d9
8 изменённых файлов: 129 добавлений и 77 удалений

Просмотреть файл

@ -1,11 +1,17 @@
FROM ubuntu:14.04 FROM 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
# Trusty needs an updated backport of apt to avoid hash sum mismatch errors # Trusty needs an updated backport of apt to avoid hash sum mismatch errors
RUN [ "$(UBUNTU_RELEASE)" = "trusty" ] \ RUN [ "trusty" = "trusty" ] \
&& curl -s https://packagecloud.io/install/repositories/computology/apt-backport/script.deb.sh | bash \ && curl -s https://packagecloud.io/install/repositories/computology/apt-backport/script.deb.sh | bash \
&& apt-get update \ && apt-get update \
&& apt-get install apt=1.2.10 \ && apt-get install apt=1.2.10 \
&& rm -rf /var/lib/apt/lists/* \ && rm -rf /var/lib/apt/lists/* \
&& rm -rf /etc/apt/sources.list.d/* \
|| echo -n || echo -n
RUN apt-get update \ RUN apt-get update \
@ -14,6 +20,7 @@ RUN apt-get update \
&& apt-add-repository ppa:git-core/ppa \ && apt-add-repository ppa:git-core/ppa \
&& apt-get update \ && apt-get update \
&& apt-get install -y --no-install-recommends \ && apt-get install -y --no-install-recommends \
apt-utils \
curl \ curl \
git \ git \
jq \ jq \
@ -23,7 +30,8 @@ RUN apt-get update \
netcat \ netcat \
&& curl -s https://packagecloud.io/install/repositories/github/git-lfs/script.deb.sh | bash \ && curl -s https://packagecloud.io/install/repositories/github/git-lfs/script.deb.sh | bash \
&& apt-get install -y --no-install-recommends git-lfs \ && apt-get install -y --no-install-recommends git-lfs \
&& rm -rf /var/lib/apt/lists/* && rm -rf /var/lib/apt/lists/* \
&& rm -rf /etc/apt/sources.list.d/*
# Accept the TEE EULA # Accept the TEE EULA
RUN mkdir -p "/root/.microsoft/Team Foundation/4.0/Configuration/TEE-Mementos" \ RUN mkdir -p "/root/.microsoft/Team Foundation/4.0/Configuration/TEE-Mementos" \

Просмотреть файл

@ -1,10 +1,5 @@
FROM microsoft/vsts-agent:ubuntu-14.04 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 # Install basic command-line utilities
RUN apt-get update \ RUN apt-get update \
&& apt-get install -y --no-install-recommends \ && apt-get install -y --no-install-recommends \
@ -51,20 +46,23 @@ RUN apt-get update \
# Install Azure CLI (instructions taken from https://docs.microsoft.com/en-us/cli/azure/install-azure-cli) # Install Azure CLI (instructions taken from https://docs.microsoft.com/en-us/cli/azure/install-azure-cli)
RUN echo "deb [arch=amd64] https://packages.microsoft.com/repos/azure-cli/ $(lsb_release -cs) main" \ RUN echo "deb [arch=amd64] https://packages.microsoft.com/repos/azure-cli/ $(lsb_release -cs) main" \
| tee /etc/apt/sources.list.d/azure-cli.list \ | tee /etc/apt/sources.list.d/azure-cli.list \
&& curl -L https://packages.microsoft.com/keys/microsoft.asc | sudo apt-key add - \ && curl -L https://packages.microsoft.com/keys/microsoft.asc | apt-key add - \
&& apt-get update \ && apt-get update \
&& apt-get install -y --no-install-recommends \ && apt-get install -y --no-install-recommends \
apt-transport-https \ apt-transport-https \
azure-cli \ azure-cli \
&& rm -rf /var/lib/apt/lists/* && rm -rf /var/lib/apt/lists/* \
&& rm -rf /etc/apt/sources.list.d/* \
&& az --version
# Install Clang (only appears to work on xenial) # Install Clang (only appears to work on xenial)
RUN [ "trusty" = "xenial" ] \ RUN [ "trusty" = "xenial" ] \
&& wget -O - https://apt.llvm.org/llvm-snapshot.gpg.key | sudo apt-key add - \ && wget -O - https://apt.llvm.org/llvm-snapshot.gpg.key | apt-key add - \
&& apt-add-repository "deb http://apt.llvm.org/trusty/ llvm-toolchain-trusty-6.0 main" \ && apt-add-repository "deb http://apt.llvm.org/trusty/ llvm-toolchain-trusty-6.0 main" \
&& apt-get update \ && apt-get update \
&& apt-get install -y --no-install-recommends clang-6.0 \ && apt-get install -y --no-install-recommends clang-6.0 \
&& rm -rf /var/lib/apt/lists/* \ && rm -rf /var/lib/apt/lists/* \
&& rm -rf /etc/apt/sources.list.d/* \
|| echo -n || echo -n
# Install CMake # Install CMake
@ -75,10 +73,11 @@ RUN curl -sL https://cmake.org/files/v3.10/cmake-3.10.2-Linux-x86_64.sh -o cmake
# Install Erlang # Install Erlang
RUN echo "deb http://binaries.erlang-solutions.com/debian trusty contrib" > /etc/apt/sources.list.d/eslerlang.list \ RUN echo "deb http://binaries.erlang-solutions.com/debian trusty contrib" > /etc/apt/sources.list.d/eslerlang.list \
&& wget -O - http://binaries.erlang-solutions.com/debian/erlang_solutions.asc | sudo apt-key add - \ && wget -O - http://binaries.erlang-solutions.com/debian/erlang_solutions.asc | apt-key add - \
&& apt-get update \ && apt-get update \
&& apt-get install -y --no-install-recommends esl-erlang \ && apt-get install -y --no-install-recommends esl-erlang \
&& rm -rf /var/lib/apt/lists/* && rm -rf /var/lib/apt/lists/* \
&& rm -rf /etc/apt/sources.list.d/*
# Install Firefox # Install Firefox
RUN apt-get update \ RUN apt-get update \
@ -100,11 +99,12 @@ ENV GOROOT_1_9_X64=/usr/local/go1.9.4 \
ENV PATH $PATH:$GOROOT/bin ENV PATH $PATH:$GOROOT/bin
# Install Google Chrome # Install Google Chrome
RUN wget -q -O - https://dl-ssl.google.com/linux/linux_signing_key.pub | sudo apt-key add - \ RUN wget -q -O - https://dl-ssl.google.com/linux/linux_signing_key.pub | apt-key add - \
&& echo "deb [arch=amd64] http://dl.google.com/linux/chrome/deb/ stable main" | sudo tee /etc/apt/sources.list.d/google-chrome.list \ && echo "deb [arch=amd64] http://dl.google.com/linux/chrome/deb/ stable main" | tee /etc/apt/sources.list.d/google-chrome.list \
&& apt-get update \ && apt-get update \
&& apt-get install -y google-chrome-stable \ && apt-get install -y google-chrome-stable \
&& rm -rf /var/lib/apt/lists/* && rm -rf /var/lib/apt/lists/* \
&& rm -rf /etc/apt/sources.list.d/*
ENV CHROME_BIN /usr/bin/google-chrome ENV CHROME_BIN /usr/bin/google-chrome
# Install Haskell # Install Haskell
@ -116,7 +116,7 @@ RUN apt-get update \
RUN curl https://raw.githubusercontent.com/kubernetes/helm/master/scripts/get | bash RUN curl https://raw.githubusercontent.com/kubernetes/helm/master/scripts/get | bash
# Install Heroku CLI # Install Heroku CLI
RUN curl https://cli-assets.heroku.com/install-ubuntu.sh | sh RUN curl https://cli-assets.heroku.com/install.sh | sh
# Install HHVM # Install HHVM
RUN apt-get update \ RUN apt-get update \
@ -124,7 +124,8 @@ RUN apt-get update \
&& add-apt-repository https://dl.hhvm.com/ubuntu \ && add-apt-repository https://dl.hhvm.com/ubuntu \
&& apt-get update \ && apt-get update \
&& apt-get install -y hhvm \ && apt-get install -y hhvm \
&& rm -rf /var/lib/apt/lists/* && rm -rf /var/lib/apt/lists/* \
&& rm -rf /etc/apt/sources.list.d/*
# Install ImageMagick # Install ImageMagick
RUN apt-get update \ RUN apt-get update \
@ -201,7 +202,8 @@ RUN apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys 3FA7E03280
&& echo "deb https://download.mono-project.com/repo/ubuntu stable-trusty main" | tee /etc/apt/sources.list.d/mono-official-stable.list \ && echo "deb https://download.mono-project.com/repo/ubuntu stable-trusty main" | tee /etc/apt/sources.list.d/mono-official-stable.list \
&& apt-get update \ && apt-get update \
&& apt-get install -y --no-install-recommends apt-transport-https mono-complete \ && apt-get install -y --no-install-recommends apt-transport-https mono-complete \
&& rm -rf /var/lib/apt/lists/* && rm -rf /var/lib/apt/lists/* \
&& rm -rf /etc/apt/sources.list.d/*
# Install MS SQL Server client tools (https://docs.microsoft.com/en-us/sql/linux/sql-server-linux-setup-tools?view=sql-server-2017) # Install MS SQL Server client tools (https://docs.microsoft.com/en-us/sql/linux/sql-server-linux-setup-tools?view=sql-server-2017)
RUN [ "trusty" = "xenial" ] \ RUN [ "trusty" = "xenial" ] \
@ -210,6 +212,7 @@ RUN [ "trusty" = "xenial" ] \
&& apt-get update \ && 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/* \ && rm -rf /var/lib/apt/lists/* \
&& rm -rf /etc/apt/sources.list.d/* \
|| echo -n || echo -n
ENV PATH=$PATH:/opt/mssql-tools/bin ENV PATH=$PATH:/opt/mssql-tools/bin
@ -235,14 +238,18 @@ RUN curl https://packages.microsoft.com/config/ubuntu/14.04/packages-microsoft-p
&& apt-get install -y --no-install-recommends \ && apt-get install -y --no-install-recommends \
apt-transport-https \ apt-transport-https \
dotnet-sdk-2.1 \ dotnet-sdk-2.1 \
&& rm -rf /var/lib/apt/lists/* && rm -rf /var/lib/apt/lists/* \
&& rm -rf /etc/apt/sources.list.d/*
RUN dotnet help RUN dotnet help
ENV dotnet=/usr/bin/dotnet ENV dotnet=/usr/bin/dotnet
# Install AzCopy (depends on .NET Core) # Install AzCopy (depends on .NET Core)
RUN apt-get update \ RUN apt-key adv --keyserver packages.microsoft.com --recv-keys EB3E94ADBE1229CF \
&& echo "deb [arch=amd64] https://packages.microsoft.com/repos/microsoft-ubuntu-trusty-prod/ trusty main" | tee /etc/apt/sources.list.d/azure.list \
&& apt-get update \
&& apt-get install -y --no-install-recommends azcopy \ && apt-get install -y --no-install-recommends azcopy \
&& rm -rf /var/lib/apt/lists/* && rm -rf /var/lib/apt/lists/* \
&& rm -rf /etc/apt/sources.list.d/*
# Install LTS Node.js and related tools # Install LTS Node.js and related tools
RUN curl -sL https://git.io/n-install | bash -s -- -ny - \ RUN curl -sL https://git.io/n-install | bash -s -- -ny - \
@ -463,7 +470,8 @@ RUN curl https://packages.microsoft.com/keys/microsoft.asc | apt-key add - \
&& apt-get update \ && apt-get update \
&& apt-get install -y --no-install-recommends \ && apt-get install -y --no-install-recommends \
powershell \ powershell \
&& rm -rf /var/lib/apt/lists/* && rm -rf /var/lib/apt/lists/* \
&& rm -rf /etc/apt/sources.list.d/*
# Instally PyPy2 # Instally PyPy2
RUN wget -q -P /tmp https://bitbucket.org/pypy/pypy/downloads/pypy2-v6.0.0-linux64.tar.bz2 \ RUN wget -q -P /tmp https://bitbucket.org/pypy/pypy/downloads/pypy2-v6.0.0-linux64.tar.bz2 \
@ -529,11 +537,12 @@ RUN apt-get update \
&& rm -rf /var/lib/apt/lists/* && rm -rf /var/lib/apt/lists/*
# Install yarn # Install yarn
RUN curl -sS https://dl.yarnpkg.com/debian/pubkey.gpg | sudo apt-key add - \ RUN curl -sS https://dl.yarnpkg.com/debian/pubkey.gpg | apt-key add - \
&& echo "deb https://dl.yarnpkg.com/debian/ stable main" | sudo tee /etc/apt/sources.list.d/yarn.list \ && echo "deb https://dl.yarnpkg.com/debian/ stable main" | tee /etc/apt/sources.list.d/yarn.list \
&& apt-get update \ && apt-get update \
&& apt-get install -y --no-install-recommends yarn \ && apt-get install -y --no-install-recommends yarn \
&& rm -rf /var/lib/apt/lists/* && rm -rf /var/lib/apt/lists/* \
&& rm -rf /etc/apt/sources.list.d/*
# Install Xvfb # Install Xvfb
RUN apt-get update \ RUN apt-get update \

Просмотреть файл

@ -1,11 +1,17 @@
FROM ubuntu:16.04 FROM 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
# Trusty needs an updated backport of apt to avoid hash sum mismatch errors # Trusty needs an updated backport of apt to avoid hash sum mismatch errors
RUN [ "$(UBUNTU_RELEASE)" = "trusty" ] \ RUN [ "xenial" = "trusty" ] \
&& curl -s https://packagecloud.io/install/repositories/computology/apt-backport/script.deb.sh | bash \ && curl -s https://packagecloud.io/install/repositories/computology/apt-backport/script.deb.sh | bash \
&& apt-get update \ && apt-get update \
&& apt-get install apt=1.2.10 \ && apt-get install apt=1.2.10 \
&& rm -rf /var/lib/apt/lists/* \ && rm -rf /var/lib/apt/lists/* \
&& rm -rf /etc/apt/sources.list.d/* \
|| echo -n || echo -n
RUN apt-get update \ RUN apt-get update \
@ -14,6 +20,7 @@ RUN apt-get update \
&& apt-add-repository ppa:git-core/ppa \ && apt-add-repository ppa:git-core/ppa \
&& apt-get update \ && apt-get update \
&& apt-get install -y --no-install-recommends \ && apt-get install -y --no-install-recommends \
apt-utils \
curl \ curl \
git \ git \
jq \ jq \
@ -23,7 +30,8 @@ RUN apt-get update \
netcat \ netcat \
&& curl -s https://packagecloud.io/install/repositories/github/git-lfs/script.deb.sh | bash \ && curl -s https://packagecloud.io/install/repositories/github/git-lfs/script.deb.sh | bash \
&& apt-get install -y --no-install-recommends git-lfs \ && apt-get install -y --no-install-recommends git-lfs \
&& rm -rf /var/lib/apt/lists/* && rm -rf /var/lib/apt/lists/* \
&& rm -rf /etc/apt/sources.list.d/*
# Accept the TEE EULA # Accept the TEE EULA
RUN mkdir -p "/root/.microsoft/Team Foundation/4.0/Configuration/TEE-Mementos" \ RUN mkdir -p "/root/.microsoft/Team Foundation/4.0/Configuration/TEE-Mementos" \

Просмотреть файл

@ -1,10 +1,5 @@
FROM microsoft/vsts-agent:ubuntu-16.04 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 # Install basic command-line utilities
RUN apt-get update \ RUN apt-get update \
&& apt-get install -y --no-install-recommends \ && apt-get install -y --no-install-recommends \
@ -51,20 +46,23 @@ RUN apt-get update \
# Install Azure CLI (instructions taken from https://docs.microsoft.com/en-us/cli/azure/install-azure-cli) # Install Azure CLI (instructions taken from https://docs.microsoft.com/en-us/cli/azure/install-azure-cli)
RUN echo "deb [arch=amd64] https://packages.microsoft.com/repos/azure-cli/ $(lsb_release -cs) main" \ RUN echo "deb [arch=amd64] https://packages.microsoft.com/repos/azure-cli/ $(lsb_release -cs) main" \
| tee /etc/apt/sources.list.d/azure-cli.list \ | tee /etc/apt/sources.list.d/azure-cli.list \
&& curl -L https://packages.microsoft.com/keys/microsoft.asc | sudo apt-key add - \ && curl -L https://packages.microsoft.com/keys/microsoft.asc | apt-key add - \
&& apt-get update \ && apt-get update \
&& apt-get install -y --no-install-recommends \ && apt-get install -y --no-install-recommends \
apt-transport-https \ apt-transport-https \
azure-cli \ azure-cli \
&& rm -rf /var/lib/apt/lists/* && rm -rf /var/lib/apt/lists/* \
&& rm -rf /etc/apt/sources.list.d/* \
&& az --version
# Install Clang (only appears to work on xenial) # Install Clang (only appears to work on xenial)
RUN [ "xenial" = "xenial" ] \ RUN [ "xenial" = "xenial" ] \
&& wget -O - https://apt.llvm.org/llvm-snapshot.gpg.key | sudo apt-key add - \ && wget -O - https://apt.llvm.org/llvm-snapshot.gpg.key | apt-key add - \
&& apt-add-repository "deb http://apt.llvm.org/xenial/ llvm-toolchain-xenial-6.0 main" \ && apt-add-repository "deb http://apt.llvm.org/xenial/ llvm-toolchain-xenial-6.0 main" \
&& apt-get update \ && apt-get update \
&& apt-get install -y --no-install-recommends clang-6.0 \ && apt-get install -y --no-install-recommends clang-6.0 \
&& rm -rf /var/lib/apt/lists/* \ && rm -rf /var/lib/apt/lists/* \
&& rm -rf /etc/apt/sources.list.d/* \
|| echo -n || echo -n
# Install CMake # Install CMake
@ -75,10 +73,11 @@ RUN curl -sL https://cmake.org/files/v3.10/cmake-3.10.2-Linux-x86_64.sh -o cmake
# Install Erlang # Install Erlang
RUN echo "deb http://binaries.erlang-solutions.com/debian xenial contrib" > /etc/apt/sources.list.d/eslerlang.list \ 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 - \ && wget -O - http://binaries.erlang-solutions.com/debian/erlang_solutions.asc | apt-key add - \
&& apt-get update \ && apt-get update \
&& apt-get install -y --no-install-recommends esl-erlang \ && apt-get install -y --no-install-recommends esl-erlang \
&& rm -rf /var/lib/apt/lists/* && rm -rf /var/lib/apt/lists/* \
&& rm -rf /etc/apt/sources.list.d/*
# Install Firefox # Install Firefox
RUN apt-get update \ RUN apt-get update \
@ -100,11 +99,12 @@ ENV GOROOT_1_9_X64=/usr/local/go1.9.4 \
ENV PATH $PATH:$GOROOT/bin ENV PATH $PATH:$GOROOT/bin
# Install Google Chrome # Install Google Chrome
RUN wget -q -O - https://dl-ssl.google.com/linux/linux_signing_key.pub | sudo apt-key add - \ RUN wget -q -O - https://dl-ssl.google.com/linux/linux_signing_key.pub | apt-key add - \
&& echo "deb [arch=amd64] http://dl.google.com/linux/chrome/deb/ stable main" | sudo tee /etc/apt/sources.list.d/google-chrome.list \ && echo "deb [arch=amd64] http://dl.google.com/linux/chrome/deb/ stable main" | tee /etc/apt/sources.list.d/google-chrome.list \
&& apt-get update \ && apt-get update \
&& apt-get install -y google-chrome-stable \ && apt-get install -y google-chrome-stable \
&& rm -rf /var/lib/apt/lists/* && rm -rf /var/lib/apt/lists/* \
&& rm -rf /etc/apt/sources.list.d/*
ENV CHROME_BIN /usr/bin/google-chrome ENV CHROME_BIN /usr/bin/google-chrome
# Install Haskell # Install Haskell
@ -116,7 +116,7 @@ RUN apt-get update \
RUN curl https://raw.githubusercontent.com/kubernetes/helm/master/scripts/get | bash RUN curl https://raw.githubusercontent.com/kubernetes/helm/master/scripts/get | bash
# Install Heroku CLI # Install Heroku CLI
RUN curl https://cli-assets.heroku.com/install-ubuntu.sh | sh RUN curl https://cli-assets.heroku.com/install.sh | sh
# Install HHVM # Install HHVM
RUN apt-get update \ RUN apt-get update \
@ -124,7 +124,8 @@ RUN apt-get update \
&& add-apt-repository https://dl.hhvm.com/ubuntu \ && add-apt-repository https://dl.hhvm.com/ubuntu \
&& apt-get update \ && apt-get update \
&& apt-get install -y hhvm \ && apt-get install -y hhvm \
&& rm -rf /var/lib/apt/lists/* && rm -rf /var/lib/apt/lists/* \
&& rm -rf /etc/apt/sources.list.d/*
# Install ImageMagick # Install ImageMagick
RUN apt-get update \ RUN apt-get update \
@ -201,7 +202,8 @@ RUN apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys 3FA7E03280
&& echo "deb https://download.mono-project.com/repo/ubuntu stable-xenial main" | tee /etc/apt/sources.list.d/mono-official-stable.list \ && echo "deb https://download.mono-project.com/repo/ubuntu stable-xenial main" | tee /etc/apt/sources.list.d/mono-official-stable.list \
&& apt-get update \ && apt-get update \
&& apt-get install -y --no-install-recommends apt-transport-https mono-complete \ && apt-get install -y --no-install-recommends apt-transport-https mono-complete \
&& rm -rf /var/lib/apt/lists/* && rm -rf /var/lib/apt/lists/* \
&& rm -rf /etc/apt/sources.list.d/*
# Install MS SQL Server client tools (https://docs.microsoft.com/en-us/sql/linux/sql-server-linux-setup-tools?view=sql-server-2017) # Install MS SQL Server client tools (https://docs.microsoft.com/en-us/sql/linux/sql-server-linux-setup-tools?view=sql-server-2017)
RUN [ "xenial" = "xenial" ] \ RUN [ "xenial" = "xenial" ] \
@ -210,6 +212,7 @@ RUN [ "xenial" = "xenial" ] \
&& apt-get update \ && 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/* \ && rm -rf /var/lib/apt/lists/* \
&& rm -rf /etc/apt/sources.list.d/* \
|| echo -n || echo -n
ENV PATH=$PATH:/opt/mssql-tools/bin ENV PATH=$PATH:/opt/mssql-tools/bin
@ -235,14 +238,18 @@ RUN curl https://packages.microsoft.com/config/ubuntu/16.04/packages-microsoft-p
&& apt-get install -y --no-install-recommends \ && apt-get install -y --no-install-recommends \
apt-transport-https \ apt-transport-https \
dotnet-sdk-2.1 \ dotnet-sdk-2.1 \
&& rm -rf /var/lib/apt/lists/* && rm -rf /var/lib/apt/lists/* \
&& rm -rf /etc/apt/sources.list.d/*
RUN dotnet help RUN dotnet help
ENV dotnet=/usr/bin/dotnet ENV dotnet=/usr/bin/dotnet
# Install AzCopy (depends on .NET Core) # Install AzCopy (depends on .NET Core)
RUN apt-get update \ RUN apt-key adv --keyserver packages.microsoft.com --recv-keys EB3E94ADBE1229CF \
&& echo "deb [arch=amd64] https://packages.microsoft.com/repos/microsoft-ubuntu-xenial-prod/ xenial main" | tee /etc/apt/sources.list.d/azure.list \
&& apt-get update \
&& apt-get install -y --no-install-recommends azcopy \ && apt-get install -y --no-install-recommends azcopy \
&& rm -rf /var/lib/apt/lists/* && rm -rf /var/lib/apt/lists/* \
&& rm -rf /etc/apt/sources.list.d/*
# Install LTS Node.js and related tools # Install LTS Node.js and related tools
RUN curl -sL https://git.io/n-install | bash -s -- -ny - \ RUN curl -sL https://git.io/n-install | bash -s -- -ny - \
@ -463,7 +470,8 @@ RUN curl https://packages.microsoft.com/keys/microsoft.asc | apt-key add - \
&& apt-get update \ && apt-get update \
&& apt-get install -y --no-install-recommends \ && apt-get install -y --no-install-recommends \
powershell \ powershell \
&& rm -rf /var/lib/apt/lists/* && rm -rf /var/lib/apt/lists/* \
&& rm -rf /etc/apt/sources.list.d/*
# Instally PyPy2 # Instally PyPy2
RUN wget -q -P /tmp https://bitbucket.org/pypy/pypy/downloads/pypy2-v6.0.0-linux64.tar.bz2 \ RUN wget -q -P /tmp https://bitbucket.org/pypy/pypy/downloads/pypy2-v6.0.0-linux64.tar.bz2 \
@ -529,11 +537,12 @@ RUN apt-get update \
&& rm -rf /var/lib/apt/lists/* && rm -rf /var/lib/apt/lists/*
# Install yarn # Install yarn
RUN curl -sS https://dl.yarnpkg.com/debian/pubkey.gpg | sudo apt-key add - \ RUN curl -sS https://dl.yarnpkg.com/debian/pubkey.gpg | apt-key add - \
&& echo "deb https://dl.yarnpkg.com/debian/ stable main" | sudo tee /etc/apt/sources.list.d/yarn.list \ && echo "deb https://dl.yarnpkg.com/debian/ stable main" | tee /etc/apt/sources.list.d/yarn.list \
&& apt-get update \ && apt-get update \
&& apt-get install -y --no-install-recommends yarn \ && apt-get install -y --no-install-recommends yarn \
&& rm -rf /var/lib/apt/lists/* && rm -rf /var/lib/apt/lists/* \
&& rm -rf /etc/apt/sources.list.d/*
# Install Xvfb # Install Xvfb
RUN apt-get update \ RUN apt-get update \

Просмотреть файл

@ -1,11 +1,17 @@
FROM ubuntu:$(UBUNTU_VERSION) FROM ubuntu:$(UBUNTU_VERSION)
# 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
# Trusty needs an updated backport of apt to avoid hash sum mismatch errors # Trusty needs an updated backport of apt to avoid hash sum mismatch errors
RUN [ "$(UBUNTU_RELEASE)" = "trusty" ] \ RUN [ "$(UBUNTU_RELEASE)" = "trusty" ] \
&& curl -s https://packagecloud.io/install/repositories/computology/apt-backport/script.deb.sh | bash \ && curl -s https://packagecloud.io/install/repositories/computology/apt-backport/script.deb.sh | bash \
&& apt-get update \ && apt-get update \
&& apt-get install apt=1.2.10 \ && apt-get install apt=1.2.10 \
&& rm -rf /var/lib/apt/lists/* \ && rm -rf /var/lib/apt/lists/* \
&& rm -rf /etc/apt/sources.list.d/* \
|| echo -n || echo -n
RUN apt-get update \ RUN apt-get update \
@ -14,6 +20,7 @@ RUN apt-get update \
&& apt-add-repository ppa:git-core/ppa \ && apt-add-repository ppa:git-core/ppa \
&& apt-get update \ && apt-get update \
&& apt-get install -y --no-install-recommends \ && apt-get install -y --no-install-recommends \
apt-utils \
curl \ curl \
git \ git \
jq \ jq \
@ -23,7 +30,8 @@ RUN apt-get update \
netcat \ netcat \
&& curl -s https://packagecloud.io/install/repositories/github/git-lfs/script.deb.sh | bash \ && curl -s https://packagecloud.io/install/repositories/github/git-lfs/script.deb.sh | bash \
&& apt-get install -y --no-install-recommends git-lfs \ && apt-get install -y --no-install-recommends git-lfs \
&& rm -rf /var/lib/apt/lists/* && rm -rf /var/lib/apt/lists/* \
&& rm -rf /etc/apt/sources.list.d/*
# Accept the TEE EULA # Accept the TEE EULA
RUN mkdir -p "/root/.microsoft/Team Foundation/4.0/Configuration/TEE-Mementos" \ RUN mkdir -p "/root/.microsoft/Team Foundation/4.0/Configuration/TEE-Mementos" \

Просмотреть файл

@ -1,10 +1,5 @@
FROM microsoft/vsts-agent:$(VSTS_AGENT_TAG) 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 # Install basic command-line utilities
RUN apt-get update \ RUN apt-get update \
&& apt-get install -y --no-install-recommends \ && apt-get install -y --no-install-recommends \
@ -51,20 +46,23 @@ RUN apt-get update \
# Install Azure CLI (instructions taken from https://docs.microsoft.com/en-us/cli/azure/install-azure-cli) # Install Azure CLI (instructions taken from https://docs.microsoft.com/en-us/cli/azure/install-azure-cli)
RUN echo "deb [arch=amd64] https://packages.microsoft.com/repos/azure-cli/ $(lsb_release -cs) main" \ RUN echo "deb [arch=amd64] https://packages.microsoft.com/repos/azure-cli/ $(lsb_release -cs) main" \
| tee /etc/apt/sources.list.d/azure-cli.list \ | tee /etc/apt/sources.list.d/azure-cli.list \
&& curl -L https://packages.microsoft.com/keys/microsoft.asc | sudo apt-key add - \ && curl -L https://packages.microsoft.com/keys/microsoft.asc | apt-key add - \
&& apt-get update \ && apt-get update \
&& apt-get install -y --no-install-recommends \ && apt-get install -y --no-install-recommends \
apt-transport-https \ apt-transport-https \
azure-cli \ azure-cli \
&& rm -rf /var/lib/apt/lists/* && rm -rf /var/lib/apt/lists/* \
&& rm -rf /etc/apt/sources.list.d/* \
&& az --version
# Install Clang (only appears to work on xenial) # Install Clang (only appears to work on xenial)
RUN [ "$(UBUNTU_RELEASE)" = "xenial" ] \ RUN [ "$(UBUNTU_RELEASE)" = "xenial" ] \
&& wget -O - https://apt.llvm.org/llvm-snapshot.gpg.key | sudo apt-key add - \ && wget -O - https://apt.llvm.org/llvm-snapshot.gpg.key | apt-key add - \
&& apt-add-repository "deb http://apt.llvm.org/$(UBUNTU_RELEASE)/ llvm-toolchain-$(UBUNTU_RELEASE)-6.0 main" \ && apt-add-repository "deb http://apt.llvm.org/$(UBUNTU_RELEASE)/ llvm-toolchain-$(UBUNTU_RELEASE)-6.0 main" \
&& apt-get update \ && apt-get update \
&& apt-get install -y --no-install-recommends clang-6.0 \ && apt-get install -y --no-install-recommends clang-6.0 \
&& rm -rf /var/lib/apt/lists/* \ && rm -rf /var/lib/apt/lists/* \
&& rm -rf /etc/apt/sources.list.d/* \
|| echo -n || echo -n
# Install CMake # Install CMake
@ -75,10 +73,11 @@ RUN curl -sL https://cmake.org/files/v3.10/cmake-3.10.2-Linux-x86_64.sh -o cmake
# Install Erlang # Install Erlang
RUN echo "deb http://binaries.erlang-solutions.com/debian $(UBUNTU_RELEASE) contrib" > /etc/apt/sources.list.d/eslerlang.list \ RUN echo "deb http://binaries.erlang-solutions.com/debian $(UBUNTU_RELEASE) contrib" > /etc/apt/sources.list.d/eslerlang.list \
&& wget -O - http://binaries.erlang-solutions.com/debian/erlang_solutions.asc | sudo apt-key add - \ && wget -O - http://binaries.erlang-solutions.com/debian/erlang_solutions.asc | apt-key add - \
&& apt-get update \ && apt-get update \
&& apt-get install -y --no-install-recommends esl-erlang \ && apt-get install -y --no-install-recommends esl-erlang \
&& rm -rf /var/lib/apt/lists/* && rm -rf /var/lib/apt/lists/* \
&& rm -rf /etc/apt/sources.list.d/*
# Install Firefox # Install Firefox
RUN apt-get update \ RUN apt-get update \
@ -100,11 +99,12 @@ ENV GOROOT_1_9_X64=/usr/local/go1.9.4 \
ENV PATH $PATH:$GOROOT/bin ENV PATH $PATH:$GOROOT/bin
# Install Google Chrome # Install Google Chrome
RUN wget -q -O - https://dl-ssl.google.com/linux/linux_signing_key.pub | sudo apt-key add - \ RUN wget -q -O - https://dl-ssl.google.com/linux/linux_signing_key.pub | apt-key add - \
&& echo "deb [arch=amd64] http://dl.google.com/linux/chrome/deb/ stable main" | sudo tee /etc/apt/sources.list.d/google-chrome.list \ && echo "deb [arch=amd64] http://dl.google.com/linux/chrome/deb/ stable main" | tee /etc/apt/sources.list.d/google-chrome.list \
&& apt-get update \ && apt-get update \
&& apt-get install -y google-chrome-stable \ && apt-get install -y google-chrome-stable \
&& rm -rf /var/lib/apt/lists/* && rm -rf /var/lib/apt/lists/* \
&& rm -rf /etc/apt/sources.list.d/*
ENV CHROME_BIN /usr/bin/google-chrome ENV CHROME_BIN /usr/bin/google-chrome
# Install Haskell # Install Haskell
@ -116,7 +116,7 @@ RUN apt-get update \
RUN curl https://raw.githubusercontent.com/kubernetes/helm/master/scripts/get | bash RUN curl https://raw.githubusercontent.com/kubernetes/helm/master/scripts/get | bash
# Install Heroku CLI # Install Heroku CLI
RUN curl https://cli-assets.heroku.com/install-ubuntu.sh | sh RUN curl https://cli-assets.heroku.com/install.sh | sh
# Install HHVM # Install HHVM
RUN apt-get update \ RUN apt-get update \
@ -124,7 +124,8 @@ RUN apt-get update \
&& add-apt-repository https://dl.hhvm.com/ubuntu \ && add-apt-repository https://dl.hhvm.com/ubuntu \
&& apt-get update \ && apt-get update \
&& apt-get install -y hhvm \ && apt-get install -y hhvm \
&& rm -rf /var/lib/apt/lists/* && rm -rf /var/lib/apt/lists/* \
&& rm -rf /etc/apt/sources.list.d/*
# Install ImageMagick # Install ImageMagick
RUN apt-get update \ RUN apt-get update \
@ -201,7 +202,8 @@ RUN apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys 3FA7E03280
&& echo "deb https://download.mono-project.com/repo/ubuntu stable-$(UBUNTU_RELEASE) main" | tee /etc/apt/sources.list.d/mono-official-stable.list \ && echo "deb https://download.mono-project.com/repo/ubuntu stable-$(UBUNTU_RELEASE) main" | tee /etc/apt/sources.list.d/mono-official-stable.list \
&& apt-get update \ && apt-get update \
&& apt-get install -y --no-install-recommends apt-transport-https mono-complete \ && apt-get install -y --no-install-recommends apt-transport-https mono-complete \
&& rm -rf /var/lib/apt/lists/* && rm -rf /var/lib/apt/lists/* \
&& rm -rf /etc/apt/sources.list.d/*
# Install MS SQL Server client tools (https://docs.microsoft.com/en-us/sql/linux/sql-server-linux-setup-tools?view=sql-server-2017) # Install MS SQL Server client tools (https://docs.microsoft.com/en-us/sql/linux/sql-server-linux-setup-tools?view=sql-server-2017)
RUN [ "$(UBUNTU_RELEASE)" = "xenial" ] \ RUN [ "$(UBUNTU_RELEASE)" = "xenial" ] \
@ -210,6 +212,7 @@ RUN [ "$(UBUNTU_RELEASE)" = "xenial" ] \
&& apt-get update \ && 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/* \ && rm -rf /var/lib/apt/lists/* \
&& rm -rf /etc/apt/sources.list.d/* \
|| echo -n || echo -n
ENV PATH=$PATH:/opt/mssql-tools/bin ENV PATH=$PATH:/opt/mssql-tools/bin
@ -235,14 +238,18 @@ RUN curl https://packages.microsoft.com/config/ubuntu/$(UBUNTU_VERSION)/packages
&& apt-get install -y --no-install-recommends \ && apt-get install -y --no-install-recommends \
apt-transport-https \ apt-transport-https \
dotnet-sdk-2.1 \ dotnet-sdk-2.1 \
&& rm -rf /var/lib/apt/lists/* && rm -rf /var/lib/apt/lists/* \
&& rm -rf /etc/apt/sources.list.d/*
RUN dotnet help RUN dotnet help
ENV dotnet=/usr/bin/dotnet ENV dotnet=/usr/bin/dotnet
# Install AzCopy (depends on .NET Core) # Install AzCopy (depends on .NET Core)
RUN apt-get update \ RUN apt-key adv --keyserver packages.microsoft.com --recv-keys EB3E94ADBE1229CF \
&& echo "deb [arch=amd64] https://packages.microsoft.com/repos/microsoft-ubuntu-$(UBUNTU_RELEASE)-prod/ $(UBUNTU_RELEASE) main" | tee /etc/apt/sources.list.d/azure.list \
&& apt-get update \
&& apt-get install -y --no-install-recommends azcopy \ && apt-get install -y --no-install-recommends azcopy \
&& rm -rf /var/lib/apt/lists/* && rm -rf /var/lib/apt/lists/* \
&& rm -rf /etc/apt/sources.list.d/*
# Install LTS Node.js and related tools # Install LTS Node.js and related tools
RUN curl -sL https://git.io/n-install | bash -s -- -ny - \ RUN curl -sL https://git.io/n-install | bash -s -- -ny - \
@ -463,7 +470,8 @@ RUN curl https://packages.microsoft.com/keys/microsoft.asc | apt-key add - \
&& apt-get update \ && apt-get update \
&& apt-get install -y --no-install-recommends \ && apt-get install -y --no-install-recommends \
powershell \ powershell \
&& rm -rf /var/lib/apt/lists/* && rm -rf /var/lib/apt/lists/* \
&& rm -rf /etc/apt/sources.list.d/*
# Instally PyPy2 # Instally PyPy2
RUN wget -q -P /tmp https://bitbucket.org/pypy/pypy/downloads/pypy2-v6.0.0-linux64.tar.bz2 \ RUN wget -q -P /tmp https://bitbucket.org/pypy/pypy/downloads/pypy2-v6.0.0-linux64.tar.bz2 \
@ -529,11 +537,12 @@ RUN apt-get update \
&& rm -rf /var/lib/apt/lists/* && rm -rf /var/lib/apt/lists/*
# Install yarn # Install yarn
RUN curl -sS https://dl.yarnpkg.com/debian/pubkey.gpg | sudo apt-key add - \ RUN curl -sS https://dl.yarnpkg.com/debian/pubkey.gpg | apt-key add - \
&& echo "deb https://dl.yarnpkg.com/debian/ stable main" | sudo tee /etc/apt/sources.list.d/yarn.list \ && echo "deb https://dl.yarnpkg.com/debian/ stable main" | tee /etc/apt/sources.list.d/yarn.list \
&& apt-get update \ && apt-get update \
&& apt-get install -y --no-install-recommends yarn \ && apt-get install -y --no-install-recommends yarn \
&& rm -rf /var/lib/apt/lists/* && rm -rf /var/lib/apt/lists/* \
&& rm -rf /etc/apt/sources.list.d/*
# Install Xvfb # Install Xvfb
RUN apt-get update \ RUN apt-get update \

Просмотреть файл

@ -1,2 +1,2 @@
14.04 52 14.04 trusty 52
16.04 55 16.04 xenial 55

Просмотреть файл

@ -6,7 +6,7 @@ cd "$(dirname $0)"
ubuntu() { ubuntu() {
cd ubuntu cd ubuntu
while read UBUNTU_VERSION LIBICU_VERSION; do while read UBUNTU_VERSION UBUNTU_RELEASE LIBICU_VERSION; do
BASE_DIR=$UBUNTU_VERSION BASE_DIR=$UBUNTU_VERSION
TARGET_DIR=$BASE_DIR TARGET_DIR=$BASE_DIR
@ -15,6 +15,7 @@ ubuntu() {
# Update base image # Update base image
sed \ sed \
-e s/'$(UBUNTU_VERSION)'/$UBUNTU_VERSION/g \ -e s/'$(UBUNTU_VERSION)'/$UBUNTU_VERSION/g \
-e s/'$(UBUNTU_RELEASE)'/$UBUNTU_RELEASE/g \
-e s/'$(LIBICU_VERSION)'/$LIBICU_VERSION/g \ -e s/'$(LIBICU_VERSION)'/$LIBICU_VERSION/g \
Dockerfile.template > $UBUNTU_VERSION/Dockerfile Dockerfile.template > $UBUNTU_VERSION/Dockerfile
if [ -n "$(which unix2dos)" ]; then if [ -n "$(which unix2dos)" ]; then