diff --git a/docker/release/amazonlinux/Dockerfile b/docker/release/amazonlinux/Dockerfile index cd34e9fd9..328f4365e 100644 --- a/docker/release/amazonlinux/Dockerfile +++ b/docker/release/amazonlinux/Dockerfile @@ -2,9 +2,25 @@ FROM amazonlinux:latest -LABEL maintainer="PowerShell Team " -LABEL readme.md="https://github.com/PowerShell/PowerShell/blob/master/docker/README.md" -LABEL description="This Dockerfile will install the latest release of PS." +ARG POWERSHELL_VERSION=6.0.0-beta.6 +ARG IMAGE_NAME=microsoft/powershell:amazonlinux + +LABEL maintainer="PowerShell Team " \ + readme.md="https://github.com/PowerShell/PowerShell/blob/master/docker/README.md" \ + description="This Dockerfile will install the latest release of PS." \ + 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" \ + org.label-schema.name="powershell" \ + org.label-schema.vendor="PowerShell" \ + org.label-schema.version=${POWERSHELL_VERSION} \ + org.label-schema.schema-version="1.0" \ + org.label-schema.docker.cmd="docker run ${IMAGE_NAME} powershell -c '$psversiontable'" \ + org.label-schema.docker.cmd.devel="docker run ${IMAGE_NAME}" \ + org.label-schema.docker.cmd.test="docker run ${IMAGE_NAME} powershell -c Invoke-Pester" \ + org.label-schema.docker.cmd.help="docker run ${IMAGE_NAME} powershell -c Get-Help" + +# TODO: addd LABEL org.label-schema.vcs-ref=${VCS_REF} # Setup the locale ENV LANG en_US.UTF-8 @@ -14,6 +30,7 @@ RUN localedef --charmap=UTF-8 --inputfile=en_US $LANG # Install dependencies and clean up RUN yum install -y \ curl \ + libuuid.x86_64 \ && yum clean all # Download and configure Microsoft Repository config file diff --git a/docker/release/centos7/Dockerfile b/docker/release/centos7/Dockerfile index c7eaa0af5..ce64aa91d 100644 --- a/docker/release/centos7/Dockerfile +++ b/docker/release/centos7/Dockerfile @@ -2,9 +2,26 @@ FROM centos:7 -LABEL maintainer="PowerShell Team " -LABEL readme.md="https://github.com/PowerShell/PowerShell/blob/master/docker/README.md" -LABEL description="This Dockerfile will install the latest release of PS." +ARG POWERSHELL_VERSION=6.0.0-beta.6 +ARG IMAGE_NAME=microsoft/powershell:centos7 + +LABEL maintainer="PowerShell Team " \ + readme.md="https://github.com/PowerShell/PowerShell/blob/master/docker/README.md" \ + description="This Dockerfile will install the latest release of PS." \ + 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" \ + org.label-schema.name="powershell" \ + org.label-schema.vendor="PowerShell" \ + org.label-schema.version=${POWERSHELL_VERSION} \ + org.label-schema.schema-version="1.0" \ + org.label-schema.docker.cmd="docker run ${IMAGE_NAME} powershell -c '$psversiontable'" \ + org.label-schema.docker.cmd.devel="docker run ${IMAGE_NAME}" \ + org.label-schema.docker.cmd.test="docker run ${IMAGE_NAME} powershell -c Invoke-Pester" \ + org.label-schema.docker.cmd.help="docker run ${IMAGE_NAME} powershell -c Get-Help" + + +# TODO: addd LABEL org.label-schema.vcs-ref=${VCS_REF} # Setup the locale ENV LANG en_US.UTF-8 diff --git a/docker/release/fedora24/Dockerfile b/docker/release/fedora24/Dockerfile index 08737d4ef..0d76ac36f 100644 --- a/docker/release/fedora24/Dockerfile +++ b/docker/release/fedora24/Dockerfile @@ -1,7 +1,4 @@ FROM fedora:24 -LABEL maintainer="PowerShell Team " -LABEL readme.md="https://github.com/PowerShell/PowerShell/blob/master/docker/README.md" -LABEL description="This Dockerfile will install the latest release of PS." # TODO: Until a release of PowerShell for Fedora 24 is available, # this Dockerfile installs the CentOS 7 version for compatibility. @@ -9,6 +6,24 @@ LABEL description="This Dockerfile will install the latest release of PS." ARG POWERSHELL_VERSION=6.0.0-beta.6 ARG POWERSHELL_RELEASE=v6.0.0-beta.6 ARG POWERSHELL_PACKAGE=powershell-6.0.0_beta.6-1.el7.x86_64.rpm +ARG IMAGE_NAME=microsoft/powershell:fedora24 + +LABEL maintainer="PowerShell Team " \ + readme.md="https://github.com/PowerShell/PowerShell/blob/master/docker/README.md" \ + description="This Dockerfile will install the latest release of PS." \ + 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" \ + org.label-schema.name="powershell" \ + org.label-schema.vendor="PowerShell" \ + org.label-schema.version=${POWERSHELL_VERSION} \ + org.label-schema.schema-version="1.0" \ + org.label-schema.docker.cmd="docker run ${IMAGE_NAME} powershell -c '$psversiontable'" \ + org.label-schema.docker.cmd.devel="docker run ${IMAGE_NAME}" \ + org.label-schema.docker.cmd.test="docker run ${IMAGE_NAME} powershell -c Invoke-Pester" \ + org.label-schema.docker.cmd.help="docker run ${IMAGE_NAME} powershell -c Get-Help" + +# TODO: addd LABEL org.label-schema.vcs-ref=${VCS_REF} # The CentOS 7 release relies on an older version of libicu, so we'll be downloading it # from the University of Kent (GB) mirror service. diff --git a/docker/release/nanoserver-insider/Dockerfile b/docker/release/nanoserver-insider/Dockerfile index 26975d750..5c2302689 100755 --- a/docker/release/nanoserver-insider/Dockerfile +++ b/docker/release/nanoserver-insider/Dockerfile @@ -26,23 +26,22 @@ ARG VCS_REF="none" ARG PS_VERSION=6.0.0-beta.6 ARG IMAGE_NAME=microsoft/nanoserver-insider-powershell -LABEL maintainer="PowerShell Team " -LABEL readme.md="https://github.com/PowerShell/PowerShell/blob/master/docker/README.md" -LABEL description="This Dockerfile will install the latest release of PS." -# Usage on URL to Usage -LABEL org.label-schema.usage="https://github.com/PowerShell/PowerShell/tree/master/docker#run-the-docker-image-you-built" -LABEL org.label-schema.url="https://github.com/PowerShell/PowerShell/blob/master/docker/README.md" -LABEL org.label-schema.vcs-url="https://github.com/PowerShell/PowerShell" -# Image friendly name -LABEL org.label-schema.name="nanoserver-insider-powershell" -LABEL org.label-schema.vcs-ref=${VCS_REF} -LABEL org.label-schema.vendor="PowerShell" -LABEL org.label-schema.version=${PS_VERSION} -LABEL org.label-schema.schema-version="1.0" -LABEL org.label-schema.docker.cmd="docker run ${IMAGE_NAME} powershell -c '$psversiontable'" -LABEL org.label-schema.docker.cmd.devel="docker run ${IMAGE_NAME}" -LABEL org.label-schema.docker.cmd.test="docker run ${IMAGE_NAME} powershell -c Invoke-Pester" -LABEL org.label-schema.docker.cmd.help="docker run ${IMAGE_NAME} powershell -c Get-Help" +LABEL maintainer="PowerShell Team " ` + readme.md="https://github.com/PowerShell/PowerShell/blob/master/docker/README.md" ` + description="This Dockerfile will install the latest release of PS." ` + 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" ` + org.label-schema.name="powershell" ` + org.label-schema.vcs-ref=${VCS_REF} ` + org.label-schema.vendor="PowerShell" ` + org.label-schema.version=${PS_VERSION} ` + org.label-schema.schema-version="1.0" ` + org.label-schema.docker.cmd="docker run ${IMAGE_NAME} powershell -c '$psversiontable'" ` + org.label-schema.docker.cmd.devel="docker run ${IMAGE_NAME}" ` + org.label-schema.docker.cmd.test="docker run ${IMAGE_NAME} powershell -c Invoke-Pester" ` + org.label-schema.docker.cmd.help="docker run ${IMAGE_NAME} powershell -c Get-Help" + # Copy Powershell from the installer containter ENV ProgramFiles C:\Program Files COPY --from=installer-env ["\\PowerShell\\", "$ProgramFiles\\PowerShell"] diff --git a/docker/release/nanoserver/Dockerfile b/docker/release/nanoserver/Dockerfile index 411fdc965..8d5376fe5 100644 --- a/docker/release/nanoserver/Dockerfile +++ b/docker/release/nanoserver/Dockerfile @@ -1,11 +1,26 @@ # escape=` FROM microsoft/nanoserver:latest -LABEL maintainer="PowerShell Team " -LABEL readme.md="https://github.com/PowerShell/PowerShell/blob/master/docker/README.md" -LABEL description="This Dockerfile will install the latest release of PS." - ARG POWERSHELL_ZIP=https://github.com/PowerShell/PowerShell/releases/download/v6.0.0-beta.6/PowerShell-6.0.0-beta.6-win10-win2016-x64.zip +ARG POWERSHELL_VERSION=6.0.0-beta.6 +ARG IMAGE_NAME=microsoft/powershell:nanoserver + +LABEL maintainer="PowerShell Team " ` + readme.md="https://github.com/PowerShell/PowerShell/blob/master/docker/README.md" ` + description="This Dockerfile will install the latest release of PS." ` + 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" ` + org.label-schema.name="powershell" ` + org.label-schema.vendor="PowerShell" ` + org.label-schema.version=${POWERSHELL_VERSION} ` + org.label-schema.schema-version="1.0" ` + org.label-schema.docker.cmd="docker run ${IMAGE_NAME} powershell -c '$psversiontable'" ` + org.label-schema.docker.cmd.devel="docker run ${IMAGE_NAME}" ` + org.label-schema.docker.cmd.test="docker run ${IMAGE_NAME} powershell -c Invoke-Pester" ` + org.label-schema.docker.cmd.help="docker run ${IMAGE_NAME} powershell -c Get-Help" + +# TODO: addd LABEL org.label-schema.vcs-ref=${VCS_REF} RUN setx /M PATH "%ProgramFiles%\PowerShell\latest;%PATH%" # Setup PowerShell - Log-to > C:\Docker.log diff --git a/docker/release/opensuse42.1/Dockerfile b/docker/release/opensuse42.1/Dockerfile deleted file mode 100644 index 06e882d93..000000000 --- a/docker/release/opensuse42.1/Dockerfile +++ /dev/null @@ -1,30 +0,0 @@ -# Docker image file that describes an OpenSUSE 42.1 (AKA leap 42.1) image with PowerShell installed from PowerShell Release -FROM opensuse:42.1 - -LABEL maintainer="PowerShell Team " -LABEL readme.md="https://github.com/PowerShell/PowerShell/blob/master/docker/README.md" -LABEL description="This Dockerfile will install the latest release of PS." - -ARG POWERSHELL_VERSION=6.0.0_beta.6 -ARG POWERSHELL_RELEASE=v6.0.0-beta.6 -ARG FORK=PowerShell -ARG POWERSHELL_PACKAGE=powershell-$POWERSHELL_VERSION-1.suse.42.1.x86_64.rpm - -# Update, Install packages to generate localedef and CURL which is used by RPM -# add the Microsoft key as trusted to install packgages using RPM -# Install PowerShell then clean up -RUN zypper --non-interactive update --skip-interactive \ - && zypper --non-interactive install \ - glibc-locale \ - glibc-i18ndata \ - curl \ - && rpm --import https://packages.microsoft.com/keys/microsoft.asc \ - && zypper --non-interactive install https://github.com/$FORK/PowerShell/releases/download/$POWERSHELL_RELEASE/$POWERSHELL_PACKAGE \ - && zypper --non-interactive clean --all - -# Setup the locale -ENV LANG en_US.UTF-8 -ENV LC_ALL $LANG -RUN localedef --charmap=UTF-8 --inputfile=en_US $LANG - -CMD [ "powershell" ] diff --git a/docker/release/opensuse42.2/Dockerfile b/docker/release/opensuse42.2/Dockerfile new file mode 100644 index 000000000..906e8006c --- /dev/null +++ b/docker/release/opensuse42.2/Dockerfile @@ -0,0 +1,44 @@ +# Docker image file that describes an OpenSUSE 42.1 (AKA leap 42.1) image with PowerShell installed from PowerShell Release +FROM opensuse:42.2 + +ARG POWERSHELL_VERSION=6.0.0_beta.6 +ARG POWERSHELL_RELEASE=v6.0.0-beta.6 +ARG FORK=PowerShell +ARG POWERSHELL_PACKAGE=powershell-$POWERSHELL_VERSION-1.suse.42.1.x86_64.rpm +ARG IMAGE_NAME=microsoft/powershell:opensuse42.2 + +LABEL maintainer="PowerShell Team " \ + readme.md="https://github.com/PowerShell/PowerShell/blob/master/docker/README.md" \ + description="This Dockerfile will install the latest release of PS." \ + 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" \ + org.label-schema.name="powershell" \ + org.label-schema.vendor="PowerShell" \ + org.label-schema.version=${POWERSHELL_VERSION} \ + org.label-schema.schema-version="1.0" \ + org.label-schema.docker.cmd="docker run ${IMAGE_NAME} powershell -c '$psversiontable'" \ + org.label-schema.docker.cmd.devel="docker run ${IMAGE_NAME}" \ + org.label-schema.docker.cmd.test="docker run ${IMAGE_NAME} powershell -c Invoke-Pester" \ + org.label-schema.docker.cmd.help="docker run ${IMAGE_NAME} powershell -c Get-Help" + +# TODO: addd LABEL org.label-schema.vcs-ref=${VCS_REF} + +# Update, Install packages to generate localedef and CURL which is used by RPM +# add the Microsoft key as trusted to install packgages using RPM +# Install PowerShell then clean up +RUN zypper --non-interactive update --skip-interactive \ + && zypper --non-interactive install \ + glibc-locale \ + glibc-i18ndata \ + curl \ + && rpm --import https://packages.microsoft.com/keys/microsoft.asc \ + && zypper --non-interactive install https://github.com/$FORK/PowerShell/releases/download/$POWERSHELL_RELEASE/$POWERSHELL_PACKAGE \ + && zypper --non-interactive clean --all + +# Setup the locale +ENV LANG en_US.UTF-8 +ENV LC_ALL $LANG +RUN localedef --charmap=UTF-8 --inputfile=en_US $LANG + +CMD [ "powershell" ] diff --git a/docker/release/ubuntu14.04/Dockerfile b/docker/release/ubuntu14.04/Dockerfile index 9e7164aab..b55280d83 100644 --- a/docker/release/ubuntu14.04/Dockerfile +++ b/docker/release/ubuntu14.04/Dockerfile @@ -2,9 +2,25 @@ FROM ubuntu:trusty -LABEL maintainer="PowerShell Team " -LABEL readme.md="https://github.com/PowerShell/PowerShell/blob/master/docker/README.md" -LABEL description="This Dockerfile will install the latest release of PS." +ARG POWERSHELL_VERSION=6.0.0-beta.6 +ARG IMAGE_NAME=microsoft/powershell:ubuntu14.04 + +LABEL maintainer="PowerShell Team " \ + readme.md="https://github.com/PowerShell/PowerShell/blob/master/docker/README.md" \ + description="This Dockerfile will install the latest release of PS." \ + 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" \ + org.label-schema.name="powershell" \ + org.label-schema.vendor="PowerShell" \ + org.label-schema.version=${POWERSHELL_VERSION} \ + org.label-schema.schema-version="1.0" \ + org.label-schema.docker.cmd="docker run ${IMAGE_NAME} powershell -c '$psversiontable'" \ + org.label-schema.docker.cmd.devel="docker run ${IMAGE_NAME}" \ + org.label-schema.docker.cmd.test="docker run ${IMAGE_NAME} powershell -c Invoke-Pester" \ + org.label-schema.docker.cmd.help="docker run ${IMAGE_NAME} powershell -c Get-Help" + +# TODO: addd LABEL org.label-schema.vcs-ref=${VCS_REF} # Setup the locale ENV LANG en_US.UTF-8 diff --git a/docker/release/ubuntu16.04/Dockerfile b/docker/release/ubuntu16.04/Dockerfile index b5c0882fc..6158456fc 100644 --- a/docker/release/ubuntu16.04/Dockerfile +++ b/docker/release/ubuntu16.04/Dockerfile @@ -2,9 +2,25 @@ FROM ubuntu:xenial -LABEL maintainer="PowerShell Team " -LABEL readme.md="https://github.com/PowerShell/PowerShell/blob/master/docker/README.md" -LABEL description="This Dockerfile will install the latest release of PS." +ARG POWERSHELL_VERSION=6.0.0-beta.6 +ARG IMAGE_NAME=microsoft/powershell:ubuntu16.04 + +LABEL maintainer="PowerShell Team " \ + readme.md="https://github.com/PowerShell/PowerShell/blob/master/docker/README.md" \ + description="This Dockerfile will install the latest release of PS." \ + 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" \ + org.label-schema.name="powershell" \ + org.label-schema.vendor="PowerShell" \ + org.label-schema.version=${POWERSHELL_VERSION} \ + org.label-schema.schema-version="1.0" \ + org.label-schema.docker.cmd="docker run ${IMAGE_NAME} powershell -c '$psversiontable'" \ + org.label-schema.docker.cmd.devel="docker run ${IMAGE_NAME}" \ + org.label-schema.docker.cmd.test="docker run ${IMAGE_NAME} powershell -c Invoke-Pester" \ + org.label-schema.docker.cmd.help="docker run ${IMAGE_NAME} powershell -c Get-Help" + +# TODO: addd LABEL org.label-schema.vcs-ref=${VCS_REF} # Install dependencies and clean up RUN apt-get update \ diff --git a/docker/release/windowsservercore/Dockerfile b/docker/release/windowsservercore/Dockerfile index 17c756a7d..79588e323 100644 --- a/docker/release/windowsservercore/Dockerfile +++ b/docker/release/windowsservercore/Dockerfile @@ -1,11 +1,26 @@ # escape=` FROM microsoft/windowsservercore:latest -LABEL maintainer="PowerShell Team " -LABEL readme.md="https://github.com/PowerShell/PowerShell/blob/master/docker/README.md" -LABEL description="This Dockerfile will install the latest release of PS." - ARG POWERSHELL_MSI=https://github.com/PowerShell/PowerShell/releases/download/v6.0.0-beta.6/PowerShell-6.0.0-beta.6-win10-win2016-x64.msi +ARG POWERSHELL_VERSION=6.0.0-beta.6 +ARG IMAGE_NAME=microsoft/powershell:windowsservercore + +LABEL maintainer="PowerShell Team " ` + readme.md="https://github.com/PowerShell/PowerShell/blob/master/docker/README.md" ` + description="This Dockerfile will install the latest release of PS." ` + 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" ` + org.label-schema.name="powershell" ` + org.label-schema.vendor="PowerShell" ` + org.label-schema.version=${POWERSHELL_VERSION} ` + org.label-schema.schema-version="1.0" ` + org.label-schema.docker.cmd="docker run ${IMAGE_NAME} powershell -c '$psversiontable'" ` + org.label-schema.docker.cmd.devel="docker run ${IMAGE_NAME}" ` + org.label-schema.docker.cmd.test="docker run ${IMAGE_NAME} powershell -c Invoke-Pester" ` + org.label-schema.docker.cmd.help="docker run ${IMAGE_NAME} powershell -c Get-Help" + +# TODO: addd LABEL org.label-schema.vcs-ref=${VCS_REF} RUN setx /M PATH "%ProgramFiles%\PowerShell\latest;%PATH%" # Setup PowerShell - Log-to > C:\Docker.log diff --git a/docker/tests/containerTestCommon.psm1 b/docker/tests/containerTestCommon.psm1 index cae80e8e9..071c98f3e 100644 --- a/docker/tests/containerTestCommon.psm1 +++ b/docker/tests/containerTestCommon.psm1 @@ -65,7 +65,7 @@ function Invoke-Docker # Return a list of Linux Container Test Cases function Get-LinuxContainer { - foreach($os in 'amazonlinux','centos7','opensuse42.1','ubuntu14.04','ubuntu16.04') + foreach($os in 'amazonlinux','centos7','opensuse42.2','ubuntu14.04','ubuntu16.04') { Write-Output @{ Name = $os