Skip to content

Commit 2414ee1

Browse files
authored
Add fedora and alpine test-deps images (#212)
Add fedora and alpine test-deps images
1 parent 30a4bfe commit 2414ee1

38 files changed

Lines changed: 476 additions & 67 deletions

File tree

build.ps1

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -64,7 +64,7 @@ param(
6464
$All,
6565

6666
[string]
67-
$ImageName = 'powershell.local',
67+
$ImageName = 'ps.local',
6868

6969
[string]
7070
$Repository = 'powershell',

release/preview/alpine/meta.json

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,5 +7,9 @@
77
"#psversion#-alpine-#tag#",
88
"preview-alpine-#shorttag#"
99
],
10-
"SkipGssNtlmSspTests": true
10+
"SkipGssNtlmSspTests": true,
11+
"SubImage": "test-deps",
12+
"TestProperties": {
13+
"size": 165
14+
}
1115
}
Lines changed: 49 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,49 @@
1+
# Docker image file that describes an Alpine image with PowerShell and test dependencies
2+
3+
ARG BaseImage=mcr.microsoft.com/powershell:alpine-3.8
4+
5+
FROM node:10.15.3-alpine as node
6+
7+
# Do nothing, just added to borrow the already built node files.
8+
9+
FROM ${BaseImage}
10+
11+
ENV NODE_VERSION 10.15.3
12+
ENV YARN_VERSION=1.13.0
13+
ENV NVM_DIR="/root/.nvm"
14+
15+
# Copy node and yarn into image
16+
COPY --from=node /usr/local/bin/node /usr/local/bin/node
17+
COPY --from=node /opt/yarn-v${YARN_VERSION} /opt/yarn-v${YARN_VERSION}
18+
19+
RUN apk add --no-cache --virtual .pipeline-deps readline linux-pam \
20+
&& apk add bash sudo shadow \
21+
&& apk del .pipeline-deps \
22+
&& ln -s /opt/yarn-v$YARN_VERSION/bin/yarn /usr/local/bin/yarn \
23+
&& ln -s /opt/yarn-v$YARN_VERSION/bin/yarnpkg /usr/local/bin/yarnpkg
24+
25+
# Define args needed only for the labels
26+
ARG VCS_REF="none"
27+
ARG IMAGE_NAME=mcr.microsoft.com/powershell/test-deps:alpine-3.8
28+
ARG PS_VERSION=6.2.0
29+
30+
LABEL maintainer="PowerShell Team <powershellteam@hotmail.com>" \
31+
readme.md="https://github.com/PowerShell/PowerShell/blob/master/docker/README.md" \
32+
description="This Dockerfile will install the latest release of PowerShell and tools needed for runing CI/CD container jobs." \
33+
org.label-schema.usage="https://github.com/PowerShell/PowerShell/tree/master/docker#run-the-docker-image-you-built" \
34+
org.label-schema.url="https://github.com/PowerShell/PowerShell/blob/master/docker/README.md" \
35+
org.label-schema.vcs-url="https://github.com/PowerShell/PowerShell-Docker" \
36+
org.label-schema.name="powershell" \
37+
org.label-schema.vendor="PowerShell" \
38+
org.label-schema.version=${PS_VERSION} \
39+
org.label-schema.schema-version="1.0" \
40+
org.label-schema.vcs-ref=${VCS_REF} \
41+
org.label-schema.docker.cmd="docker run ${IMAGE_NAME} pwsh -c '$psversiontable'" \
42+
org.label-schema.docker.cmd.devel="docker run ${IMAGE_NAME}" \
43+
org.label-schema.docker.cmd.test="docker run ${IMAGE_NAME} pwsh -c Invoke-Pester" \
44+
org.label-schema.docker.cmd.help="docker run ${IMAGE_NAME} pwsh -c Get-Help" \
45+
com.azure.dev.pipelines.agent.handler.node.path="/usr/local/bin/node"
46+
47+
# Use PowerShell as the default shell
48+
# Use array to avoid Docker prepending /bin/sh -c
49+
CMD [ "pwsh" ]
Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
{
2+
"IsLinux" : true,
3+
"UseLinuxVersion": false,
4+
"SkipGssNtlmSspTests": true,
5+
"osVersion": "Alpine 3.8",
6+
"tagTemplates": [
7+
"preview-alpine-#shorttag#"
8+
],
9+
"OptionalTests": [
10+
"test-deps",
11+
"test-deps-musl"
12+
],
13+
"TestProperties": {
14+
"size": 212
15+
}
16+
}

release/preview/centos7/meta.json

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,5 +7,8 @@
77
"#psversion#-centos-#tag#",
88
"preview-centos-#shorttag#"
99
],
10-
"SubImage": "test-deps"
10+
"SubImage": "test-deps",
11+
"TestProperties": {
12+
"size": 475
13+
}
1114
}

release/preview/centos7/test-deps/meta.json

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,5 +8,8 @@
88
"SubRepository": "test-deps",
99
"OptionalTests": [
1010
"test-deps"
11-
]
11+
],
12+
"TestProperties": {
13+
"size": 497
14+
}
1215
}

release/preview/debian9/meta.json

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,5 +8,8 @@
88
"#psversion#-debian-#tag#",
99
"preview-debian-#shorttag#"
1010
],
11-
"SubImage": "test-deps"
11+
"SubImage": "test-deps",
12+
"TestProperties": {
13+
"size": 314
14+
}
1215
}

release/preview/debian9/test-deps/meta.json

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,5 +9,8 @@
99
"OptionalTests": [
1010
"test-deps",
1111
"test-deps-debian"
12-
]
12+
],
13+
"TestProperties": {
14+
"size": 316
15+
}
1316
}

release/preview/fedora28/meta.json

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,5 +7,9 @@
77
"tagTemplates": [
88
"#psversion#-fedora-#tag#",
99
"preview-fedora-#shorttag#"
10-
]
10+
],
11+
"SubImage": "test-deps",
12+
"TestProperties": {
13+
"size": 586
14+
}
1115
}
Lines changed: 33 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,33 @@
1+
# Docker image file that describes an Fedora 28 image with PowerShell and test dependencies
2+
ARG BaseImage=mcr.microsoft.com/powershell:fedora-28
3+
4+
FROM ${BaseImage}
5+
6+
# Install dependencies and clean up
7+
RUN dnf install -y sudo \
8+
&& dnf clean all
9+
10+
# Define args needed only for the labels
11+
ARG VCS_REF="none"
12+
ARG IMAGE_NAME=mcr.microsoft.com/powershell/test-deps:fedora-28
13+
ARG PS_VERSION=6.2.0
14+
15+
LABEL maintainer="PowerShell Team <powershellteam@hotmail.com>" \
16+
readme.md="https://github.com/PowerShell/PowerShell/blob/master/docker/README.md" \
17+
description="This Dockerfile will install the latest release of PowerShell and tools needed for runing CI/CD container jobs." \
18+
org.label-schema.usage="https://github.com/PowerShell/PowerShell/tree/master/docker#run-the-docker-image-you-built" \
19+
org.label-schema.url="https://github.com/PowerShell/PowerShell/blob/master/docker/README.md" \
20+
org.label-schema.vcs-url="https://github.com/PowerShell/PowerShell-Docker" \
21+
org.label-schema.name="powershell" \
22+
org.label-schema.vendor="PowerShell" \
23+
org.label-schema.version=${PS_VERSION} \
24+
org.label-schema.schema-version="1.0" \
25+
org.label-schema.vcs-ref=${VCS_REF} \
26+
org.label-schema.docker.cmd="docker run ${IMAGE_NAME} pwsh -c '$psversiontable'" \
27+
org.label-schema.docker.cmd.devel="docker run ${IMAGE_NAME}" \
28+
org.label-schema.docker.cmd.test="docker run ${IMAGE_NAME} pwsh -c Invoke-Pester" \
29+
org.label-schema.docker.cmd.help="docker run ${IMAGE_NAME} pwsh -c Get-Help"
30+
31+
# Use PowerShell as the default shell
32+
# Use array to avoid Docker prepending /bin/sh -c
33+
CMD [ "pwsh" ]

0 commit comments

Comments
 (0)