Skip to content

Bump alpine from 3.8 to 3.10.0 in /release/preview/alpine/dependabot #244

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 2 additions & 2 deletions .dependabot/config.yml
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ version: 1

update_configs:
- package_manager: "docker"
directory: "/release/preview/alpine/dependabot"
directory: "/release/preview/alpine39/dependabot"
update_schedule: "daily"

- package_manager: "docker"
Expand All @@ -16,7 +16,7 @@ update_configs:
update_schedule: "daily"

- package_manager: "docker"
directory: "/release/preview/fedora28/dependabot"
directory: "/release/preview/fedora/dependabot"
update_schedule: "daily"

- package_manager: "docker"
Expand Down
4 changes: 2 additions & 2 deletions build.ps1
Original file line number Diff line number Diff line change
Expand Up @@ -441,11 +441,11 @@ End {
if($GenerateTagsYaml.IsPresent)
{
Write-Output "repos:"
foreach($repo in $tagGroups.Keys)
foreach($repo in $tagGroups.Keys | Sort-Object)
{
Write-Output " - repoName: $repo"
Write-Output " tagGroups:"
foreach($tag in $tagGroups.$repo)
foreach($tag in $tagGroups.$repo | Sort-Object -Property dockerfile)
{
Write-Output " - tags: [$($tag.Tags -join ', ')]"
Write-Output " osVersion: $($tag.osVersion)"
Expand Down
Original file line number Diff line number Diff line change
@@ -1,14 +1,14 @@
# Copyright (c) Microsoft Corporation. All rights reserved.
# Licensed under the MIT License.

# return objects representing the tags we need to base the xenial image on
# return objects representing the tags we need to base the Alpine image on

# The versions of xenial we care about
# The versions of Alpine we care about, for this dockerfile
$shortTags = @('3.8')

$parent = Join-Path -Path $PSScriptRoot -ChildPath '..'
$repoRoot = Join-Path -path (Join-Path -Path $parent -ChildPath '..') -ChildPath '..'
$modulePath = Join-Path -Path $repoRoot -ChildPath 'tools\getDockerTags'
Import-Module $modulePath

Get-DockerTags -ShortTags $shortTags -Image "alpine" -FullTagFilter '^3.8$' -OnlyShortTags
Get-DockerTags -ShortTags $shortTags -Image "alpine" -FullTagFilter '^3.\d$' -OnlyShortTags
File renamed without changes.
Original file line number Diff line number Diff line change
Expand Up @@ -3,4 +3,4 @@

# Dummy docker image to trigger dependabot PRs

FROM alpine:3.8
FROM alpine:3.10.0
109 changes: 109 additions & 0 deletions release/preview/alpine39/docker/Dockerfile
Original file line number Diff line number Diff line change
@@ -0,0 +1,109 @@
# Copyright (c) Microsoft Corporation. All rights reserved.
# Licensed under the MIT License.

# Docker image file that describes an Alpine3.x image with PowerShell installed from .tar.gz file(s)

# Define arg(s) needed for the From statement
ARG fromTag=3.9
ARG imageRepo=alpine

FROM ${imageRepo}:${fromTag} AS installer-env

# Define Args for the needed to add the package
ARG PS_VERSION=6.2.0-preview.3
ARG PS_PACKAGE=powershell-${PS_VERSION}-linux-alpine-x64.tar.gz
ARG PS_PACKAGE_URL=https://github.com/PowerShell/PowerShell/releases/download/v${PS_VERSION}/${PS_PACKAGE}
ARG PS_INSTALL_VERSION=7-preview

# Download the Linux tar.gz and save it
ADD ${PS_PACKAGE_URL} /tmp/linux.tar.gz

# define the folder we will be installing PowerShell to
ENV PS_INSTALL_FOLDER=/opt/microsoft/powershell/$PS_INSTALL_VERSION

# Create the install folder
RUN mkdir -p ${PS_INSTALL_FOLDER}

# Unzip the Linux tar.gz
RUN tar zxf /tmp/linux.tar.gz -C ${PS_INSTALL_FOLDER}

# Start a new stage so we lose all the tar.gz layers from the final image
FROM ${imageRepo}:${fromTag}

# Copy only the files we need from the previous stage
COPY --from=installer-env ["/opt/microsoft/powershell", "/opt/microsoft/powershell"]

# Define Args and Env needed to create links
ARG PS_INSTALL_VERSION=7-preview
ENV PS_INSTALL_FOLDER=/opt/microsoft/powershell/$PS_INSTALL_VERSION \
\
# Define ENVs for Localization/Globalization
DOTNET_SYSTEM_GLOBALIZATION_INVARIANT=false \
LC_ALL=en_US.UTF-8 \
LANG=en_US.UTF-8 \
# set a fixed location for the Module analysis cache
PSModuleAnalysisCachePath=/var/cache/microsoft/powershell/PSModuleAnalysisCache/ModuleAnalysisCache

# Install dotnet dependencies and ca-certificates
RUN apk add --no-cache \
ca-certificates \
less \
\
# PSReadline/console dependencies
ncurses-terminfo-base \
\
# .NET Core dependencies
krb5-libs \
libgcc \
libintl \
libssl1.1 \
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This is the only line that changed

libstdc++ \
tzdata \
userspace-rcu \
zlib \
icu-libs \
&& apk -X https://dl-cdn.alpinelinux.org/alpine/edge/main add --no-cache \
lttng-ust \
\
# Create the pwsh symbolic link that points to powershell
&& ln -s ${PS_INSTALL_FOLDER}/pwsh /usr/bin/pwsh \
\
# Create the pwsh-preview symbolic link that points to powershell
&& ln -s ${PS_INSTALL_FOLDER}/pwsh /usr/bin/pwsh-preview \
# Give all user execute permissions and remove write permissions for others
&& chmod a+x,o-w ${PS_INSTALL_FOLDER}/pwsh \
# intialize powershell module cache
&& pwsh \
-NoLogo \
-NoProfile \
-Command " \
\$ErrorActionPreference = 'Stop' ; \
\$ProgressPreference = 'SilentlyContinue' ; \
while(!(Test-Path -Path \$env:PSModuleAnalysisCachePath)) { \
Write-Host "'Waiting for $env:PSModuleAnalysisCachePath'" ; \
Start-Sleep -Seconds 6 ; \
}"

# Define args needed only for the labels
ARG PS_VERSION=6.2.0-preview.2
ARG IMAGE_NAME=mcr.microsoft.com/powershell:preview-alpine-3.8
ARG VCS_REF="none"

# Add label last as it's just metadata and uses a lot of parameters
LABEL maintainer="PowerShell Team <powershellteam@hotmail.com>" \
readme.md="https://github.com/PowerShell/PowerShell/blob/master/docker/README.md" \
description="This Dockerfile will install the latest release of PowerShell." \
org.label-schema.usage="https://github.com/PowerShell/PowerShell/tree/master/docker#run-the-docker-image-you-built" \
org.label-schema.url="https://github.com/PowerShell/PowerShell/blob/master/docker/README.md" \
org.label-schema.vcs-url="https://github.com/PowerShell/PowerShell-Docker" \
org.label-schema.name="powershell" \
org.label-schema.vendor="PowerShell" \
org.label-schema.vcs-ref=${VCS_REF} \
org.label-schema.version=${PS_VERSION} \
org.label-schema.schema-version="1.0" \
org.label-schema.docker.cmd="docker run ${IMAGE_NAME} pwsh -c '$psversiontable'" \
org.label-schema.docker.cmd.devel="docker run ${IMAGE_NAME}" \
org.label-schema.docker.cmd.test="docker run ${IMAGE_NAME} pwsh -c Invoke-Pester" \
org.label-schema.docker.cmd.help="docker run ${IMAGE_NAME} pwsh -c Get-Help"

CMD [ "pwsh" ]
14 changes: 14 additions & 0 deletions release/preview/alpine39/getLatestTag.ps1
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
# Copyright (c) Microsoft Corporation. All rights reserved.
# Licensed under the MIT License.

# return objects representing the tags we need to base the Alpine image on

# The versions of Alpine we care about, for this dockerfile
$shortTags = @('3.9','3.10')

$parent = Join-Path -Path $PSScriptRoot -ChildPath '..'
$repoRoot = Join-Path -path (Join-Path -Path $parent -ChildPath '..') -ChildPath '..'
$modulePath = Join-Path -Path $repoRoot -ChildPath 'tools\getDockerTags'
Import-Module $modulePath

Get-DockerTags -ShortTags $shortTags -Image "alpine" -FullTagFilter '^3.\d\d?$' -OnlyShortTags
15 changes: 15 additions & 0 deletions release/preview/alpine39/meta.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
{
"IsLinux" : true,
"UseLinuxVersion": false,
"PackageFormat": "powershell-${PS_VERSION}-linux-alpine-x64.tar.gz",
"osVersion": "Alpine",
"tagTemplates": [
"#psversion#-alpine-#tag#",
"preview-alpine-#shorttag#"
],
"SkipGssNtlmSspTests": true,
"SubImage": "test-deps",
"TestProperties": {
"size": 165
}
}
57 changes: 57 additions & 0 deletions release/preview/alpine39/test-deps/docker/Dockerfile
Original file line number Diff line number Diff line change
@@ -0,0 +1,57 @@
# Docker image file that describes an Alpine image with PowerShell and test dependencies

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

no changes in this file

ARG BaseImage=mcr.microsoft.com/powershell:alpine-3.9

FROM node:10.15.3-alpine as node

# Do nothing, just added to borrow the already built node files.

FROM ${BaseImage}

ENV NODE_VERSION 10.15.3
ENV YARN_VERSION=1.13.0
ENV NVM_DIR="/root/.nvm"

# workaround for Alpine to run in Azure DevOps
ENV NODE_NO_WARNINGS=1

# Copy node and yarn into image
COPY --from=node /usr/local/bin/node /usr/local/bin/node
COPY --from=node /opt/yarn-v${YARN_VERSION} /opt/yarn-v${YARN_VERSION}

RUN apk add --no-cache --virtual .pipeline-deps readline linux-pam \
&& apk add \
bash \
sudo \
shadow \
openssl \
curl \
&& apk del .pipeline-deps \
&& ln -s /opt/yarn-v$YARN_VERSION/bin/yarn /usr/local/bin/yarn \
&& ln -s /opt/yarn-v$YARN_VERSION/bin/yarnpkg /usr/local/bin/yarnpkg

# Define args needed only for the labels
ARG VCS_REF="none"
ARG IMAGE_NAME=mcr.microsoft.com/powershell/test-deps:alpine-3.8
ARG PS_VERSION=6.2.0

LABEL maintainer="PowerShell Team <powershellteam@hotmail.com>" \
readme.md="https://github.com/PowerShell/PowerShell/blob/master/docker/README.md" \
description="This Dockerfile will install the latest release of PowerShell and tools needed for runing CI/CD container jobs." \
org.label-schema.usage="https://github.com/PowerShell/PowerShell/tree/master/docker#run-the-docker-image-you-built" \
org.label-schema.url="https://github.com/PowerShell/PowerShell/blob/master/docker/README.md" \
org.label-schema.vcs-url="https://github.com/PowerShell/PowerShell-Docker" \
org.label-schema.name="powershell" \
org.label-schema.vendor="PowerShell" \
org.label-schema.version=${PS_VERSION} \
org.label-schema.schema-version="1.0" \
org.label-schema.vcs-ref=${VCS_REF} \
org.label-schema.docker.cmd="docker run ${IMAGE_NAME} pwsh -c '$psversiontable'" \
org.label-schema.docker.cmd.devel="docker run ${IMAGE_NAME}" \
org.label-schema.docker.cmd.test="docker run ${IMAGE_NAME} pwsh -c Invoke-Pester" \
org.label-schema.docker.cmd.help="docker run ${IMAGE_NAME} pwsh -c Get-Help" \
com.azure.dev.pipelines.agent.handler.node.path="/usr/local/bin/node"

# Use PowerShell as the default shell
# Use array to avoid Docker prepending /bin/sh -c
CMD [ "pwsh" ]
16 changes: 16 additions & 0 deletions release/preview/alpine39/test-deps/meta.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
{
"IsLinux" : true,
"UseLinuxVersion": false,
"SkipGssNtlmSspTests": true,
"osVersion": "Alpine ${fromTag}",
"tagTemplates": [
"preview-alpine-#shorttag#"
],
"OptionalTests": [
"test-deps",
"test-deps-musl"
],
"TestProperties": {
"size": 212
}
}
2 changes: 1 addition & 1 deletion release/preview/fedora/meta.json
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
"IsLinux" : true,
"UseLinuxVersion": false,
"PackageFormat": "powershell${previewTag}-${PS_VERSION}-1.rhel.7.x86_64.rpm",
"osVersion": "Fedora 28",
"osVersion": "Fedora",
"SkipGssNtlmSspTests": false,
"tagTemplates": [
"#psversion#-fedora-#tag#",
Expand Down
2 changes: 1 addition & 1 deletion release/preview/fedora/test-deps/meta.json
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
{
"IsLinux" : true,
"UseLinuxVersion": false,
"osVersion": "Fedora 28",
"osVersion": "Fedora ${fromTag}",
"SkipGssNtlmSspTests": false,
"tagTemplates": [
"preview-fedora-#shorttag#"
Expand Down
14 changes: 14 additions & 0 deletions vsts-ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -57,6 +57,20 @@ jobs:
name: alpine
imagename: alpine
stable: true
preview: false

- template: .vsts-ci/phase.yml
parameters:
name: alpine38
imagename: alpine38
stable: false
preview: true

- template: .vsts-ci/phase.yml
parameters:
name: alpine39
imagename: alpine39
stable: false
preview: true

- template: .vsts-ci/phase.yml
Expand Down