Skip to content

Commit

Permalink
tools: Reduce size of image
Browse files Browse the repository at this point in the history
Move the components from tools image to base image
to reduce the size of tools image.

Signed-off-by: Suraj Deshmukh <suraj.deshmukh@microsoft.com>
  • Loading branch information
surajssd committed Aug 21, 2024
1 parent 11e65d2 commit 5a0bcae
Show file tree
Hide file tree
Showing 2 changed files with 33 additions and 30 deletions.
34 changes: 33 additions & 1 deletion linux/base.Dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand All @@ -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
#
RUN ln -s /usr/bin/python3 /usr/bin/python && \
ln -s /usr/bin/node /usr/bin/nodejs
29 changes: 0 additions & 29 deletions linux/tools.Dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -31,34 +31,9 @@ RUN az aks install-cli \
&& chmod +x /usr/local/bin/kubectl \
&& chmod +x /usr/local/bin/kubelogin

# 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
ENV AZD_SKIP_UPDATE_CHECK 1
RUN curl -fsSL https://aka.ms/install-azd.sh | bash

RUN mkdir -p /usr/cloudshell
WORKDIR /usr/cloudshell

# Install Office 365 CLI templates
RUN npm install -q -g @pnp/cli-microsoft365

# Install Bicep CLI
RUN 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

# Temp: fix ansible modules. Proper fix is to update base layer to use regular python for Ansible.
RUN 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

# Powershell telemetry
ENV POWERSHELL_DISTRIBUTION_CHANNEL=CloudShell \
# don't tell users to upgrade, they can't
Expand All @@ -77,10 +52,6 @@ RUN /usr/bin/pwsh -File ./powershell/setupPowerShell.ps1 -image Base && \
# Remove su so users don't have su access by default.
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

# Add user's home directories to PATH at the front so they can install tools which
# override defaults
# Add dotnet tools to PATH so users can install a tool using dotnet tools and can execute that command from any directory
Expand Down

0 comments on commit 5a0bcae

Please sign in to comment.