用例:
我们需要一个启用了 ssh 的 docker 镜像,我们可以访问 Azure CLI 并使用 PowerShell。
目前:
我们正在使用基于 Ubuntu 的 ssh 映像并按照以下方式安装所需的资产
## INSTALL SSH
FROM rastasheep/ubuntu-sshd:14.04 AS ssh-img
## INSTALL AZURE CLI
RUN apt update && apt install -y curl && curl -sL https://aka.ms/InstallAzureCLIDeb | bash ; \
## INSTALL POWERSHELL
RUN apt-get install -y wget apt-transport-https software-properties-common && wget -q https://packages.microsoft.com/config/ubuntu/16.04/packages-microsoft-prod.deb && dpkg -i packages-microsoft-prod.deb && apt-get update && apt-get install -y powershell \
但是,我们希望整体缩小图像尺寸并使用现有图像。 因此,我尝试使用基于 Alpine 的 ssh 图像代替如下所示,但没有一个可以解决多个不同的问题。 有什么建议吗?
使用 Azure CLI 映像
FROM ghcr.io/linuxserver/openssh-server AS ssh-img
COPY --from=mcr.microsoft.com/azure-cli:latest /usr/local/bin /usr/local/bin
WORKDIR /app
EXPOSE 2222
手动安装 CLI
FROM ghcr.io/linuxserver/openssh-server AS ssh-img
WORKDIR /app
EXPOSE 2222
RUN apk update && \
apk add bash py-pip && \
apk add --virtual=build gcc libffi-dev musl-dev openssl-dev python3-dev make && \
pip install azure-cli && \
apk del --purge build