From bc865b6608a0fe52ff3b418cb8f06e9d978a7cd6 Mon Sep 17 00:00:00 2001 From: Suraj Deshmukh Date: Thu, 29 Aug 2024 10:44:25 -0700 Subject: [PATCH] Move few tools to base-image to reduce tools img size Move few components from tools image to base image to reduce the size of tools image. Following components are moved to base image: - Ansible galaxy - vscode - Azure Developer CLI - Bicep Signed-off-by: Suraj Deshmukh --- linux/base.Dockerfile | 34 +++++++++++++++++++++++++++++++++- linux/tools.Dockerfile | 4 ++-- 2 files changed, 35 insertions(+), 3 deletions(-) diff --git a/linux/base.Dockerfile b/linux/base.Dockerfile index b738a8f2..449124c9 100644 --- a/linux/base.Dockerfile +++ b/linux/base.Dockerfile @@ -155,7 +155,12 @@ RUN chmod 755 /usr/local/bin/ansible* \ && /bin/bash -c "source ansible/bin/activate && pip3 list --outdated --format=freeze | cut -d '=' -f1 | xargs -n1 pip3 install -U && pip3 install ansible && pip3 install pywinrm\>\=0\.2\.2 && deactivate" \ && rm -rf ~/.local/share/virtualenv/ \ && rm -rf ~/.cache/pip/ \ - && ansible-galaxy collection install azure.azcollection --force -p /usr/share/ansible/collections + && ansible-galaxy collection install azure.azcollection --force -p /usr/share/ansible/collections \ + # Temp: Proper fix is to use regular python for Ansible. + && mkdir -p /usr/share/ansible/collections/ansible_collections/azure/azcollection/ \ + && wget -nv -q -O /usr/share/ansible/collections/ansible_collections/azure/azcollection/requirements.txt https://raw.githubusercontent.com/ansible-collections/azure/dev/requirements.txt \ + && /opt/ansible/bin/python -m pip install -r /usr/share/ansible/collections/ansible_collections/azure/azcollection/requirements.txt + # Install latest version of Istio ENV ISTIO_ROOT /usr/local/istio-latest @@ -177,3 +182,30 @@ RUN gem install bundler --no-document --clear-sources --force \ ENV GEM_HOME=~/bundle ENV BUNDLE_PATH=~/bundle ENV PATH=$PATH:$GEM_HOME/bin:$BUNDLE_PATH/gems/bin + +# Install vscode +RUN wget -nv -O vscode.tar.gz "https://code.visualstudio.com/sha/download?build=insider&os=cli-alpine-x64" \ + && tar -xvzf vscode.tar.gz \ + && mv ./code-insiders /bin/vscode \ + && rm vscode.tar.gz + +# Install azure-developer-cli (azd) +ENV AZD_IN_CLOUDSHELL=1 \ + AZD_SKIP_UPDATE_CHECK=1 +RUN curl -fsSL https://aka.ms/install-azd.sh | bash && \ + # + # Install Office 365 CLI templates + # + npm install -q -g @pnp/cli-microsoft365 && \ + # + # Install Bicep CLI + # + curl -Lo bicep https://github.com/Azure/bicep/releases/latest/download/bicep-linux-x64 \ + && chmod +x ./bicep \ + && mv ./bicep /usr/local/bin/bicep \ + && bicep --help && \ + # + # Add soft links + # + ln -s /usr/bin/python3 /usr/bin/python && \ + ln -s /usr/bin/node /usr/bin/nodejs diff --git a/linux/tools.Dockerfile b/linux/tools.Dockerfile index 99c0b91a..1057b573 100644 --- a/linux/tools.Dockerfile +++ b/linux/tools.Dockerfile @@ -78,8 +78,8 @@ RUN /usr/bin/pwsh -File ./powershell/setupPowerShell.ps1 -image Base && \ RUN rm -f ./linux/Dockerfile && rm -f /bin/su #Add soft links -RUN ln -s /usr/bin/python3 /usr/bin/python -RUN ln -s /usr/bin/node /usr/bin/nodejs +RUN ln -sf /usr/bin/python3 /usr/bin/python +RUN ln -sf /usr/bin/node /usr/bin/nodejs # Add user's home directories to PATH at the front so they can install tools which # override defaults