Skip to content

Install Azure CLI on Alpine Linux #19591

@jiasli

Description

@jiasli

Users frequently face issues while installing Azure CLI on Alpine Linux docker containers (#7437, #8863, #9167, #4352) , this issue serves as an official installation guide. We will consider moving it to the How to install the Azure CLI official document if it is proven to be useful.

Azure CLI official docker image

The official Azure CLI docker image is built upon Alpine Linux. We recommend using it whenever possible. You may also take the Dockerfile as a reference.

Install Azure CLI step-by-step

Select base image

python:alpine

The official Python docker image is preferred as the base image.

$ docker run -it --rm python:alpine sh

alpine

If you would like to use the original official Alpine docker image, you need to install pip and python:

$ docker run -it --rm alpine
# apk add py3-pip

Install dependencies

As Alpine Linux is not manylinux2010 (or greater) compatible, using pip to install libraries like cryptography will fail without underlying dependencies. Install dependencies with:

# apk add gcc musl-dev python3-dev libffi-dev openssl-dev cargo make

See https://cryptography.io/en/latest/installation/#building-cryptography-on-linux

Install Azure CLI

Simply upgrade pip and use pip to install Azure CLI:

# pip install --upgrade pip
# pip install azure-cli

Use Dockerfile

Here are the Dockerfiles you may use as a starting point:

Create Dockerfile

python:alpine as base image

FROM python:alpine
RUN apk add gcc musl-dev python3-dev libffi-dev openssl-dev cargo make
RUN pip install --upgrade pip
RUN pip install azure-cli
CMD sh

alpine as base image

FROM alpine
RUN apk add py3-pip
RUN apk add gcc musl-dev python3-dev libffi-dev openssl-dev cargo make
RUN pip install --upgrade pip
RUN pip install azure-cli
CMD sh

Build the image

$ docker build --tag azure-cli-alpine-test .

Run az commands

$ docker run -it --rm azure-cli-alpine-test az --version

Metadata

Metadata

Assignees

Type

No type

Projects

No projects

Relationships

None yet

Development

No branches or pull requests

Issue actions