1
+ FROM mcr.microsoft.com/powershell:mariner-2.0-arm64
2
+
3
+ ARG REPOSITORY=PSGallery
4
+ ARG MODULE=Az
5
+ ARG CONFIG=config
6
+ ARG AZURERM_CONTEXT_SETTINGS=AzureRmContextSettings.json
7
+ ARG AZURE=/root/.Azure
8
+ ARG VCS_REF="none"
9
+ ARG BUILD_DATE=
10
+ ARG VERSION=
11
+ ARG LATEST=
12
+ ARG BLOB_URL=
13
+ ARG IMAGE_NAME=mcr.microsoft.com/azure-powershell:${VERSION}-mariner-2.0
14
+
15
+ ENV AZUREPS_HOST_ENVIRONMENT="dockerImage/${VERSION}-mariner-2.0"
16
+
17
+ LABEL maintainer="Azure PowerShell Team <
[email protected] >" \
18
+ readme.md="http://aka.ms/azpsdockerreadme" \
19
+ description="This Dockerfile will install the latest release of Azure PowerShell." \
20
+ org.label-schema.build-date=${BUILD_DATE} \
21
+ org.label-schema.usage="http://aka.ms/azpsdocker" \
22
+ org.label-schema.url="http://aka.ms/azpsdockerreadme" \
23
+ org.label-schema.vcs-url="https://github.com/Azure/azure-powershell" \
24
+ org.label-schema.name="azure powershell" \
25
+ org.label-schema.vendor="Azure PowerShell" \
26
+ org.label-schema.version=${VERSION} \
27
+ org.label-schema.schema-version="1.0" \
28
+ org.label-schema.vcs-ref=${VCS_REF} \
29
+ org.label-schema.docker.cmd="docker run --rm ${IMAGE_NAME} pwsh -c '\$PSVERSIONTABLE'" \
30
+ org.label-schema.docker.cmd.devel="docker run -it --rm -e 'DebugPreference=Continue' ${IMAGE_NAME} pwsh" \
31
+ org.label-schema.docker.cmd.test="currently not available" \
32
+ org.label-schema.docker.cmd.help="docker run --rm ${IMAGE_NAME} pwsh -c Get-Help"
33
+
34
+ RUN if [ "${LATEST}" = True ] ; then \
35
+ # install latest azure-powershell from BLOB
36
+ pwsh -Command Invoke-WebRequest -uri ${BLOB_URL} -OutFile latest.tar.gz && \
37
+ mkdir latest && \
38
+ tdnf install -y tar gzip && \
39
+ tdnf clean all && \
40
+ tar -zxvf ./latest.tar.gz -C ./latest && \
41
+ pwsh -Command ./latest/InstallModule.ps1 ;\
42
+ else \
43
+ # install old azure-powershell from PSGallery
44
+ pwsh -Command Set-PSRepository -Name ${REPOSITORY} -InstallationPolicy Trusted && \
45
+ pwsh -Command Install-Module -Name ${MODULE} -RequiredVersion ${VERSION} -Scope AllUsers -Repository ${REPOSITORY} && \
46
+ pwsh -Command Set-PSRepository -Name ${REPOSITORY} -InstallationPolicy Untrusted ;\
47
+ fi
48
+
49
+ # create AzureRmContextSettings.json before it was generated
50
+ COPY ${CONFIG}/${AZURERM_CONTEXT_SETTINGS} ${AZURE}/${AZURERM_CONTEXT_SETTINGS}
51
+
52
+ CMD [ "pwsh" ]
0 commit comments