From d2de37d46ef552defd7d4e739abecc9b236dbc00 Mon Sep 17 00:00:00 2001 From: Chuck Lantz Date: Fri, 19 Apr 2019 16:45:58 -0700 Subject: [PATCH] Update yarn using package, clean out outdated --- .../.devcontainer/Dockerfile | 36 +++++++++++------ .../.devcontainer/Dockerfile | 40 ++++++++++++------- .../.devcontainer/Dockerfile | 20 +++++----- .../.devcontainer/Dockerfile | 12 +++++- .../.devcontainer/Dockerfile | 20 +++++----- .../.devcontainer/Dockerfile | 20 +++++----- .../.devcontainer/Dockerfile | 20 +++++----- 7 files changed, 102 insertions(+), 66 deletions(-) diff --git a/containers/azure-functions-node-8/.devcontainer/Dockerfile b/containers/azure-functions-node-8/.devcontainer/Dockerfile index 37cb127728..6dd3401873 100644 --- a/containers/azure-functions-node-8/.devcontainer/Dockerfile +++ b/containers/azure-functions-node-8/.devcontainer/Dockerfile @@ -5,32 +5,40 @@ FROM mcr.microsoft.com/dotnet/core/sdk:2.1 +# Configure apt +ENV DEBIAN_FRONTEND=noninteractive +RUN apt-get update \ + && apt-get -y install --no-install-recommends apt-utils 2>&1 + # Verify git and needed tools are installed -RUN apt-get update && apt-get -y install git curl tar procps +RUN apt-get -y install \ + git \ + procps \ + curl \ + apt-transport-https \ + gnupg2 \ + lsb-release # Install Node.js via NVM - See https://github.com/creationix/nvm # Change the number "8" in the two lines below to pick a different version -RUN curl -o- https://raw.githubusercontent.com/creationix/nvm/v0.34.0/install.sh | bash \ +RUN curl -so- https://raw.githubusercontent.com/creationix/nvm/v0.34.0/install.sh | bash 2>&1 \ && /bin/bash -c "source $HOME/.nvm/nvm.sh \ - && nvm install 8 \ - && nvm alias default 8" + && nvm install --no-progress 8 \ + && nvm alias default 8" 2>&1 # Install eslint RUN /bin/bash -c "source $HOME/.nvm/nvm.sh && npm install -g eslint" # Install latest yarn -RUN curl -sfSLO --compressed "https://yarnpkg.com/latest.tar.gz" \ - && rm -rf /opt/yarn-* \ - && tar -xzf latest.tar.gz -C /opt/ \ - && ln -snf /opt/yarn-v*/bin/yarn /usr/local/bin/yarn \ - && ln -snf /opt/yarn-v*/bin/yarnpkg /usr/local/bin/yarnpkg \ - && rm latest.tar.gz +RUN curl -sS https://dl.yarnpkg.com/$(lsb_release -is | tr '[:upper:]' '[:lower:]')/pubkey.gpg | apt-key add - 2>/dev/null \ + && echo "deb https://dl.yarnpkg.com/$(lsb_release -is | tr '[:upper:]' '[:lower:]')/ stable main" | tee /etc/apt/sources.list.d/yarn.list \ + && apt-get update \ + && apt-get -y install --no-install-recommends yarn # Install Azure Functions and Azure CLI -RUN apt-get install -y apt-transport-https curl gnupg2 lsb-release \ - && echo "deb [arch=amd64] https://packages.microsoft.com/repos/azure-cli/ $(lsb_release -cs) main" > /etc/apt/sources.list.d/azure-cli.list \ +RUN echo "deb [arch=amd64] https://packages.microsoft.com/repos/azure-cli/ $(lsb_release -cs) main" > /etc/apt/sources.list.d/azure-cli.list \ && echo "deb [arch=amd64] https://packages.microsoft.com/repos/microsoft-debian-$(lsb_release -cs)-prod $(lsb_release -cs) main" > /etc/apt/sources.list.d/dotnetdev.list \ - && curl -L https://packages.microsoft.com/keys/microsoft.asc | apt-key add - \ + && curl -sL https://packages.microsoft.com/keys/microsoft.asc | apt-key add - 2>/dev/null \ && apt-get update \ && apt-get install -y azure-cli azure-functions-core-tools @@ -38,3 +46,5 @@ RUN apt-get install -y apt-transport-https curl gnupg2 lsb-release \ RUN apt-get autoremove -y \ && apt-get clean -y \ && rm -rf /var/lib/apt/lists/* +ENV DEBIAN_FRONTEND=dialog + diff --git a/containers/azure-functions-node-lts/.devcontainer/Dockerfile b/containers/azure-functions-node-lts/.devcontainer/Dockerfile index f5dde1fd79..d7b1f3e81b 100644 --- a/containers/azure-functions-node-lts/.devcontainer/Dockerfile +++ b/containers/azure-functions-node-lts/.devcontainer/Dockerfile @@ -5,36 +5,46 @@ FROM mcr.microsoft.com/dotnet/core/sdk:2.1 +# Configure apt +ENV DEBIAN_FRONTEND=noninteractive +RUN apt-get update \ + && apt-get -y install --no-install-recommends apt-utils 2>&1 + # Verify git and needed tools are installed -RUN apt-get update && apt-get -y install git curl tar procps +RUN apt-get -y install \ + git \ + procps \ + curl \ + apt-transport-https \ + gnupg2 \ + lsb-release -# Install Node.js via NVM - See https://github.com/creationix/nvm +# Install Node.js via NVM - See https://github.com/creationix/nvm # Change the "lts/*" in the two lines below to pick a different version -RUN curl -o- https://raw.githubusercontent.com/creationix/nvm/v0.34.0/install.sh | bash \ +RUN curl -so- https://raw.githubusercontent.com/creationix/nvm/v0.34.0/install.sh | bash 2>&1 \ && /bin/bash -c "source $HOME/.nvm/nvm.sh \ - && nvm install lts/* \ - && nvm alias default lts/*" + && nvm install --no-progress lts/* \ + && nvm alias default lts/*" 2>&1 # Install eslint RUN /bin/bash -c "source $HOME/.nvm/nvm.sh && npm install -g eslint" # Install latest yarn -RUN curl -sfSLO --compressed "https://yarnpkg.com/latest.tar.gz" \ - && rm -rf /opt/yarn-* \ - && tar -xzf latest.tar.gz -C /opt/ \ - && ln -snf /opt/yarn-v*/bin/yarn /usr/local/bin/yarn \ - && ln -snf /opt/yarn-v*/bin/yarnpkg /usr/local/bin/yarnpkg \ - && rm latest.tar.gz +RUN curl -sS https://dl.yarnpkg.com/$(lsb_release -is | tr '[:upper:]' '[:lower:]')/pubkey.gpg | apt-key add - 2>/dev/null \ + && echo "deb https://dl.yarnpkg.com/$(lsb_release -is | tr '[:upper:]' '[:lower:]')/ stable main" | tee /etc/apt/sources.list.d/yarn.list \ + && apt-get update \ + && apt-get -y install --no-install-recommends yarn # Install Azure Functions and Azure CLI -RUN apt-get install -y apt-transport-https curl gnupg2 lsb-release \ - && echo "deb [arch=amd64] https://packages.microsoft.com/repos/azure-cli/ $(lsb_release -cs) main" > /etc/apt/sources.list.d/azure-cli.list \ +RUN echo "deb [arch=amd64] https://packages.microsoft.com/repos/azure-cli/ $(lsb_release -cs) main" > /etc/apt/sources.list.d/azure-cli.list \ && echo "deb [arch=amd64] https://packages.microsoft.com/repos/microsoft-debian-$(lsb_release -cs)-prod $(lsb_release -cs) main" > /etc/apt/sources.list.d/dotnetdev.list \ - && curl -L https://packages.microsoft.com/keys/microsoft.asc | apt-key add - \ + && curl -sL https://packages.microsoft.com/keys/microsoft.asc | apt-key add - 2>/dev/null \ && apt-get update \ && apt-get install -y azure-cli azure-functions-core-tools - + # Clean up RUN apt-get autoremove -y \ && apt-get clean -y \ && rm -rf /var/lib/apt/lists/* +ENV DEBIAN_FRONTEND=dialog + diff --git a/containers/javascript-node-8/.devcontainer/Dockerfile b/containers/javascript-node-8/.devcontainer/Dockerfile index 642eea3ac9..a26ebd4cba 100644 --- a/containers/javascript-node-8/.devcontainer/Dockerfile +++ b/containers/javascript-node-8/.devcontainer/Dockerfile @@ -11,16 +11,18 @@ RUN apt-get update \ && apt-get -y install --no-install-recommends apt-utils 2>&1 # Verify git and needed tools are installed -RUN apt-get install -y git curl tar procps +RUN apt-get install -y git procps -# Update Yarn to latest -# See https://github.com/nodejs/docker-node/blob/master/docs/BestPractices.md#upgradingdowngrading-yarn -RUN curl -sfSLO --compressed "https://yarnpkg.com/latest.tar.gz" \ - && rm -rf /opt/yarn-* \ - && tar -xzf latest.tar.gz -C /opt/ \ - && ln -snf /opt/yarn-v*/bin/yarn /usr/local/bin/yarn \ - && ln -snf /opt/yarn-v*/bin/yarnpkg /usr/local/bin/yarnpkg \ - && rm latest.tar.gz +# Remove outdated yarn from /opt and install via package +# so it can be easily updated via apt-get upgrade yarn +RUN rm -rf /opt/yarn-* \ + rm -f /usr/local/bin/yarn \ + rm -f /usr/local/bin/yarnpkg \ + && apt-get install -y curl apt-transport-https lsb-release \ + && curl -sS https://dl.yarnpkg.com/$(lsb_release -is | tr '[:upper:]' '[:lower:]')/pubkey.gpg | apt-key add - 2>/dev/null \ + && echo "deb https://dl.yarnpkg.com/$(lsb_release -is | tr '[:upper:]' '[:lower:]')/ stable main" | tee /etc/apt/sources.list.d/yarn.list \ + && apt-get update \ + && apt-get -y install --no-install-recommends yarn # Install eslint RUN npm install -g eslint diff --git a/containers/javascript-node-lts-mongo/.devcontainer/Dockerfile b/containers/javascript-node-lts-mongo/.devcontainer/Dockerfile index 2a512fafe3..4b4fc36e7b 100644 --- a/containers/javascript-node-lts-mongo/.devcontainer/Dockerfile +++ b/containers/javascript-node-lts-mongo/.devcontainer/Dockerfile @@ -13,8 +13,16 @@ RUN apt-get update \ # Verify git and process tools are installed RUN apt-get install -y git procps -# Update yarn -RUN npm install -g yarn +# Remove outdated yarn from /opt and install via package +# so it can be easily updated via apt-get upgrade yarn +RUN rm -rf /opt/yarn-* \ + rm -f /usr/local/bin/yarn \ + rm -f /usr/local/bin/yarnpkg \ + && apt-get install -y curl apt-transport-https lsb-release \ + && curl -sS https://dl.yarnpkg.com/$(lsb_release -is | tr '[:upper:]' '[:lower:]')/pubkey.gpg | apt-key add - 2>/dev/null \ + && echo "deb https://dl.yarnpkg.com/$(lsb_release -is | tr '[:upper:]' '[:lower:]')/ stable main" | tee /etc/apt/sources.list.d/yarn.list \ + && apt-get update \ + && apt-get -y install --no-install-recommends yarn # Install eslint RUN npm install -g eslint diff --git a/containers/javascript-node-lts/.devcontainer/Dockerfile b/containers/javascript-node-lts/.devcontainer/Dockerfile index 3036424a10..72558fb76e 100644 --- a/containers/javascript-node-lts/.devcontainer/Dockerfile +++ b/containers/javascript-node-lts/.devcontainer/Dockerfile @@ -11,16 +11,18 @@ RUN apt-get update \ && apt-get -y install --no-install-recommends apt-utils 2>&1 # Verify git and needed tools are installed -RUN apt-get install -y git curl tar procps +RUN apt-get install -y git procps -# Update Yarn to latest -# See https://github.com/nodejs/docker-node/blob/master/docs/BestPractices.md#upgradingdowngrading-yarn -RUN curl -sfSLO --compressed "https://yarnpkg.com/latest.tar.gz" \ - && rm -rf /opt/yarn-* \ - && tar -xzf latest.tar.gz -C /opt/ \ - && ln -snf /opt/yarn-v*/bin/yarn /usr/local/bin/yarn \ - && ln -snf /opt/yarn-v*/bin/yarnpkg /usr/local/bin/yarnpkg \ - && rm latest.tar.gz +# Remove outdated yarn from /opt and install via package +# so it can be easily updated via apt-get upgrade yarn +RUN rm -rf /opt/yarn-* \ + rm -f /usr/local/bin/yarn \ + rm -f /usr/local/bin/yarnpkg \ + && apt-get install -y curl apt-transport-https lsb-release \ + && curl -sS https://dl.yarnpkg.com/$(lsb_release -is | tr '[:upper:]' '[:lower:]')/pubkey.gpg | apt-key add - 2>/dev/null \ + && echo "deb https://dl.yarnpkg.com/$(lsb_release -is | tr '[:upper:]' '[:lower:]')/ stable main" | tee /etc/apt/sources.list.d/yarn.list \ + && apt-get update \ + && apt-get -y install --no-install-recommends yarn # Install eslint RUN npm install -g eslint diff --git a/containers/typescript-node-8/.devcontainer/Dockerfile b/containers/typescript-node-8/.devcontainer/Dockerfile index 32abce7f69..a87ef6ae22 100644 --- a/containers/typescript-node-8/.devcontainer/Dockerfile +++ b/containers/typescript-node-8/.devcontainer/Dockerfile @@ -11,16 +11,18 @@ RUN apt-get update \ && apt-get -y install --no-install-recommends apt-utils 2>&1 # Verify git and needed tools are installed -RUN apt-get install -y git curl tar procps +RUN apt-get install -y git procps -# Update Yarn to latest -# See https://github.com/nodejs/docker-node/blob/master/docs/BestPractices.md#upgradingdowngrading-yarn -RUN curl -sfSLO --compressed "https://yarnpkg.com/latest.tar.gz" \ - && rm -rf /opt/yarn-* \ - && tar -xzf latest.tar.gz -C /opt/ \ - && ln -snf /opt/yarn-v*/bin/yarn /usr/local/bin/yarn \ - && ln -snf /opt/yarn-v*/bin/yarnpkg /usr/local/bin/yarnpkg \ - && rm latest.tar.gz +# Remove outdated yarn from /opt and install via package +# so it can be easily updated via apt-get upgrade yarn +RUN rm -rf /opt/yarn-* \ + rm -f /usr/local/bin/yarn \ + rm -f /usr/local/bin/yarnpkg \ + && apt-get install -y curl apt-transport-https lsb-release \ + && curl -sS https://dl.yarnpkg.com/$(lsb_release -is | tr '[:upper:]' '[:lower:]')/pubkey.gpg | apt-key add - 2>/dev/null \ + && echo "deb https://dl.yarnpkg.com/$(lsb_release -is | tr '[:upper:]' '[:lower:]')/ stable main" | tee /etc/apt/sources.list.d/yarn.list \ + && apt-get update \ + && apt-get -y install --no-install-recommends yarn # Install tslint and typescript RUN npm install -g tslint typescript diff --git a/containers/typescript-node-lts/.devcontainer/Dockerfile b/containers/typescript-node-lts/.devcontainer/Dockerfile index 3b9fd65107..279bf4d948 100644 --- a/containers/typescript-node-lts/.devcontainer/Dockerfile +++ b/containers/typescript-node-lts/.devcontainer/Dockerfile @@ -11,16 +11,18 @@ RUN apt-get update \ && apt-get -y install --no-install-recommends apt-utils 2>&1 # Verify git and needed tools are installed -RUN apt-get install -y git curl tar procps +RUN apt-get install -y git procps -# Update Yarn to latest -# See https://github.com/nodejs/docker-node/blob/master/docs/BestPractices.md#upgradingdowngrading-yarn -RUN curl -sfSLO --compressed "https://yarnpkg.com/latest.tar.gz" \ - && rm -rf /opt/yarn-* \ - && tar -xzf latest.tar.gz -C /opt/ \ - && ln -snf /opt/yarn-v*/bin/yarn /usr/local/bin/yarn \ - && ln -snf /opt/yarn-v*/bin/yarnpkg /usr/local/bin/yarnpkg \ - && rm latest.tar.gz +# Remove outdated yarn from /opt and install via package +# so it can be easily updated via apt-get upgrade yarn +RUN rm -rf /opt/yarn-* \ + rm -f /usr/local/bin/yarn \ + rm -f /usr/local/bin/yarnpkg \ + && apt-get install -y curl apt-transport-https lsb-release \ + && curl -sS https://dl.yarnpkg.com/$(lsb_release -is | tr '[:upper:]' '[:lower:]')/pubkey.gpg | apt-key add - 2>/dev/null \ + && echo "deb https://dl.yarnpkg.com/$(lsb_release -is | tr '[:upper:]' '[:lower:]')/ stable main" | tee /etc/apt/sources.list.d/yarn.list \ + && apt-get update \ + && apt-get -y install --no-install-recommends yarn # Install tslint and typescript RUN npm install -g tslint typescript