From a4b0ab6e5c29c3dffd82d8c5782e22cd19b3a4df Mon Sep 17 00:00:00 2001 From: Sarath Chandra Bussa Date: Fri, 31 May 2024 16:30:11 +0530 Subject: [PATCH] Changes for Oryx pipeline migration. (#2430) * SDKs and images onboard to onebranch * removed V2 folder * removed versions.txt * not needed file * these files are not auto generated * gitignore * Tests and other changes (#2441) * tests changes * fix * empty * these files are not auto generated * gitignore * tests fix * githubactions fix * tests fix * fixes * changes * fixes * changes * changes * jamstackInstallNode * fixes * commits * changes * fixes * fixes * fix versions * publish sdks * remove * changes * azcopy * add creds * hugo * bug fix * overrite logic fix * command not found fix * syntax fix * enabling a few tests * fix * overrite * enabled a few tests --------- Co-authored-by: Sarath chandra Bussa * build images * fix docker file * remove set x and e --------- Co-authored-by: Sarath chandra Bussa --- .gitignore | 25 - build/__sdkStorageConstants.sh | 8 - build/__variables.sh | 1 - build/buildPlatformBinaries.sh | 13 +- build/buildTestBuildImages.sh | 211 +- build/testBuildImages.sh | 6 - build/testIntegration.sh | 28 +- build/testRunTimeImages.sh | 6 - .../Automation/Commons/SdkStorageHelper.cs | 14 - build/tools/Automation/Constants.cs | 1 - images/__sdkStorageConstants.sh | 8 - .../azureFunctions.JamStack.Dockerfile | 51 +- images/build/Dockerfiles/cli.Dockerfile | 31 +- .../build/Dockerfiles/cliBuilder.Dockerfile | 56 +- images/build/Dockerfiles/full.Dockerfile | 35 +- .../Dockerfiles/gitHubActions.Dockerfile | 55 +- .../commonbase/nodeRuntimeBase.Dockerfile | 19 +- .../commonbase/phpFpmRuntimeBase.Dockerfile | 71 + .../commonbase/phpRuntimeBase.Dockerfile | 71 + .../dotnetcore/6.0/bullseye.Dockerfile | 104 + .../runtime/dotnetcore/6.0/buster.Dockerfile | 108 + .../dotnetcore/8.0/bookworm.Dockerfile | 108 + .../dotnetcore/8.0/bullseye.Dockerfile | 107 + images/runtime/node/18/bullseye.Dockerfile | 75 + images/runtime/node/20/bookworm.Dockerfile | 47 +- images/runtime/node/20/bullseye.Dockerfile | 76 + images/runtime/php-fpm/.gitignore | 4 - .../runtime/php-fpm/8.1/bullseye.Dockerfile | 437 +++++ images/runtime/php-fpm/8.1/buster.Dockerfile | 439 +++++ .../runtime/php-fpm/8.2/bullseye.Dockerfile | 436 ++++ images/runtime/php-fpm/8.2/buster.Dockerfile | 436 ++++ .../runtime/php-fpm/8.3/bookworm.Dockerfile | 432 ++++ .../runtime/php-fpm/8.3/bullseye.Dockerfile | 438 +++++ images/runtime/php-fpm/8.3/buster.Dockerfile | 438 +++++ images/runtime/php/.gitignore | 2 - images/runtime/php/8.1/bullseye.Dockerfile | 462 +++++ images/runtime/php/8.1/buster.Dockerfile | 464 +++++ images/runtime/php/8.2/bullseye.Dockerfile | 461 +++++ images/runtime/php/8.2/buster.Dockerfile | 460 +++++ images/runtime/php/8.3/bookworm.Dockerfile | 461 +++++ images/runtime/php/8.3/bullseye.Dockerfile | 461 +++++ images/runtime/php/8.3/buster.Dockerfile | 462 +++++ images/runtime/python/template.Dockerfile | 30 +- images/yarn-v1.22.15.tar.gz | Bin 0 -> 1246203 bytes platforms/__common.sh | 22 +- platforms/nodejs/Dockerfile | 10 +- platforms/nodejs/build.sh | 5 +- platforms/nodejs/getNode.sh | 30 +- platforms/php/Dockerfile | 54 +- platforms/php/buildPhp.sh | 103 +- platforms/php/composer-setup.php | 1748 +++++++++++++++++ platforms/php/composer/Dockerfile | 94 +- platforms/php/prereqs/build.sh | 13 +- platforms/python/Dockerfile | 47 +- platforms/python/buildPython.sh | 54 +- platforms/python/prereqs/build.sh | 2 +- .../SdkStorageConstants.cs | 9 +- .../ShellScriptBuilder.cs | 15 - .../DotNetCoreSdkStorageVersionProvider.cs | 3 +- .../Helpers/ListBlobsHelper.cs | 8 +- .../Options/BuildScriptGeneratorOptions.cs | 2 - .../PlatformInstallerBase.cs | 1 - .../SdkStorageVersionProviderBase.cs | 5 +- .../BuildScriptGeneratorOptionsSetup.cs | 1 - src/BuildScriptGeneratorCli/SettingsKeys.cs | 1 - .../CommandTests/ExecCommandTest.cs | 4 +- .../CommandTests/PlatformsCommandTest.cs | 28 +- .../PrepareEnvironmentCommandTest.cs | 16 +- .../DotNetCoreDynamicInstallTest.cs | 10 +- .../Node/NodeDynamicInstallationTest.cs | 12 +- .../Php/PhpDynamicInstallationTest.cs | 146 +- .../PulledBuildImageTypeTest.cs | 4 +- .../PulledBuildOsTypeTest.cs | 20 +- .../Python/PythonDynamicInstallationTest.cs | 13 +- .../VersionInformationTest.cs | 2 +- .../ProdStorageAccountSanityTest.cs | 24 - ...ityTest.cs => StorageAccountSanityTest.cs} | 16 +- .../StorageAccountSanityTestBase.cs | 15 +- .../DotNetCoreLibraryVerificationTest.cs | 12 +- .../DotNetCore/DotnetCoreImageVersionsTest.cs | 15 +- ...mageCanRunWhenAppInsightsModuleNotFound.cs | 470 ++--- ...odeRuntimeImageContainsRequiredPrograms.cs | 220 +-- ...untimeImageContainsVersionAndCommitInfo.cs | 70 +- .../Node/NodeRuntimeImageOtherTests.cs | 178 +- .../NodeRuntimeImageRunAppUsingConfigJs.cs | 66 +- .../NodeRuntimeImageRunAppUsingConfigYml.cs | 66 +- .../NodeRuntimeImageRunAppUsingProcessJson.cs | 66 +- .../Php-fpm/PhpFpmImageTest.cs | 126 +- .../Php/PhpImageTest.cs | 140 +- .../Python/PythonImagesTests.cs | 14 +- .../Ruby/RubyImagesTest.cs | 210 +- .../EnvironmentVariableListExtensions.cs | 14 +- tests/Oryx.Tests.Common/GitHelper.cs | 13 +- tests/Oryx.Tests.Common/ImageTestHelper.cs | 17 +- tests/Oryx.Tests.Common/TestValueGenerator.cs | 9 +- tests/images/build/Dockerfile | 3 +- tests/images/build/gitHubActions.Dockerfile | 2 +- .../_platformBinariesReleaseTemplate.yml | 41 +- .../templates/_platformBinariesTemplate.yml | 48 +- vsts/scripts/publishFilesToAzureStorage.sh | 28 +- ...blishSdksFromSourceToDestStorageAccount.sh | 153 ++ 101 files changed, 10425 insertions(+), 1751 deletions(-) create mode 100644 images/runtime/commonbase/phpFpmRuntimeBase.Dockerfile create mode 100644 images/runtime/commonbase/phpRuntimeBase.Dockerfile create mode 100644 images/runtime/dotnetcore/6.0/bullseye.Dockerfile create mode 100644 images/runtime/dotnetcore/6.0/buster.Dockerfile create mode 100644 images/runtime/dotnetcore/8.0/bookworm.Dockerfile create mode 100644 images/runtime/dotnetcore/8.0/bullseye.Dockerfile create mode 100644 images/runtime/node/18/bullseye.Dockerfile create mode 100644 images/runtime/node/20/bullseye.Dockerfile delete mode 100644 images/runtime/php-fpm/.gitignore create mode 100644 images/runtime/php-fpm/8.1/bullseye.Dockerfile create mode 100644 images/runtime/php-fpm/8.1/buster.Dockerfile create mode 100644 images/runtime/php-fpm/8.2/bullseye.Dockerfile create mode 100644 images/runtime/php-fpm/8.2/buster.Dockerfile create mode 100644 images/runtime/php-fpm/8.3/bookworm.Dockerfile create mode 100644 images/runtime/php-fpm/8.3/bullseye.Dockerfile create mode 100644 images/runtime/php-fpm/8.3/buster.Dockerfile delete mode 100644 images/runtime/php/.gitignore create mode 100644 images/runtime/php/8.1/bullseye.Dockerfile create mode 100644 images/runtime/php/8.1/buster.Dockerfile create mode 100644 images/runtime/php/8.2/bullseye.Dockerfile create mode 100644 images/runtime/php/8.2/buster.Dockerfile create mode 100644 images/runtime/php/8.3/bookworm.Dockerfile create mode 100644 images/runtime/php/8.3/bullseye.Dockerfile create mode 100644 images/runtime/php/8.3/buster.Dockerfile create mode 100644 images/yarn-v1.22.15.tar.gz create mode 100644 platforms/php/composer-setup.php delete mode 100644 tests/Oryx.Integration.Tests/ProdStorageAccountSanityTest.cs rename tests/Oryx.Integration.Tests/{StagingStorageAccountSanityTest.cs => StorageAccountSanityTest.cs} (55%) create mode 100644 vsts/scripts/publishSdksFromSourceToDestStorageAccount.sh diff --git a/.gitignore b/.gitignore index 5b2428ef3..32e31dc57 100644 --- a/.gitignore +++ b/.gitignore @@ -258,31 +258,6 @@ paket-files/ # .NET global.json for SDK versioning global.json -# Node and .NET Core runtime Dockerfiles, that are auto generated -images/runtime/node/*/Dockerfile -images/runtime/node/*/buster.Dockerfile -images/runtime/node/*/stretch.Dockerfile -images/runtime/node/*/strech.Dockerfile -images/runtime/node/*/bullseye.Dockerfile -images/runtime/dotnetcore/*/Dockerfile -images/runtime/dotnetcore/*/buster.Dockerfile -images/runtime/dotnetcore/*/stretch.Dockerfile -images/runtime/dotnetcore/*/bullseye.Dockerfile -images/runtime/dotnetcore/*/bookworm.Dockerfile -images/runtime/python/*/Dockerfile -images/runtime/python/*/buster.Dockerfile -images/runtime/python/*/stretch.Dockerfile -images/runtime/python/*/bullseye.Dockerfile -images/runtime/php/*/Dockerfile -images/runtime/php/*/buster.Dockerfile -images/runtime/php/*/stretch.Dockerfile -images/runtime/php/*/bullseye.Dockerfile -images/runtime/php-fpm/*/Dockerfile -images/runtime/php-fpm/*/buster.Dockerfile -images/runtime/php-fpm/*/stretch.Dockerfile -images/runtime/php-fpm/*/bullseye.Dockerfile - - # Go packages from GitHub src/startupscriptgenerator/bin/ src/startupscriptgenerator/src/github.com/ diff --git a/build/__sdkStorageConstants.sh b/build/__sdkStorageConstants.sh index 48a76bdab..2902ce6d0 100755 --- a/build/__sdkStorageConstants.sh +++ b/build/__sdkStorageConstants.sh @@ -2,14 +2,6 @@ ENABLE_DYNAMIC_INSTALL_KEY='ENABLE_DYNAMIC_INSTALL' SDK_STORAGE_BASE_URL_KEY_NAME='ORYX_SDK_STORAGE_BASE_URL' -TESTING_SDK_STORAGE_URL_KEY_NAME='ORYX_TEST_SDK_STORAGE_URL' -PRIVATE_STAGING_STORAGE_SAS_TOKEN_KEY='ORYX_SDK_STORAGE_ACCOUNT_ACCESS_TOKEN' -ORYX_KEYVAULT_URI='https://oryx.vault.azure.net' -STAGING_STORAGE_SAS_TOKEN_KEYVAULT_SECRET_NAME='ORYX-SDK-STAGING-PRIVATE-SAS-TOKEN' -PRIVATE_STAGING_SDK_STORAGE_BASE_URL='https://oryxsdksstaging.blob.core.windows.net' -DEV_SDK_STORAGE_BASE_URL='https://oryxsdksdev.blob.core.windows.net' -SANDBOX_SDK_STORAGE_BASE_URL='https://oryxsdkssandbox.blob.core.windows.net' -PRIVATE_SDK_STORAGE_BASE_URL='https://oryxsdksprivate.blob.core.windows.net' PROD_SDK_STORAGE_BASE_URL='https://oryxsdksprod.blob.core.windows.net' PROD_BACKUP_SDK_STORAGE_BASE_URL='https://oryxsdksprodbackup.blob.core.windows.net' PROD_SDK_CDN_STORAGE_BASE_URL='https://oryx-cdn.microsoft.io' diff --git a/build/__variables.sh b/build/__variables.sh index 24311f165..43b960651 100755 --- a/build/__variables.sh +++ b/build/__variables.sh @@ -88,7 +88,6 @@ declare -r BASE_IMAGES_STAGING_REPO="$ACR_DEV_NAME/staging/oryx/base" # Flag to add information to images through labels (example: build number, commit sha) declare -r EMBED_BUILDCONTEXT_IN_IMAGES="${EMBEDBUILDCONTEXTINIMAGES:-false}" -declare -r GIT_COMMIT=$(git rev-parse HEAD) declare -r DOCKER_SYSTEM_PRUNE="${ORYX_DOCKER_SYSTEM_PRUNE:-false}" diff --git a/build/buildPlatformBinaries.sh b/build/buildPlatformBinaries.sh index ef6bfa159..659e7b5a1 100755 --- a/build/buildPlatformBinaries.sh +++ b/build/buildPlatformBinaries.sh @@ -13,33 +13,38 @@ DEBIAN_FLAVOR_TO_BUILD=$2 SDK_STORAGE_ACCOUNT_URL=$3 platformsDir="$REPO_DIR/platforms" -# TODO: find a better place for chmod -chmod +x $platformsDir/golang/getGolangSdk.sh - case $PLATFORM_TO_BUILD in 'dotnet') + chmod +x "$platformsDir/dotnet/getDotNetSdk.sh" "$platformsDir/dotnet/getDotNetSdk.sh" $DEBIAN_FLAVOR_TO_BUILD $SDK_STORAGE_ACCOUNT_URL ;; 'python') + chmod +x "$platformsDir/python/buildPython.sh" "$platformsDir/python/buildPython.sh" $DEBIAN_FLAVOR_TO_BUILD $SDK_STORAGE_ACCOUNT_URL ;; 'php') + chmod +x "$platformsDir/php/buildPhp.sh" "$platformsDir/php/buildPhp.sh" $DEBIAN_FLAVOR_TO_BUILD $SDK_STORAGE_ACCOUNT_URL ;; 'nodejs') + chmod +x "$platformsDir/nodejs/getNode.sh" "$platformsDir/nodejs/getNode.sh" $DEBIAN_FLAVOR_TO_BUILD $SDK_STORAGE_ACCOUNT_URL ;; 'golang') + chmod +x "$platformsDir/golang/getGolangSdk.sh" "$platformsDir/golang/getGolangSdk.sh" $DEBIAN_FLAVOR_TO_BUILD $SDK_STORAGE_ACCOUNT_URL ;; 'ruby') + chmod +x "$platformsDir/ruby/buildRuby.sh" "$platformsDir/ruby/buildRuby.sh" $DEBIAN_FLAVOR_TO_BUILD $SDK_STORAGE_ACCOUNT_URL ;; 'java') + chmod +x "$platformsDir/java/getJavaSdk.sh" "$platformsDir/java/getJavaSdk.sh" $DEBIAN_FLAVOR_TO_BUILD $SDK_STORAGE_ACCOUNT_URL ;; 'maven') + chmod +x "$platformsDir/java/maven/getMaven.sh" "$platformsDir/java/maven/getMaven.sh" $DEBIAN_FLAVOR_TO_BUILD $SDK_STORAGE_ACCOUNT_URL ;; *) echo "Unknown image directory";; -esac \ No newline at end of file +esac diff --git a/build/buildTestBuildImages.sh b/build/buildTestBuildImages.sh index eb52a93b6..90b5f6ff6 100644 --- a/build/buildTestBuildImages.sh +++ b/build/buildTestBuildImages.sh @@ -12,201 +12,38 @@ declare -r REPO_DIR=$( cd $( dirname "$0" ) && cd .. && pwd ) source $REPO_DIR/build/__variables.sh source $REPO_DIR/build/__functions.sh -buildImageDebianFlavor="$1" - -buildImageTagFilter="" - -if [ -n "$TESTINTEGRATIONCASEFILTER" ];then - IFS='&' - read -a splitArr <<< "$TESTINTEGRATIONCASEFILTER" - for val in "${splitArr[@]}"; - do - if [[ "$val" == "build-image="* ]];then - buildImagePrefix="build-image=" - strippedVal=${val#"$buildImagePrefix"} - buildImageTagFilter="$strippedVal" - fi - done -fi - -if [ -n "$buildImageTagFilter" ];then - echo - echo "Filtering test build images by provided build image tag filter '$buildImageTagFilter'" -fi - echo echo "Building build images for tests..." -# Build GitHub Actions stretch build image -if [ -z "$buildImageTagFilter" ] || [ "$buildImageTagFilter" == "github-actions-debian-stretch" ];then - echo "Building stretch based GitHub Action image for tests..." - docker build \ - -t "$ORYXTESTS_BUILDIMAGE_REPO:github-actions-debian-stretch" \ - --build-arg PARENT_IMAGE_BASE=github-actions-debian-stretch \ - -f "$ORYXTESTS_GITHUB_ACTIONS_BUILDIMAGE_DOCKERFILE" \ - . - echo - echo +echo "Building buster based GitHub Action image for tests..." +docker build \ + -t "$ORYXTESTS_BUILDIMAGE_REPO:github-actions-debian-buster" \ + --build-arg PARENT_IMAGE_BASE=$ORYX_TEST_IMAGE_BASE:github-actions-debian-buster-$IMAGE_BUILDNUMBER \ + -f "$ORYXTESTS_GITHUB_ACTIONS_BUILDIMAGE_DOCKERFILE" \ + . - echo "Building image that uses stretch based github action as a base but doesn't have all required environment variables..." - docker build \ - -t "$ORYXTESTS_BUILDIMAGE_REPO:github-actions-debian-stretch-base" \ - --build-arg PARENT_IMAGE_BASE=github-actions-debian-stretch \ - -f "$ORYXTESTS_GITHUB_ACTIONS_ASBASE_BUILDIMAGE_DOCKERFILE" \ - . +echo +echo - echo - echo +echo "Building bullseye based GitHub Action image for tests..." +docker build \ + -t "$ORYXTESTS_BUILDIMAGE_REPO:github-actions-debian-bullseye" \ + --build-arg PARENT_IMAGE_BASE=$ORYX_TEST_IMAGE_BASE:github-actions-debian-bullseye-$IMAGE_BUILDNUMBER \ + -f "$ORYXTESTS_GITHUB_ACTIONS_BUILDIMAGE_DOCKERFILE" \ + . - echo "Building image that uses stretch based github action as a base and has all required environment variables..." - docker build \ - -t "$ORYXTESTS_BUILDIMAGE_REPO:github-actions-debian-stretch-base-withenv" \ - --build-arg PARENT_IMAGE_BASE=github-actions-debian-stretch \ - --build-arg DEBIAN_FLAVOR=stretch \ - -f "$ORYXTESTS_GITHUB_ACTIONS_ASBASE_WITHENV_BUILDIMAGE_DOCKERFILE" \ - . +echo +echo - echo - echo -fi +echo "Building bookworm based GitHub Action image for tests..." +docker build \ + -t "$ORYXTESTS_BUILDIMAGE_REPO:github-actions-debian-bookworm" \ + --build-arg PARENT_IMAGE_BASE=$ORYX_TEST_IMAGE_BASE:github-actions-debian-bookworm-$IMAGE_BUILDNUMBER \ + -f "$ORYXTESTS_GITHUB_ACTIONS_BUILDIMAGE_DOCKERFILE" \ + . -# Build GitHub Actions buster build image -if [ -z "$buildImageTagFilter" ] || [ "$buildImageTagFilter" == "github-actions-debian-buster" ];then - echo "Building buster based GitHub Action image for tests..." - docker build \ - -t "$ORYXTESTS_BUILDIMAGE_REPO:github-actions-debian-buster" \ - --build-arg PARENT_IMAGE_BASE=github-actions-debian-buster \ - -f "$ORYXTESTS_GITHUB_ACTIONS_BUILDIMAGE_DOCKERFILE" \ - . - - echo - echo - - echo "Building image that uses buster based github action as a base but doesn't have all required environment variables..." - docker build \ - -t "$ORYXTESTS_BUILDIMAGE_REPO:github-actions-debian-buster-base" \ - --build-arg PARENT_IMAGE_BASE=github-actions-debian-buster \ - -f "$ORYXTESTS_GITHUB_ACTIONS_ASBASE_BUILDIMAGE_DOCKERFILE" \ - . - - echo - echo - - echo "Building image that uses buster based github action as a base and has all required environment variables..." - docker build \ - -t "$ORYXTESTS_BUILDIMAGE_REPO:github-actions-debian-buster-base-withenv" \ - --build-arg PARENT_IMAGE_BASE=github-actions-debian-buster \ - --build-arg DEBIAN_FLAVOR=buster \ - -f "$ORYXTESTS_GITHUB_ACTIONS_ASBASE_WITHENV_BUILDIMAGE_DOCKERFILE" \ - . - - echo - echo -fi - -# Build GitHub Actions bullseye build image and helper build images -if [ -z "$buildImageTagFilter" ] || [ "$buildImageTagFilter" == "github-actions-debian-bullseye" ];then - echo "Building bullseye based GitHub Action image for tests..." - docker build \ - -t "$ORYXTESTS_BUILDIMAGE_REPO:github-actions-debian-bullseye" \ - --build-arg PARENT_IMAGE_BASE=github-actions-debian-bullseye \ - -f "$ORYXTESTS_GITHUB_ACTIONS_BUILDIMAGE_DOCKERFILE" \ - . - - echo - echo - - echo "Building image that uses bullseye based GitHub Action as a base but doesn't have all required environment variables..." - docker build \ - -t "$ORYXTESTS_BUILDIMAGE_REPO:github-actions-debian-bullseye-base" \ - --build-arg PARENT_IMAGE_BASE=github-actions-debian-bullseye \ - -f "$ORYXTESTS_GITHUB_ACTIONS_ASBASE_BUILDIMAGE_DOCKERFILE" \ - . - - echo - echo - - echo "Building image that uses bullseye based GitHub Action as a base and has all required environment variables..." - docker build \ - -t "$ORYXTESTS_BUILDIMAGE_REPO:github-actions-debian-bullseye-base-withenv" \ - --build-arg PARENT_IMAGE_BASE=github-actions-debian-bullseye \ - --build-arg DEBIAN_FLAVOR=bullseye \ - -f "$ORYXTESTS_GITHUB_ACTIONS_ASBASE_WITHENV_BUILDIMAGE_DOCKERFILE" \ - . - - echo -fi - -# Build GitHub Actions bookworm build image and helper build images -if [ -z "$buildImageTagFilter" ] || [ "$buildImageTagFilter" == "github-actions-debian-bookworm" ];then - echo "Building bookworm based GitHub Action image for tests..." - docker build \ - -t "$ORYXTESTS_BUILDIMAGE_REPO:github-actions-debian-bookworm" \ - --build-arg PARENT_IMAGE_BASE=github-actions-debian-bookworm \ - -f "$ORYXTESTS_GITHUB_ACTIONS_BUILDIMAGE_DOCKERFILE" \ - . - - echo - echo - - echo "Building image that uses bookworm based GitHub Action as a base but doesn't have all required environment variables..." - docker build \ - -t "$ORYXTESTS_BUILDIMAGE_REPO:github-actions-debian-bookworm-base" \ - --build-arg PARENT_IMAGE_BASE=github-actions-debian-bookworm \ - -f "$ORYXTESTS_GITHUB_ACTIONS_ASBASE_BUILDIMAGE_DOCKERFILE" \ - . - - echo - echo - - echo "Building image that uses bookworm based GitHub Action as a base and has all required environment variables..." - docker build \ - -t "$ORYXTESTS_BUILDIMAGE_REPO:github-actions-debian-bookworm-base-withenv" \ - --build-arg PARENT_IMAGE_BASE=github-actions-debian-bookworm \ - --build-arg DEBIAN_FLAVOR=bookworm \ - -f "$ORYXTESTS_GITHUB_ACTIONS_ASBASE_WITHENV_BUILDIMAGE_DOCKERFILE" \ - . - - echo -fi - -# Build latest stretch build image -if [ -z "$buildImageTagFilter" ] || [ "$buildImageTagFilter" == "debian-stretch" ];then - echo "Building stretch based full build image for tests..." - docker build \ - -t "$ORYXTESTS_BUILDIMAGE_REPO:debian-stretch" \ - -f "$ORYXTESTS_BUILDIMAGE_DOCKERFILE" \ - . - - echo - echo -fi - -# Build LTS versions stretch build image -if [ -z "$buildImageTagFilter" ] || [ "$buildImageTagFilter" == "lts-versions-debian-stretch" ];then - echo "Building stretch based LTS versions image for tests..." - docker build \ - -t "$ORYXTESTS_BUILDIMAGE_REPO:lts-versions-debian-stretch" \ - --build-arg PARENT_IMAGE_BASE=lts-versions-debian-stretch \ - -f "$ORYXTESTS_LTS_VERSIONS_BUILDIMAGE_DOCKERFILE" \ - . - - echo - echo -fi - -# Build LTS versions buster build image -if [ -z "$buildImageTagFilter" ] || [ "$buildImageTagFilter" == "lts-versions-debian-buster" ];then - echo "Building buster based LTS versions image for tests..." - docker build \ - -t "$ORYXTESTS_BUILDIMAGE_REPO:lts-versions-debian-buster" \ - --build-arg PARENT_IMAGE_BASE=lts-versions-debian-buster \ - -f "$ORYXTESTS_LTS_VERSIONS_BUILDIMAGE_DOCKERFILE" \ - . - - echo - echo -fi +echo +echo dockerCleanupIfRequested diff --git a/build/testBuildImages.sh b/build/testBuildImages.sh index b70e71cf9..22d34135d 100755 --- a/build/testBuildImages.sh +++ b/build/testBuildImages.sh @@ -14,12 +14,6 @@ declare -r testProjectName="Oryx.BuildImage.Tests" source $REPO_DIR/build/__variables.sh source $REPO_DIR/build/__sdkStorageConstants.sh -if [ -z "$ORYX_TEST_SDK_STORAGE_URL" ]; then - echo - echo "Setting environment variable 'ORYX_TEST_SDK_STORAGE_URL' to default value '$PRIVATE_STAGING_SDK_STORAGE_BASE_URL' for build image tests." - export ORYX_TEST_SDK_STORAGE_URL="$PRIVATE_STAGING_SDK_STORAGE_BASE_URL" -fi - if [ "$1" = "skipBuildingImages" ] then echo diff --git a/build/testIntegration.sh b/build/testIntegration.sh index 76f10b4aa..3533e510d 100755 --- a/build/testIntegration.sh +++ b/build/testIntegration.sh @@ -10,33 +10,6 @@ declare -r REPO_DIR=$( cd $( dirname "$0" ) && cd .. && pwd ) source $REPO_DIR/build/__variables.sh source $REPO_DIR/build/__sdkStorageConstants.sh -if [ -z "$ORYX_TEST_SDK_STORAGE_URL" ]; then - echo - echo "Setting environment variable 'ORYX_TEST_SDK_STORAGE_URL' to default value '$PRIVATE_STAGING_SDK_STORAGE_BASE_URL' for integration tests." - export ORYX_TEST_SDK_STORAGE_URL="$PRIVATE_STAGING_SDK_STORAGE_BASE_URL" -fi - -# When this script is run in CI agent these environment variables are already set -if [ -z "$SQLSERVER_DATABASE_HOST" ]; then - function getSecretFromKeyVault() { - local secretName="$1" - result=`az.cmd keyvault secret show \ - --name "$secretName" \ - --vault-name "oryx" \ - | grep value \ - | awk '{print $NF}' \ - | tr -d '"'` - echo $result - } - - echo - echo Retrieving secrets from Azure Key Vault... - export SQLSERVER_DATABASE_HOST=$(getSecretFromKeyVault "SQLSERVER-DATABASE-HOST") - export SQLSERVER_DATABASE_NAME=$(getSecretFromKeyVault "SQLSERVER-DATABASE-NAME") - export SQLSERVER_DATABASE_USERNAME=$(getSecretFromKeyVault "SQLSERVER-DATABASE-USERNAME") - export SQLSERVER_DATABASE_PASSWORD=$(getSecretFromKeyVault "SQLSERVER-DATABASE-PASSWORD") -fi - echo # This is needed because when we are running tests in multiple agent machines @@ -94,6 +67,7 @@ dotnet test \ $testCaseFilter \ --test-adapter-path:. \ --logger:"xunit;LogFilePath=$ARTIFACTS_DIR/testResults/$testProjectName$integrationTestPlatform.Tests.xml" \ + --verbosity detailed \ -c $BUILD_CONFIGURATION # --blame flag generates an xml file which it drops under the project directory. diff --git a/build/testRunTimeImages.sh b/build/testRunTimeImages.sh index 01fad4438..369608f21 100755 --- a/build/testRunTimeImages.sh +++ b/build/testRunTimeImages.sh @@ -14,12 +14,6 @@ declare -r testProjectName="Oryx.RuntimeImage.Tests" source $REPO_DIR/build/__variables.sh source $REPO_DIR/build/__sdkStorageConstants.sh -if [ -z "$ORYX_TEST_SDK_STORAGE_URL" ]; then - echo - echo "Setting environment variable 'ORYX_TEST_SDK_STORAGE_URL' to default value '$PRIVATE_STAGING_SDK_STORAGE_BASE_URL' for runtime image tests." - export ORYX_TEST_SDK_STORAGE_URL="$PRIVATE_STAGING_SDK_STORAGE_BASE_URL" -fi - if [ "$1" = "skipBuildingImages" ] then echo diff --git a/build/tools/Automation/Commons/SdkStorageHelper.cs b/build/tools/Automation/Commons/SdkStorageHelper.cs index 636b35ad3..f55f7373d 100644 --- a/build/tools/Automation/Commons/SdkStorageHelper.cs +++ b/build/tools/Automation/Commons/SdkStorageHelper.cs @@ -13,7 +13,6 @@ namespace Microsoft.Oryx.Automation.Commons /// /// Gets the SDK storage URL by combining the base URL with a platform-specific suffix. /// If the base URL is not provided, the default base URL will be used. - /// For the staging account, a SAS token is required and will be appended to the URL. /// /// The base URL of the SDK storage. /// The platform-specific suffix URL. @@ -27,19 +26,6 @@ namespace Microsoft.Oryx.Automation.Commons string sdkVersionsUrl = oryxSdkStorageBaseUrl + platformSuffixUrl; - // A SAS token is required for the staging account. - if (sdkVersionsUrl.StartsWith(Constants.OryxSdkStagingStorageBaseUrl)) - { - string sasToken = Environment.GetEnvironmentVariable(Constants.OryxSdkStagingPrivateSasTokenEnvVar); - if (string.IsNullOrEmpty(sasToken)) - { - throw new ArgumentException($"The environment variable {Constants.OryxSdkStagingPrivateSasTokenEnvVar} " + - $"must be provided in order to access {Constants.OryxSdkStagingStorageBaseUrl}"); - } - - sdkVersionsUrl += "&" + sasToken; - } - return sdkVersionsUrl; } diff --git a/build/tools/Automation/Constants.cs b/build/tools/Automation/Constants.cs index 01a470c27..1190f33f7 100644 --- a/build/tools/Automation/Constants.cs +++ b/build/tools/Automation/Constants.cs @@ -11,7 +11,6 @@ namespace Microsoft.Oryx.Automation public const string OryxSdkStorageBaseUrl = "https://oryx-cdn.microsoft.io"; public const string OryxSdkStagingStorageBaseUrl = "https://oryxsdksstaging.blob.core.windows.net"; public const string OryxSdkStorageBaseUrlEnvVar = "ORYX_SDK_STORAGE_BASE_URL"; - public const string OryxSdkStagingPrivateSasTokenEnvVar = "ORYX_SDK_STORAGE_ACCOUNT_ACCESS_TOKEN"; public const string VersionsToBuildTxtFileName = "versionsToBuild.txt"; public const string ConstantsYaml = "constants.yaml"; public static readonly HashSet DebianFlavors = new HashSet() diff --git a/images/__sdkStorageConstants.sh b/images/__sdkStorageConstants.sh index 48a76bdab..2902ce6d0 100644 --- a/images/__sdkStorageConstants.sh +++ b/images/__sdkStorageConstants.sh @@ -2,14 +2,6 @@ ENABLE_DYNAMIC_INSTALL_KEY='ENABLE_DYNAMIC_INSTALL' SDK_STORAGE_BASE_URL_KEY_NAME='ORYX_SDK_STORAGE_BASE_URL' -TESTING_SDK_STORAGE_URL_KEY_NAME='ORYX_TEST_SDK_STORAGE_URL' -PRIVATE_STAGING_STORAGE_SAS_TOKEN_KEY='ORYX_SDK_STORAGE_ACCOUNT_ACCESS_TOKEN' -ORYX_KEYVAULT_URI='https://oryx.vault.azure.net' -STAGING_STORAGE_SAS_TOKEN_KEYVAULT_SECRET_NAME='ORYX-SDK-STAGING-PRIVATE-SAS-TOKEN' -PRIVATE_STAGING_SDK_STORAGE_BASE_URL='https://oryxsdksstaging.blob.core.windows.net' -DEV_SDK_STORAGE_BASE_URL='https://oryxsdksdev.blob.core.windows.net' -SANDBOX_SDK_STORAGE_BASE_URL='https://oryxsdkssandbox.blob.core.windows.net' -PRIVATE_SDK_STORAGE_BASE_URL='https://oryxsdksprivate.blob.core.windows.net' PROD_SDK_STORAGE_BASE_URL='https://oryxsdksprod.blob.core.windows.net' PROD_BACKUP_SDK_STORAGE_BASE_URL='https://oryxsdksprodbackup.blob.core.windows.net' PROD_SDK_CDN_STORAGE_BASE_URL='https://oryx-cdn.microsoft.io' diff --git a/images/build/Dockerfiles/azureFunctions.JamStack.Dockerfile b/images/build/Dockerfiles/azureFunctions.JamStack.Dockerfile index 6a660fade..7a4f2808e 100644 --- a/images/build/Dockerfiles/azureFunctions.JamStack.Dockerfile +++ b/images/build/Dockerfiles/azureFunctions.JamStack.Dockerfile @@ -1,8 +1,15 @@ -ARG PARENT_DEBIAN_FLAVOR +ARG BASE_IMAGE ARG DEBIAN_FLAVOR -FROM oryxdevmcr.azurecr.io/public/oryx/cli:${PARENT_DEBIAN_FLAVOR} AS main +FROM ${BASE_IMAGE} AS main -COPY --from=oryxdevmcr.azurecr.io/private/oryx/support-files-image-for-build /tmp/oryx/ /tmp +ARG IMAGES_DIR=/tmp/images +ARG BUILD_DIR=/tmp/build +RUN mkdir -p ${IMAGES_DIR} \ + && mkdir -p ${BUILD_DIR} +COPY images ${IMAGES_DIR} +COPY build ${BUILD_DIR} +RUN find ${IMAGES_DIR} -type f -iname "*.sh" -exec chmod +x {} \; \ + && find ${BUILD_DIR} -type f -iname "*.sh" -exec chmod +x {} \; ENV DEBIAN_FLAVOR=$DEBIAN_FLAVOR \ ORYX_BUILDIMAGE_TYPE="jamstack" \ @@ -73,22 +80,23 @@ RUN set -ex \ ARG IMAGES_DIR="/opt/tmp/images" ARG BUILD_DIR="/opt/tmp/build" -RUN --mount=type=secret,id=oryx_sdk_storage_account_access_token \ - set -e \ - && export ORYX_SDK_STORAGE_ACCOUNT_ACCESS_TOKEN_PATH="/run/secrets/oryx_sdk_storage_account_access_token" \ +COPY images/yarn-v1.22.15.tar.gz . +RUN set -e \ && yarnCacheFolder="/usr/local/share/yarn-cache" \ && mkdir -p $yarnCacheFolder \ && chmod 777 $yarnCacheFolder \ - && . ${BUILD_DIR}/__nodeVersions.sh \ - && if [ "${DEBIAN_FLAVOR}" == "bullseye" || "${DEBIAN_FLAVOR}" == "buster" ]; then ${IMAGES_DIR}/installPlatform.sh nodejs ${NODE16_VERSION}; fi \ - && ${IMAGES_DIR}/receiveGpgKeys.sh 6A010C5166006599AA17F08146C2130DFD2497F5 \ - && ${IMAGES_DIR}/retry.sh "curl -fsSLO --compressed https://yarnpkg.com/downloads/$YARN_VERSION/yarn-v$YARN_VERSION.tar.gz" \ - && ${IMAGES_DIR}/retry.sh "curl -fsSLO --compressed https://yarnpkg.com/downloads/$YARN_VERSION/yarn-v$YARN_VERSION.tar.gz.asc" \ - && gpg --batch --verify yarn-v$YARN_VERSION.tar.gz.asc yarn-v$YARN_VERSION.tar.gz \ && mkdir -p /opt/yarn \ - && tar -xzf yarn-v$YARN_VERSION.tar.gz -C /opt/yarn \ - && mv /opt/yarn/yarn-v$YARN_VERSION /opt/yarn/$YARN_VERSION \ - && rm yarn-v$YARN_VERSION.tar.gz.asc yarn-v$YARN_VERSION.tar.gz + && tar -xzf yarn-v1.22.15.tar.gz -C /opt/yarn \ + && mv /opt/yarn/yarn-v1.22.15 /opt/yarn/1.22.15 \ + && rm yarn-v1.22.15.tar.gz + +COPY nodejs-${DEBIAN_FLAVOR}-16.20.0.tar.gz . +RUN set -e \ + && mkdir -p /opt/nodejs/16.20.0 \ + && tar -xzf nodejs-${DEBIAN_FLAVOR}-16.20.0.tar.gz -C /usr/local \ + && rm nodejs-${DEBIAN_FLAVOR}-16.20.0.tar.gz \ + && ln -sfn "/opt/nodejs/16.20.0" "/opt/nodejs/16.20" + RUN set -ex \ && . ${BUILD_DIR}/__nodeVersions.sh \ && ln -s $YARN_VERSION /opt/yarn/stable \ @@ -99,9 +107,11 @@ RUN set -ex \ && mkdir -p /links \ && cp -s /opt/yarn/stable/bin/yarn /opt/yarn/stable/bin/yarnpkg /links -RUN --mount=type=secret,id=oryx_sdk_storage_account_access_token \ - set -e \ - && export ORYX_SDK_STORAGE_ACCOUNT_ACCESS_TOKEN_PATH="/run/secrets/oryx_sdk_storage_account_access_token" \ +ARG PYTHON38_VERSION +ENV PYTHON38_VERSION ${PYTHON38_VERSION} +COPY python-${DEBIAN_FLAVOR}-${PYTHON38_VERSION}.tar.gz . + +RUN set -e \ # Install Python SDKs # Upgrade system python && PYTHONIOENCODING="UTF-8" \ @@ -113,8 +123,9 @@ RUN --mount=type=secret,id=oryx_sdk_storage_account_access_token \ && pip3 install pip --upgrade \ && pip install --upgrade cython \ && pip3 install --upgrade cython \ - && . $buildDir/__pythonVersions.sh \ - && $imagesDir/installPlatform.sh python $PYTHON38_VERSION \ + && mkdir -p /opt/python/${PYTHON38_VERSION} \ + && tar -xzf python-${DEBIAN_FLAVOR}-${PYTHON38_VERSION}.tar.gz -C /opt/python/${PYTHON38_VERSION} \ + && rm python-${DEBIAN_FLAVOR}-${PYTHON38_VERSION}.tar.gz \ && [ -d "/opt/python/$PYTHON38_VERSION" ] && echo /opt/python/$PYTHON38_VERSION/lib >> /etc/ld.so.conf.d/python.conf \ && ldconfig \ && cd /opt/python \ diff --git a/images/build/Dockerfiles/cli.Dockerfile b/images/build/Dockerfiles/cli.Dockerfile index c2806ffb5..8ac37990e 100644 --- a/images/build/Dockerfiles/cli.Dockerfile +++ b/images/build/Dockerfiles/cli.Dockerfile @@ -3,7 +3,7 @@ ARG DEBIAN_FLAVOR # Use the curl flavor of buildpack-deps as the base image, which is lighter than the standard flavor; more information here: https://hub.docker.com/_/buildpack-deps FROM buildpack-deps:${DEBIAN_FLAVOR}-curl as main ARG DEBIAN_FLAVOR -ARG SDK_STORAGE_BASE_URL_VALUE="https://oryx-cdn.microsoft.io" +ARG SDK_STORAGE_BASE_URL_VALUE ARG AI_CONNECTION_STRING ENV DEBIAN_FLAVOR=$DEBIAN_FLAVOR @@ -14,8 +14,33 @@ RUN if [ "${DEBIAN_FLAVOR}" = "stretch" ]; then \ && sed -i 's/^deb http:\/\/deb.debian.org\/debian stretch/deb http:\/\/archive.debian.org\/debian stretch/g' /etc/apt/sources.list ; \ fi -COPY --from=oryxdevmcr.azurecr.io/private/oryx/buildscriptgenerator /opt/buildscriptgen/ /opt/buildscriptgen/ -COPY --from=oryxdevmcr.azurecr.io/private/oryx/support-files-image-for-build /tmp/oryx/ /opt/tmp +## Build Script Generator +ARG GIT_COMMIT=unspecified +ARG BUILD_NUMBER=unspecified +ARG RELEASE_TAG_NAME=unspecified + +ENV GIT_COMMIT=${GIT_COMMIT} +ENV BUILD_NUMBER=${BUILD_NUMBER} +ENV RELEASE_TAG_NAME=${RELEASE_TAG_NAME} + +WORKDIR /usr/oryx +COPY build build +# This statement copies signed oryx binaries from during agent build. +# For local/dev contents of blank/empty directory named binaries are getting copied +COPY binaries /opt/buildscriptgen/ +COPY src src +COPY build/FinalPublicKey.snk build/ +RUN chmod a+x /opt/buildscriptgen/GenerateBuildScript +RUN chmod a+x /opt/buildscriptgen/Microsoft.Oryx.BuildServer + +ARG IMAGES_DIR=/opt/tmp/images +ARG BUILD_DIR=/opt/tmp/build +RUN mkdir -p ${IMAGES_DIR} \ + && mkdir -p ${BUILD_DIR} +COPY images ${IMAGES_DIR} +COPY build ${BUILD_DIR} +RUN find ${IMAGES_DIR} -type f -iname "*.sh" -exec chmod +x {} \; \ + && find ${BUILD_DIR} -type f -iname "*.sh" -exec chmod +x {} \; ENV ORYX_SDK_STORAGE_BASE_URL=${SDK_STORAGE_BASE_URL_VALUE} \ ENABLE_DYNAMIC_INSTALL="true" \ diff --git a/images/build/Dockerfiles/cliBuilder.Dockerfile b/images/build/Dockerfiles/cliBuilder.Dockerfile index 023252bec..c08632405 100644 --- a/images/build/Dockerfiles/cliBuilder.Dockerfile +++ b/images/build/Dockerfiles/cliBuilder.Dockerfile @@ -3,7 +3,7 @@ ARG DEBIAN_FLAVOR # Use the curl flavor of buildpack-deps as the base image, which is lighter than the standard flavor; more information here: https://hub.docker.com/_/buildpack-deps FROM buildpack-deps:${DEBIAN_FLAVOR}-curl as main ARG DEBIAN_FLAVOR -ARG SDK_STORAGE_BASE_URL_VALUE="https://oryx-cdn.microsoft.io" +ARG SDK_STORAGE_BASE_URL_VALUE ARG AI_CONNECTION_STRING ENV DEBIAN_FLAVOR=$DEBIAN_FLAVOR @@ -14,8 +14,34 @@ RUN if [ "${DEBIAN_FLAVOR}" = "stretch" ]; then \ && sed -i 's/^deb http:\/\/deb.debian.org\/debian stretch/deb http:\/\/archive.debian.org\/debian stretch/g' /etc/apt/sources.list ; \ fi -COPY --from=oryxdevmcr.azurecr.io/private/oryx/buildscriptgenerator /opt/buildscriptgen/ /opt/buildscriptgen/ -COPY --from=oryxdevmcr.azurecr.io/private/oryx/support-files-image-for-build /tmp/oryx/ /opt/tmp +## Build Script Generator +ARG GIT_COMMIT=unspecified +ARG BUILD_NUMBER=unspecified +ARG RELEASE_TAG_NAME=unspecified + +ENV GIT_COMMIT=${GIT_COMMIT} +ENV BUILD_NUMBER=${BUILD_NUMBER} +ENV RELEASE_TAG_NAME=${RELEASE_TAG_NAME} + +WORKDIR /usr/oryx +COPY build build +# This statement copies signed oryx binaries from during agent build. +# For local/dev contents of blank/empty directory named binaries are getting copied +COPY binaries /opt/buildscriptgen/ +COPY src src +COPY build/FinalPublicKey.snk build/ +RUN chmod a+x /opt/buildscriptgen/GenerateBuildScript +RUN chmod a+x /opt/buildscriptgen/Microsoft.Oryx.BuildServer + +ARG IMAGES_DIR=/opt/tmp/images +ARG BUILD_DIR=/opt/tmp/build +RUN mkdir -p ${IMAGES_DIR} \ + && mkdir -p ${BUILD_DIR} +COPY images ${IMAGES_DIR} +COPY build ${BUILD_DIR} +RUN find ${IMAGES_DIR} -type f -iname "*.sh" -exec chmod +x {} \; \ + && find ${BUILD_DIR} -type f -iname "*.sh" -exec chmod +x {} \; + ENV ORYX_SDK_STORAGE_BASE_URL=${SDK_STORAGE_BASE_URL_VALUE} \ ENABLE_DYNAMIC_INSTALL="true" \ @@ -92,19 +118,17 @@ RUN apt-get update \ ARG BUILD_DIR="/opt/tmp/build" ARG IMAGES_DIR="/opt/tmp/images" RUN ${IMAGES_DIR}/build/installHugo.sh +COPY images/yarn-v1.22.15.tar.gz . RUN set -ex \ && yarnCacheFolder="/usr/local/share/yarn-cache" \ && mkdir -p $yarnCacheFolder \ && chmod 777 $yarnCacheFolder \ && . ${BUILD_DIR}/__nodeVersions.sh \ - && ${IMAGES_DIR}/receiveGpgKeys.sh 6A010C5166006599AA17F08146C2130DFD2497F5 \ - && ${IMAGES_DIR}/retry.sh "curl -fsSLO --compressed https://yarnpkg.com/downloads/$YARN_VERSION/yarn-v$YARN_VERSION.tar.gz" \ - && ${IMAGES_DIR}/retry.sh "curl -fsSLO --compressed https://yarnpkg.com/downloads/$YARN_VERSION/yarn-v$YARN_VERSION.tar.gz.asc" \ - && gpg --batch --verify yarn-v$YARN_VERSION.tar.gz.asc yarn-v$YARN_VERSION.tar.gz \ && mkdir -p /opt/yarn \ - && tar -xzf yarn-v$YARN_VERSION.tar.gz -C /opt/yarn \ - && mv /opt/yarn/yarn-v$YARN_VERSION /opt/yarn/$YARN_VERSION \ - && rm yarn-v$YARN_VERSION.tar.gz.asc yarn-v$YARN_VERSION.tar.gz + && tar -xzf yarn-v1.22.15.tar.gz -C /opt/yarn \ + && mv /opt/yarn/yarn-v1.22.15 /opt/yarn/1.22.15 \ + && rm yarn-v1.22.15.tar.gz + RUN set -ex \ && . ${BUILD_DIR}/__nodeVersions.sh \ && ln -s $YARN_VERSION /opt/yarn/stable \ @@ -136,10 +160,11 @@ RUN set -ex \ uuid-dev \ && rm -rf /var/lib/apt/lists/* +ARG PYTHON38_VERSION +ENV PYTHON38_VERSION ${PYTHON38_VERSION} +COPY python-${DEBIAN_FLAVOR}-${PYTHON38_VERSION}.tar.gz . # Install Python 3.8 to use in some .NET and node applications -RUN --mount=type=secret,id=oryx_sdk_storage_account_access_token \ - set -e \ - && export ORYX_SDK_STORAGE_ACCOUNT_ACCESS_TOKEN_PATH="/run/secrets/oryx_sdk_storage_account_access_token" \ +RUN set -e \ && tmpDir="/opt/tmp" \ && imagesDir="$tmpDir/images" \ && buildDir="$tmpDir/build" \ @@ -152,8 +177,9 @@ RUN --mount=type=secret,id=oryx_sdk_storage_account_access_token \ && pip3 install pip --upgrade \ && pip install --upgrade cython \ && pip3 install --upgrade cython \ - && . $buildDir/__pythonVersions.sh \ - && $imagesDir/installPlatform.sh python $PYTHON38_VERSION \ + && mkdir -p /opt/python/${PYTHON38_VERSION} \ + && tar -xzf python-${DEBIAN_FLAVOR}-${PYTHON38_VERSION}.tar.gz -C /opt/python/${PYTHON38_VERSION} \ + && rm python-${DEBIAN_FLAVOR}-${PYTHON38_VERSION}.tar.gz \ && [ -d "/opt/python/$PYTHON38_VERSION" ] && echo /opt/python/$PYTHON38_VERSION/lib >> /etc/ld.so.conf.d/python.conf \ && ldconfig \ && cd /opt/python \ diff --git a/images/build/Dockerfiles/full.Dockerfile b/images/build/Dockerfiles/full.Dockerfile index c66a957ec..239305017 100644 --- a/images/build/Dockerfiles/full.Dockerfile +++ b/images/build/Dockerfiles/full.Dockerfile @@ -15,20 +15,45 @@ ENV GIT_COMMIT=${GIT_COMMIT} ENV BUILD_NUMBER=${BUILD_NUMBER} ENV RELEASE_TAG_NAME=${RELEASE_TAG_NAME} ENV DEBIAN_FLAVOR=${DEBIAN_FLAVOR} -RUN ./build.sh golang /opt/startupcmdgen/golang +RUN chmod +x build.sh && ./build.sh golang /opt/startupcmdgen/golang ### oryx build image FROM buildpack-deps:${DEBIAN_FLAVOR}-curl ARG DEBIAN_FLAVOR -ARG SDK_STORAGE_BASE_URL_VALUE="https://oryx-cdn.microsoft.io" +ARG SDK_STORAGE_BASE_URL_VALUE ARG AI_CONNECTION_STRING ENV ORYX_AI_CONNECTION_STRING=${AI_CONNECTION_STRING} ENV DEBIAN_FLAVOR=$DEBIAN_FLAVOR ENV ORYX_SDK_STORAGE_BASE_URL=${SDK_STORAGE_BASE_URL_VALUE} -# docker multi-stage builds -COPY --from=oryxdevmcr.azurecr.io/private/oryx/support-files-image-for-build /tmp/oryx/ /opt/tmp -COPY --from=oryxdevmcr.azurecr.io/private/oryx/buildscriptgenerator /opt/ /opt/ +ARG IMAGES_DIR=/opt/tmp/images +ARG BUILD_DIR=/opt/tmp/build +RUN mkdir -p ${IMAGES_DIR} \ + && mkdir -p ${BUILD_DIR} +COPY images ${IMAGES_DIR} +COPY build ${BUILD_DIR} +RUN find ${IMAGES_DIR} -type f -iname "*.sh" -exec chmod +x {} \; \ + && find ${BUILD_DIR} -type f -iname "*.sh" -exec chmod +x {} \; + +ARG GIT_COMMIT=unspecified +ARG BUILD_NUMBER=unspecified +ARG RELEASE_TAG_NAME=unspecified + +ENV GIT_COMMIT=${GIT_COMMIT} +ENV BUILD_NUMBER=${BUILD_NUMBER} +ENV RELEASE_TAG_NAME=${RELEASE_TAG_NAME} + +WORKDIR /usr/oryx +COPY build build +# This statement copies signed oryx binaries from during agent build. +# For local/dev contents of blank/empty directory named binaries are getting copied +COPY binaries /opt/buildscriptgen/ +COPY src src +COPY build/FinalPublicKey.snk build/ + +RUN chmod a+x /opt/buildscriptgen/GenerateBuildScript +RUN chmod a+x /opt/buildscriptgen/Microsoft.Oryx.BuildServer + COPY --from=startupScriptGens /opt/startupcmdgen/ /opt/startupcmdgen/ RUN if [ "${DEBIAN_FLAVOR}" = "bullseye" ]; then \ diff --git a/images/build/Dockerfiles/gitHubActions.Dockerfile b/images/build/Dockerfiles/gitHubActions.Dockerfile index 340b9bef4..f38c67fd4 100644 --- a/images/build/Dockerfiles/gitHubActions.Dockerfile +++ b/images/build/Dockerfiles/gitHubActions.Dockerfile @@ -1,5 +1,27 @@ -ARG DEBIAN_FLAVOR -FROM oryxdevmcr.azurecr.io/private/oryx/githubrunners-buildpackdeps-${DEBIAN_FLAVOR} AS main +ARG BASE_IMAGE + +FROM mcr.microsoft.com/dotnet/sdk:7.0 as buildscriptgenerator + +ARG GIT_COMMIT=unspecified +ARG BUILD_NUMBER=unspecified +ARG RELEASE_TAG_NAME=unspecified + +ENV GIT_COMMIT=${GIT_COMMIT} +ENV BUILD_NUMBER=${BUILD_NUMBER} +ENV RELEASE_TAG_NAME=${RELEASE_TAG_NAME} + +WORKDIR /usr/oryx +COPY build build +# This statement copies signed oryx binaries from during agent build. +# For local/dev contents of blank/empty directory named binaries are getting copied +COPY binaries /opt/buildscriptgen/ +COPY src src +COPY build/FinalPublicKey.snk build/ + +RUN chmod a+x /opt/buildscriptgen/GenerateBuildScript +RUN chmod a+x /opt/buildscriptgen/Microsoft.Oryx.BuildServer + +FROM ${BASE_IMAGE} AS main ARG DEBIAN_FLAVOR ENV DEBIAN_FLAVOR=$DEBIAN_FLAVOR @@ -102,24 +124,31 @@ RUN if [ "${DEBIAN_FLAVOR}" = "bookworm" ]; then \ # Install Yarn, HUGO FROM main AS intermediate -COPY --from=oryxdevmcr.azurecr.io/private/oryx/support-files-image-for-build /tmp/oryx/ /opt/tmp -COPY --from=oryxdevmcr.azurecr.io/private/oryx/buildscriptgenerator /opt/buildscriptgen/ /opt/buildscriptgen/ -ARG BUILD_DIR="/opt/tmp/build" -ARG IMAGES_DIR="/opt/tmp/images" + +ARG IMAGES_DIR=/opt/tmp/images +ARG BUILD_DIR=/opt/tmp/build +RUN mkdir -p ${IMAGES_DIR} \ + && mkdir -p ${BUILD_DIR} +COPY images ${IMAGES_DIR} +COPY build ${BUILD_DIR} +RUN find ${IMAGES_DIR} -type f -iname "*.sh" -exec chmod +x {} \; \ + && find ${BUILD_DIR} -type f -iname "*.sh" -exec chmod +x {} \; + +COPY --from=buildscriptgenerator /opt/buildscriptgen/ /opt/buildscriptgen/ + RUN ${IMAGES_DIR}/build/installHugo.sh + +COPY images/yarn-v1.22.15.tar.gz . RUN set -ex \ && yarnCacheFolder="/usr/local/share/yarn-cache" \ && mkdir -p $yarnCacheFolder \ && chmod 777 $yarnCacheFolder \ && . ${BUILD_DIR}/__nodeVersions.sh \ - && ${IMAGES_DIR}/receiveGpgKeys.sh 6A010C5166006599AA17F08146C2130DFD2497F5 \ - && ${IMAGES_DIR}/retry.sh "curl -fsSLO --compressed https://yarnpkg.com/downloads/$YARN_VERSION/yarn-v$YARN_VERSION.tar.gz" \ - && ${IMAGES_DIR}/retry.sh "curl -fsSLO --compressed https://yarnpkg.com/downloads/$YARN_VERSION/yarn-v$YARN_VERSION.tar.gz.asc" \ - && gpg --batch --verify yarn-v$YARN_VERSION.tar.gz.asc yarn-v$YARN_VERSION.tar.gz \ && mkdir -p /opt/yarn \ - && tar -xzf yarn-v$YARN_VERSION.tar.gz -C /opt/yarn \ - && mv /opt/yarn/yarn-v$YARN_VERSION /opt/yarn/$YARN_VERSION \ - && rm yarn-v$YARN_VERSION.tar.gz.asc yarn-v$YARN_VERSION.tar.gz + && tar -xzf yarn-v1.22.15.tar.gz -C /opt/yarn \ + && mv /opt/yarn/yarn-v1.22.15 /opt/yarn/1.22.15 \ + && rm yarn-v1.22.15.tar.gz + RUN set -ex \ && . ${BUILD_DIR}/__nodeVersions.sh \ && ln -s $YARN_VERSION /opt/yarn/stable \ diff --git a/images/runtime/commonbase/nodeRuntimeBase.Dockerfile b/images/runtime/commonbase/nodeRuntimeBase.Dockerfile index 3c33d96eb..bbaf7cacf 100644 --- a/images/runtime/commonbase/nodeRuntimeBase.Dockerfile +++ b/images/runtime/commonbase/nodeRuntimeBase.Dockerfile @@ -1,5 +1,5 @@ -ARG DEBIAN_FLAVOR -FROM oryxdevmcr.azurecr.io/private/oryx/oryx-run-base-${DEBIAN_FLAVOR} +ARG BASE_IMAGE +FROM ${BASE_IMAGE} ARG IMAGES_DIR=/tmp/oryx/images RUN apt-get update \ @@ -15,13 +15,10 @@ RUN apt-get update \ RUN ${IMAGES_DIR}/receiveGpgKeys.sh \ 6A010C5166006599AA17F08146C2130DFD2497F5 -ENV YARN_VERSION 1.22.15 +COPY images/yarn-v1.22.15.tar.gz . -RUN curl -fsSLO --compressed "https://yarnpkg.com/downloads/$YARN_VERSION/yarn-v$YARN_VERSION.tar.gz" \ - && curl -fsSLO --compressed "https://yarnpkg.com/downloads/$YARN_VERSION/yarn-v$YARN_VERSION.tar.gz.asc" \ - && gpg --batch --verify yarn-v$YARN_VERSION.tar.gz.asc yarn-v$YARN_VERSION.tar.gz \ - && mkdir -p /opt \ - && tar -xzf yarn-v$YARN_VERSION.tar.gz -C /opt/ \ - && 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 \ - && rm yarn-v$YARN_VERSION.tar.gz.asc yarn-v$YARN_VERSION.tar.gz +RUN mkdir -p /opt \ + && tar -xzf yarn-v1.22.15.tar.gz -C /opt/ \ + && ln -s /opt/yarn-v1.22.15/bin/yarn /usr/local/bin/yarn \ + && ln -s /opt/yarn-v1.22.15/bin/yarnpkg /usr/local/bin/yarnpkg \ + && rm yarn-v1.22.15.tar.gz diff --git a/images/runtime/commonbase/phpFpmRuntimeBase.Dockerfile b/images/runtime/commonbase/phpFpmRuntimeBase.Dockerfile new file mode 100644 index 000000000..92107b043 --- /dev/null +++ b/images/runtime/commonbase/phpFpmRuntimeBase.Dockerfile @@ -0,0 +1,71 @@ +ARG BASE_IMAGE +FROM ${BASE_IMAGE} + +# prevent Debian's PHP packages from being installed +# https://github.com/docker-library/php/pull/542 +RUN set -eux; \ + { \ + echo 'Package: php*'; \ + echo 'Pin: release *'; \ + echo 'Pin-Priority: -1'; \ + } > /etc/apt/preferences.d/no-debian-php + +# dependencies required for running "phpize" +# (see persistent deps below) +ENV PHPIZE_DEPS \ + autoconf \ + dpkg-dev \ + file \ + g++ \ + gcc \ + libc-dev \ + make \ + pkg-config \ + re2c + +# persistent / runtime deps +RUN set -eux; \ + apt-get update; \ + apt-get install -y --no-install-recommends \ + $PHPIZE_DEPS \ + ca-certificates \ + curl \ + xz-utils \ + libzip-dev \ + libpng-dev \ + libjpeg-dev \ + libpq-dev \ + libldap2-dev \ + libldb-dev \ + libicu-dev \ + libgmp-dev \ + libmagickwand-dev \ + libc-client-dev \ + libtidy-dev \ + libkrb5-dev \ + libxslt-dev \ + openssh-server \ + vim \ + curl \ + wget \ + tcptraceroute \ + mariadb-client \ + openssl \ + libedit-dev \ + libsodium-dev \ + libfreetype6-dev \ + libjpeg62-turbo-dev \ + libonig-dev \ + libcurl4-openssl-dev \ + libldap2-dev \ + zlib1g-dev \ + apache2-dev \ + libsqlite3-dev \ + ; \ + rm -rf /var/lib/apt/lists/* + +RUN apt-get update \ + && ACCEPT_EULA=Y \ + DEBIAN_FRONTEND=noninteractive \ + apt-get upgrade --assume-yes \ + && rm -rf /var/lib/apt/lists/* diff --git a/images/runtime/commonbase/phpRuntimeBase.Dockerfile b/images/runtime/commonbase/phpRuntimeBase.Dockerfile new file mode 100644 index 000000000..9e82905d6 --- /dev/null +++ b/images/runtime/commonbase/phpRuntimeBase.Dockerfile @@ -0,0 +1,71 @@ +ARG BASE_IMAGE +FROM ${BASE_IMAGE} + +# prevent Debian's PHP packages from being installed +# https://github.com/docker-library/php/pull/542 +RUN set -eux; \ + { \ + echo 'Package: php*'; \ + echo 'Pin: release *'; \ + echo 'Pin-Priority: -1'; \ + } > /etc/apt/preferences.d/no-debian-php + +# dependencies required for running "phpize" +# (see persistent deps below) +ENV PHPIZE_DEPS \ + autoconf \ + dpkg-dev \ + file \ + g++ \ + gcc \ + libc-dev \ + make \ + pkg-config \ + re2c + +# persistent / runtime deps +RUN set -eux; \ + apt-get update; \ + apt-get upgrade -y \ + && apt-get install -y --no-install-recommends \ + $PHPIZE_DEPS \ + ca-certificates \ + curl \ + xz-utils \ + libzip-dev \ + libpng-dev \ + libjpeg-dev \ + libpq-dev \ + libldap2-dev \ + libldb-dev \ + libicu-dev \ + libgmp-dev \ + libmagickwand-dev \ + libc-client-dev \ + libtidy-dev \ + libkrb5-dev \ + libxslt-dev \ + openssh-server \ + vim \ + wget \ + tcptraceroute \ + mariadb-client \ + openssl \ + libedit-dev \ + libsodium-dev \ + libfreetype6-dev \ + libjpeg62-turbo-dev \ + libonig-dev \ + libcurl4-openssl-dev \ + libldap2-dev \ + zlib1g-dev \ + apache2-dev \ + libsqlite3-dev \ + ; \ + rm -rf /var/lib/apt/lists/* + +RUN apt-get update \ + && ACCEPT_EULA=Y \ + DEBIAN_FRONTEND=noninteractive \ + apt-get upgrade --assume-yes \ + && rm -rf /var/lib/apt/lists/* \ No newline at end of file diff --git a/images/runtime/dotnetcore/6.0/bullseye.Dockerfile b/images/runtime/dotnetcore/6.0/bullseye.Dockerfile new file mode 100644 index 000000000..a507fa4b2 --- /dev/null +++ b/images/runtime/dotnetcore/6.0/bullseye.Dockerfile @@ -0,0 +1,104 @@ +# dotnet tools are currently available as part of SDK so we need to create them in an sdk image +# and copy them to our final runtime image +FROM mcr.microsoft.com/dotnet/sdk:6.0 AS tools-install +RUN dotnet tool install --tool-path /dotnetcore-tools dotnet-sos +RUN dotnet tool install --tool-path /dotnetcore-tools dotnet-trace +RUN dotnet tool install --tool-path /dotnetcore-tools dotnet-dump +RUN dotnet tool install --tool-path /dotnetcore-tools dotnet-counters +RUN dotnet tool install --tool-path /dotnetcore-tools dotnet-gcdump +RUN dotnet tool install --tool-path /dotnetcore-tools dotnet-monitor --version 7.* + +# Startup script generator +FROM mcr.microsoft.com/oss/go/microsoft/golang:1.20-bullseye as startupCmdGen + +# GOPATH is set to "/go" in the base image +WORKDIR /go/src +COPY src/startupscriptgenerator/src . +ARG GIT_COMMIT=unspecified +ARG BUILD_NUMBER=unspecified +ARG RELEASE_TAG_NAME=unspecified +ENV RELEASE_TAG_NAME=${RELEASE_TAG_NAME} +ENV GIT_COMMIT=${GIT_COMMIT} +ENV BUILD_NUMBER=${BUILD_NUMBER} +#Bake in client certificate path into image to avoid downloading it +ENV PATH_CA_CERTIFICATE="/etc/ssl/certs/ca-certificate.crt" +RUN chmod +x build.sh && ./build.sh dotnetcore /opt/startupcmdgen/startupcmdgen + + +FROM mcr.microsoft.com/mirror/docker/library/debian:bullseye-slim +ARG BUILD_DIR=/tmp/oryx/build +ADD build ${BUILD_DIR} + +RUN apt-get update \ + && apt-get install -y --no-install-recommends \ + ca-certificates \ + \ + # .NET Core dependencies + libc6 \ + libgcc1 \ + libgssapi-krb5-2 \ + libicu67 \ + libssl1.1 \ + libstdc++6 \ + zlib1g \ + lldb \ + curl \ + file \ + libgdiplus \ + && apt-get upgrade --assume-yes \ + && rm -rf /var/lib/apt/lists/* + +# Configure web servers to bind to port 80 when present +ENV ASPNETCORE_URLS=http://+:80 \ + # Enable detection of running in a container + DOTNET_RUNNING_IN_CONTAINER=true \ + PATH="/opt/dotnetcore-tools:${PATH}" + +COPY --from=tools-install /dotnetcore-tools /opt/dotnetcore-tools + +# Install .NET Core +RUN set -ex \ + && . ${BUILD_DIR}/__dotNetCoreRunTimeVersions.sh \ + && curl -SL --output dotnet.tar.gz https://dotnetcli.azureedge.net/dotnet/Runtime/$NET_CORE_APP_60/dotnet-runtime-$NET_CORE_APP_60-linux-x64.tar.gz \ + && echo "$NET_CORE_APP_60_SHA dotnet.tar.gz" | sha512sum -c - \ + && mkdir -p /usr/share/dotnet \ + && tar -zxf dotnet.tar.gz -C /usr/share/dotnet \ + && rm dotnet.tar.gz \ + && ln -s /usr/share/dotnet/dotnet /usr/bin/dotnet \ + # Install ASP.NET Core + && . ${BUILD_DIR}/__dotNetCoreRunTimeVersions.sh \ + && curl -SL --output aspnetcore.tar.gz https://dotnetcli.azureedge.net/dotnet/aspnetcore/Runtime/$ASPNET_CORE_APP_60/aspnetcore-runtime-$ASPNET_CORE_APP_60-linux-x64.tar.gz \ + && echo "$ASPNET_CORE_APP_60_SHA aspnetcore.tar.gz" | sha512sum -c - \ + && mkdir -p /usr/share/dotnet \ + && tar -zxf aspnetcore.tar.gz -C /usr/share/dotnet ./shared/Microsoft.AspNetCore.App \ + && rm aspnetcore.tar.gz \ + && dotnet-sos install \ + && rm -rf ${BUILD_DIR} + +# Bake Application Insights key from pipeline variable into final image +ARG AI_CONNECTION_STRING +ARG USER_DOTNET_AI_VERSION +ENV USER_DOTNET_AI_VERSION=${USER_DOTNET_AI_VERSION} +ENV ORYX_AI_CONNECTION_STRING=${AI_CONNECTION_STRING} +ENV DOTNET_VERSION=%DOTNET_VERSION% +ENV ASPNETCORE_LOGGING__CONSOLE__DISABLECOLORS=true +#Bake in client certificate path into image to avoid downloading it +ENV PATH_CA_CERTIFICATE="/etc/ssl/certs/ca-certificate.crt" + +ENV LANG="C.UTF-8" \ + LANGUAGE="C.UTF-8" \ + LC_ALL="C.UTF-8" + +# Oryx++ Builder variables +ENV CNB_STACK_ID="oryx.stacks.skeleton" +LABEL io.buildpacks.stack.id="oryx.stacks.skeleton" + +COPY --from=startupCmdGen /opt/startupcmdgen/startupcmdgen /opt/startupcmdgen/startupcmdgen +COPY DotNetCoreAgent.${USER_DOTNET_AI_VERSION}.zip /DotNetCoreAgent/appinsights.zip +RUN set -e \ + && ln -s /opt/startupcmdgen/startupcmdgen /usr/local/bin/oryx \ + && apt-get update \ + && apt-get install unzip -y \ + && apt-get upgrade --assume-yes \ + && cd DotNetCoreAgent \ + && unzip appinsights.zip && rm appinsights.zip \ No newline at end of file diff --git a/images/runtime/dotnetcore/6.0/buster.Dockerfile b/images/runtime/dotnetcore/6.0/buster.Dockerfile new file mode 100644 index 000000000..0d7dec0cf --- /dev/null +++ b/images/runtime/dotnetcore/6.0/buster.Dockerfile @@ -0,0 +1,108 @@ +# dotnet tools are currently available as part of SDK so we need to create them in an sdk image +# and copy them to our final runtime image +FROM mcr.microsoft.com/dotnet/sdk:6.0 AS tools-install +RUN dotnet tool install --tool-path /dotnetcore-tools dotnet-sos +RUN dotnet tool install --tool-path /dotnetcore-tools dotnet-trace +RUN dotnet tool install --tool-path /dotnetcore-tools dotnet-dump +RUN dotnet tool install --tool-path /dotnetcore-tools dotnet-counters +RUN dotnet tool install --tool-path /dotnetcore-tools dotnet-gcdump +RUN dotnet tool install --tool-path /dotnetcore-tools dotnet-monitor --version 7.* + +# Startup script generator +FROM mcr.microsoft.com/oss/go/microsoft/golang:1.20-buster as startupCmdGen + +# GOPATH is set to "/go" in the base image +WORKDIR /go/src +COPY src/startupscriptgenerator/src . +ARG GIT_COMMIT=unspecified +ARG BUILD_NUMBER=unspecified +ARG RELEASE_TAG_NAME=unspecified +ENV RELEASE_TAG_NAME=${RELEASE_TAG_NAME} +ENV GIT_COMMIT=${GIT_COMMIT} +ENV BUILD_NUMBER=${BUILD_NUMBER} +#Bake in client certificate path into image to avoid downloading it +ENV PATH_CA_CERTIFICATE="/etc/ssl/certs/ca-certificate.crt" +RUN chmod +x build.sh && ./build.sh dotnetcore /opt/startupcmdgen/startupcmdgen + + +FROM mcr.microsoft.com/mirror/docker/library/debian:buster-slim +ARG BUILD_DIR=/tmp/oryx/build +ADD build ${BUILD_DIR} + +RUN apt-get update \ + && apt-get install -y --no-install-recommends \ + # .NET Core dependencies + libc6 \ + libgcc1 \ + libgssapi-krb5-2 \ + libicu63 \ + libssl1.1 \ + libstdc++6 \ + zlib1g \ + lldb \ + curl \ + file \ + libgdiplus \ + && apt-get upgrade --assume-yes \ + && rm -rf /var/lib/apt/lists/* + +# Configure web servers to bind to port 80 when present +ENV ASPNETCORE_URLS=http://+:80 \ + # Enable detection of running in a container + DOTNET_RUNNING_IN_CONTAINER=true \ + PATH="/opt/dotnetcore-tools:${PATH}" + +COPY --from=tools-install /dotnetcore-tools /opt/dotnetcore-tools + +# Install .NET Core +RUN set -ex \ +# based on resolution on https://github.com/NuGet/Announcements/issues/49#issue-795386700 + && apt-get remove ca-certificates -y \ + && apt-get purge ca-certificates -y \ + && apt-get update \ + && apt-get install -f ca-certificates=20200601~deb10u2 -y --no-install-recommends \ + && . ${BUILD_DIR}/__dotNetCoreRunTimeVersions.sh \ + && curl -SL --output dotnet.tar.gz https://dotnetcli.azureedge.net/dotnet/Runtime/$NET_CORE_APP_60/dotnet-runtime-$NET_CORE_APP_60-linux-x64.tar.gz \ + && echo "$NET_CORE_APP_60_SHA dotnet.tar.gz" | sha512sum -c - \ + && mkdir -p /usr/share/dotnet \ + && tar -zxf dotnet.tar.gz -C /usr/share/dotnet \ + && rm dotnet.tar.gz \ + && ln -s /usr/share/dotnet/dotnet /usr/bin/dotnet \ + # Install ASP.NET Core + && . ${BUILD_DIR}/__dotNetCoreRunTimeVersions.sh \ + && curl -SL --output aspnetcore.tar.gz https://dotnetcli.azureedge.net/dotnet/aspnetcore/Runtime/$ASPNET_CORE_APP_60/aspnetcore-runtime-$ASPNET_CORE_APP_60-linux-x64.tar.gz \ + && echo "$ASPNET_CORE_APP_60_SHA aspnetcore.tar.gz" | sha512sum -c - \ + && mkdir -p /usr/share/dotnet \ + && tar -zxf aspnetcore.tar.gz -C /usr/share/dotnet ./shared/Microsoft.AspNetCore.App \ + && rm aspnetcore.tar.gz \ + && dotnet-sos install \ + && rm -rf ${BUILD_DIR} + +# Bake Application Insights key from pipeline variable into final image +ARG AI_CONNECTION_STRING +ARG USER_DOTNET_AI_VERSION +ENV USER_DOTNET_AI_VERSION=${USER_DOTNET_AI_VERSION} +ENV ORYX_AI_CONNECTION_STRING=${AI_CONNECTION_STRING} +ENV DOTNET_VERSION=%DOTNET_VERSION% +ENV ASPNETCORE_LOGGING__CONSOLE__DISABLECOLORS=true +#Bake in client certificate path into image to avoid downloading it +ENV PATH_CA_CERTIFICATE="/etc/ssl/certs/ca-certificate.crt" + +ENV LANG="C.UTF-8" \ + LANGUAGE="C.UTF-8" \ + LC_ALL="C.UTF-8" + +# Oryx++ Builder variables +ENV CNB_STACK_ID="oryx.stacks.skeleton" +LABEL io.buildpacks.stack.id="oryx.stacks.skeleton" + +COPY --from=startupCmdGen /opt/startupcmdgen/startupcmdgen /opt/startupcmdgen/startupcmdgen +COPY DotNetCoreAgent.${USER_DOTNET_AI_VERSION}.zip /DotNetCoreAgent/appinsights.zip +RUN set -e \ + && echo $USER_DOTNET_AI_VERSION \ + && ln -s /opt/startupcmdgen/startupcmdgen /usr/local/bin/oryx \ + && apt-get update \ + && apt-get install unzip -y \ + && apt-get upgrade --assume-yes \ + && cd DotNetCoreAgent \ + && unzip appinsights.zip && rm appinsights.zip \ No newline at end of file diff --git a/images/runtime/dotnetcore/8.0/bookworm.Dockerfile b/images/runtime/dotnetcore/8.0/bookworm.Dockerfile new file mode 100644 index 000000000..6d24356dc --- /dev/null +++ b/images/runtime/dotnetcore/8.0/bookworm.Dockerfile @@ -0,0 +1,108 @@ +# dotnet tools are currently available as part of SDK so we need to create them in an sdk image +# and copy them to our final runtime image +FROM mcr.microsoft.com/dotnet/sdk:8.0-preview AS tools-install +RUN dotnet tool install --tool-path /dotnetcore-tools dotnet-sos +RUN dotnet tool install --tool-path /dotnetcore-tools dotnet-trace +RUN dotnet tool install --tool-path /dotnetcore-tools dotnet-dump +RUN dotnet tool install --tool-path /dotnetcore-tools dotnet-counters +RUN dotnet tool install --tool-path /dotnetcore-tools dotnet-gcdump +RUN dotnet tool install --tool-path /dotnetcore-tools dotnet-monitor --version 8.* + +# Startup script generator +FROM mcr.microsoft.com/oss/go/microsoft/golang:1.20-bookworm as startupCmdGen + +# GOPATH is set to "/go" in the base image +WORKDIR /go/src +COPY src/startupscriptgenerator/src . +ARG GIT_COMMIT=unspecified +ARG BUILD_NUMBER=unspecified +ARG RELEASE_TAG_NAME=unspecified +ENV RELEASE_TAG_NAME=${RELEASE_TAG_NAME} +ENV GIT_COMMIT=${GIT_COMMIT} +ENV BUILD_NUMBER=${BUILD_NUMBER} +#Bake in client certificate path into image to avoid downloading it +ENV PATH_CA_CERTIFICATE="/etc/ssl/certs/ca-certificate.crt" +RUN chmod +x build.sh && ./build.sh dotnetcore /opt/startupcmdgen/startupcmdgen + + +FROM mcr.microsoft.com/mirror/docker/library/debian:bookworm-slim +ARG BUILD_DIR=/tmp/oryx/build +ADD build ${BUILD_DIR} + +RUN apt-get update \ + && apt-get install -y --no-install-recommends \ + # .NET Core dependencies + libc6 \ + libgcc1 \ + libgssapi-krb5-2 \ + libicu72 \ + libssl3 \ + libstdc++6 \ + zlib1g \ + lldb \ + curl \ + file \ + libgdiplus \ + && apt-get upgrade --assume-yes \ + && rm -rf /var/lib/apt/lists/* + +# Configure web servers to bind to port 80 when present +ENV ASPNETCORE_URLS=http://+:80 \ + # Enable detection of running in a container + DOTNET_RUNNING_IN_CONTAINER=true \ + PATH="/opt/dotnetcore-tools:${PATH}" + +COPY --from=tools-install /dotnetcore-tools /opt/dotnetcore-tools + +# Install .NET Core +RUN set -ex \ +# based on resolution on https://github.com/NuGet/Announcements/issues/49#issue-795386700 + && apt-get remove ca-certificates -y \ + && apt-get purge ca-certificates -y \ + && apt-get update \ + && apt-get install -f ca-certificates -y --no-install-recommends \ + && . ${BUILD_DIR}/__dotNetCoreRunTimeVersions.sh \ + && curl -SL --output dotnet.tar.gz https://dotnetcli.azureedge.net/dotnet/Runtime/$NET_CORE_APP_80/dotnet-runtime-$NET_CORE_APP_80-linux-x64.tar.gz \ + && echo "$NET_CORE_APP_80_SHA dotnet.tar.gz" | sha512sum -c - \ + && mkdir -p /usr/share/dotnet \ + && tar -zxf dotnet.tar.gz -C /usr/share/dotnet \ + && rm dotnet.tar.gz \ + && ln -s /usr/share/dotnet/dotnet /usr/bin/dotnet \ + # Install ASP.NET Core + && . ${BUILD_DIR}/__dotNetCoreRunTimeVersions.sh \ + && curl -SL --output aspnetcore.tar.gz https://dotnetcli.azureedge.net/dotnet/aspnetcore/Runtime/$ASPNET_CORE_APP_80/aspnetcore-runtime-$ASPNET_CORE_APP_80-linux-x64.tar.gz \ + && echo "$ASPNET_CORE_APP_80_SHA aspnetcore.tar.gz" | sha512sum -c - \ + && mkdir -p /usr/share/dotnet \ + && tar -zxf aspnetcore.tar.gz -C /usr/share/dotnet ./shared/Microsoft.AspNetCore.App \ + && rm aspnetcore.tar.gz \ + && dotnet-sos install \ + && rm -rf ${BUILD_DIR} + +# Bake Application Insights key from pipeline variable into final image +ARG AI_CONNECTION_STRING +ARG USER_DOTNET_AI_VERSION +ENV USER_DOTNET_AI_VERSION=${USER_DOTNET_AI_VERSION} +ENV ORYX_AI_CONNECTION_STRING=${AI_CONNECTION_STRING} +ENV DOTNET_VERSION=%DOTNET_VERSION% +ENV ASPNETCORE_LOGGING__CONSOLE__DISABLECOLORS=true +#Bake in client certificate path into image to avoid downloading it +ENV PATH_CA_CERTIFICATE="/etc/ssl/certs/ca-certificate.crt" + +ENV LANG="C.UTF-8" \ + LANGUAGE="C.UTF-8" \ + LC_ALL="C.UTF-8" + +# Oryx++ Builder variables +ENV CNB_STACK_ID="oryx.stacks.skeleton" +LABEL io.buildpacks.stack.id="oryx.stacks.skeleton" + +COPY --from=startupCmdGen /opt/startupcmdgen/startupcmdgen /opt/startupcmdgen/startupcmdgen +COPY DotNetCoreAgent.${USER_DOTNET_AI_VERSION}.zip /DotNetCoreAgent/appinsights.zip +RUN set -e \ + && echo $USER_DOTNET_AI_VERSION \ + && ln -s /opt/startupcmdgen/startupcmdgen /usr/local/bin/oryx \ + && apt-get update \ + && apt-get install unzip -y \ + && apt-get upgrade --assume-yes \ + && cd DotNetCoreAgent \ + && unzip appinsights.zip && rm appinsights.zip \ No newline at end of file diff --git a/images/runtime/dotnetcore/8.0/bullseye.Dockerfile b/images/runtime/dotnetcore/8.0/bullseye.Dockerfile new file mode 100644 index 000000000..c45841a42 --- /dev/null +++ b/images/runtime/dotnetcore/8.0/bullseye.Dockerfile @@ -0,0 +1,107 @@ +# dotnet tools are currently available as part of SDK so we need to create them in an sdk image +# and copy them to our final runtime image +FROM mcr.microsoft.com/dotnet/sdk:8.0-preview AS tools-install +RUN dotnet tool install --tool-path /dotnetcore-tools dotnet-sos +RUN dotnet tool install --tool-path /dotnetcore-tools dotnet-trace +RUN dotnet tool install --tool-path /dotnetcore-tools dotnet-dump +RUN dotnet tool install --tool-path /dotnetcore-tools dotnet-counters +RUN dotnet tool install --tool-path /dotnetcore-tools dotnet-gcdump +RUN dotnet tool install --tool-path /dotnetcore-tools dotnet-monitor --version 8.* + +# Startup script generator +FROM mcr.microsoft.com/oss/go/microsoft/golang:1.20-bullseye as startupCmdGen + +# GOPATH is set to "/go" in the base image +WORKDIR /go/src +COPY src/startupscriptgenerator/src . +ARG GIT_COMMIT=unspecified +ARG BUILD_NUMBER=unspecified +ARG RELEASE_TAG_NAME=unspecified +ENV RELEASE_TAG_NAME=${RELEASE_TAG_NAME} +ENV GIT_COMMIT=${GIT_COMMIT} +ENV BUILD_NUMBER=${BUILD_NUMBER} +#Bake in client certificate path into image to avoid downloading it +ENV PATH_CA_CERTIFICATE="/etc/ssl/certs/ca-certificate.crt" +RUN chmod +x build.sh && ./build.sh dotnetcore /opt/startupcmdgen/startupcmdgen + +FROM mcr.microsoft.com/mirror/docker/library/debian:bullseye-slim +ARG BUILD_DIR=/tmp/oryx/build +ADD build ${BUILD_DIR} + +RUN apt-get update \ + && apt-get install -y --no-install-recommends \ + # .NET Core dependencies + libc6 \ + libgcc1 \ + libgssapi-krb5-2 \ + libicu67 \ + libssl1.1 \ + libstdc++6 \ + zlib1g \ + lldb \ + curl \ + file \ + libgdiplus \ + && apt-get upgrade --assume-yes \ + && rm -rf /var/lib/apt/lists/* + +# Configure web servers to bind to port 80 when present +ENV ASPNETCORE_URLS=http://+:80 \ + # Enable detection of running in a container + DOTNET_RUNNING_IN_CONTAINER=true \ + PATH="/opt/dotnetcore-tools:${PATH}" + +COPY --from=tools-install /dotnetcore-tools /opt/dotnetcore-tools + +# Install .NET Core +RUN set -ex \ +# based on resolution on https://github.com/NuGet/Announcements/issues/49#issue-795386700 + && apt-get remove ca-certificates -y \ + && apt-get purge ca-certificates -y \ + && apt-get update \ + && apt-get install -f ca-certificates -y --no-install-recommends \ + && . ${BUILD_DIR}/__dotNetCoreRunTimeVersions.sh \ + && curl -SL --output dotnet.tar.gz https://dotnetcli.azureedge.net/dotnet/Runtime/$NET_CORE_APP_80/dotnet-runtime-$NET_CORE_APP_80-linux-x64.tar.gz \ + && echo "$NET_CORE_APP_80_SHA dotnet.tar.gz" | sha512sum -c - \ + && mkdir -p /usr/share/dotnet \ + && tar -zxf dotnet.tar.gz -C /usr/share/dotnet \ + && rm dotnet.tar.gz \ + && ln -s /usr/share/dotnet/dotnet /usr/bin/dotnet \ + # Install ASP.NET Core + && . ${BUILD_DIR}/__dotNetCoreRunTimeVersions.sh \ + && curl -SL --output aspnetcore.tar.gz https://dotnetcli.azureedge.net/dotnet/aspnetcore/Runtime/$ASPNET_CORE_APP_80/aspnetcore-runtime-$ASPNET_CORE_APP_80-linux-x64.tar.gz \ + && echo "$ASPNET_CORE_APP_80_SHA aspnetcore.tar.gz" | sha512sum -c - \ + && mkdir -p /usr/share/dotnet \ + && tar -zxf aspnetcore.tar.gz -C /usr/share/dotnet ./shared/Microsoft.AspNetCore.App \ + && rm aspnetcore.tar.gz \ + && dotnet-sos install \ + && rm -rf ${BUILD_DIR} + +# Bake Application Insights key from pipeline variable into final image +ARG AI_CONNECTION_STRING +ARG USER_DOTNET_AI_VERSION +ENV USER_DOTNET_AI_VERSION=${USER_DOTNET_AI_VERSION} +ENV ORYX_AI_CONNECTION_STRING=${AI_CONNECTION_STRING} +ENV DOTNET_VERSION=%DOTNET_VERSION% +ENV ASPNETCORE_LOGGING__CONSOLE__DISABLECOLORS=true +#Bake in client certificate path into image to avoid downloading it +ENV PATH_CA_CERTIFICATE="/etc/ssl/certs/ca-certificate.crt" + +ENV LANG="C.UTF-8" \ + LANGUAGE="C.UTF-8" \ + LC_ALL="C.UTF-8" + +# Oryx++ Builder variables +ENV CNB_STACK_ID="oryx.stacks.skeleton" +LABEL io.buildpacks.stack.id="oryx.stacks.skeleton" + +COPY --from=startupCmdGen /opt/startupcmdgen/startupcmdgen /opt/startupcmdgen/startupcmdgen +COPY DotNetCoreAgent.${USER_DOTNET_AI_VERSION}.zip /DotNetCoreAgent/appinsights.zip +RUN set -e \ + && echo $USER_DOTNET_AI_VERSION \ + && ln -s /opt/startupcmdgen/startupcmdgen /usr/local/bin/oryx \ + && apt-get update \ + && apt-get install unzip -y \ + && apt-get upgrade --assume-yes \ + && cd DotNetCoreAgent \ + && unzip appinsights.zip && rm appinsights.zip \ No newline at end of file diff --git a/images/runtime/node/18/bullseye.Dockerfile b/images/runtime/node/18/bullseye.Dockerfile new file mode 100644 index 000000000..57173526c --- /dev/null +++ b/images/runtime/node/18/bullseye.Dockerfile @@ -0,0 +1,75 @@ +ARG BASE_IMAGE + +# Startup script generator +FROM mcr.microsoft.com/oss/go/microsoft/golang:1.20-bullseye as startupCmdGen + +# GOPATH is set to "/go" in the base image +WORKDIR /go/src +COPY src/startupscriptgenerator/src . +ARG GIT_COMMIT=unspecified +ARG BUILD_NUMBER=unspecified +ARG RELEASE_TAG_NAME=unspecified +ENV RELEASE_TAG_NAME=${RELEASE_TAG_NAME} +ENV GIT_COMMIT=${GIT_COMMIT} +ENV BUILD_NUMBER=${BUILD_NUMBER} +RUN chmod +x build.sh && ./build.sh node /opt/startupcmdgen/startupcmdgen + +#FROM oryxdevmcr.azurecr.io/private/oryx/oryx-node-run-base-bullseye:${BUILD_NUMBER} +FROM ${BASE_IMAGE} + +RUN groupadd --gid 1000 node \ + && useradd --uid 1000 --gid node --shell /bin/bash --create-home node + +RUN ARCH= && dpkgArch="$(dpkg --print-architecture)" \ + && case "${dpkgArch##*-}" in \ + amd64) ARCH='x64';; \ + ppc64el) ARCH='ppc64le';; \ + s390x) ARCH='s390x';; \ + arm64) ARCH='arm64';; \ + armhf) ARCH='armv7l';; \ + i386) ARCH='x86';; \ + *) echo "unsupported architecture"; exit 1 ;; \ + esac + +ARG NODE18_VERSION +ENV NODE_VERSION ${NODE18_VERSION} +ENV NPM_CONFIG_LOGLEVEL info +ARG BUILD_DIR=/tmp/oryx/build +ARG IMAGES_DIR=/tmp/oryx/images +COPY nodejs-bullseye-${NODE18_VERSION}.tar.gz . +RUN set -e \ + && mkdir -p /opt/nodejs/${NODE18_VERSION} \ + && tar -xzf nodejs-bullseye-${NODE18_VERSION}.tar.gz -C /usr/local \ + && rm nodejs-bullseye-${NODE18_VERSION}.tar.gz \ + && ln -s /usr/local/bin/node /usr/local/bin/nodejs +RUN . ${BUILD_DIR}/__nodeVersions.sh \ + && npm install -g npm@${NPM_VERSION} +RUN ${IMAGES_DIR}/runtime/node/installDependencies.sh +RUN rm -rf /tmp/oryx + +# Bake Application Insights key from pipeline variable into final image +ARG AI_CONNECTION_STRING +ENV ORYX_AI_CONNECTION_STRING=${AI_CONNECTION_STRING} +#Bake in client certificate path into image to avoid downloading it +ENV PATH_CA_CERTIFICATE="/etc/ssl/certs/ca-certificate.crt" +# Oryx++ Builder variables +ENV CNB_STACK_ID="oryx.stacks.skeleton" +LABEL io.buildpacks.stack.id="oryx.stacks.skeleton" + +COPY --from=startupCmdGen /opt/startupcmdgen/startupcmdgen /opt/startupcmdgen/startupcmdgen + +# Node wrapper is used to debug apps when node is executed indirectly, e.g. by npm. +COPY src/startupscriptgenerator/src/node/wrapper/node /opt/node-wrapper/ +RUN ln -s /opt/startupcmdgen/startupcmdgen /usr/local/bin/oryx \ + && chmod a+x /opt/node-wrapper/node \ + && apt-get update \ + && apt-get upgrade --assume-yes \ + && rm -rf /var/lib/apt/lists/* + +ENV LANG="C.UTF-8" \ + LANGUAGE="C.UTF-8" \ + LC_ALL="C.UTF-8" + +CMD [ "node" ] + + diff --git a/images/runtime/node/20/bookworm.Dockerfile b/images/runtime/node/20/bookworm.Dockerfile index 71012b723..ffec08e78 100644 --- a/images/runtime/node/20/bookworm.Dockerfile +++ b/images/runtime/node/20/bookworm.Dockerfile @@ -1,6 +1,7 @@ -ARG DEBIAN_FLAVOR +ARG BASE_IMAGE + # Startup script generator -FROM mcr.microsoft.com/oss/go/microsoft/golang:1.20-${DEBIAN_FLAVOR} as startupCmdGen +FROM mcr.microsoft.com/oss/go/microsoft/golang:1.20-bookworm as startupCmdGen # GOPATH is set to "/go" in the base image WORKDIR /go/src @@ -11,9 +12,41 @@ ARG RELEASE_TAG_NAME=unspecified ENV RELEASE_TAG_NAME=${RELEASE_TAG_NAME} ENV GIT_COMMIT=${GIT_COMMIT} ENV BUILD_NUMBER=${BUILD_NUMBER} -RUN ./build.sh node /opt/startupcmdgen/startupcmdgen +RUN chmod +x build.sh && ./build.sh node /opt/startupcmdgen/startupcmdgen -FROM mcr.microsoft.com/oryx/base:node-20-debian-bookworm-20240221.3 +#FROM oryxdevmcr.azurecr.io/private/oryx/oryx-node-run-base-bookworm:${BUILD_NUMBER} +FROM ${BASE_IMAGE} + +RUN groupadd --gid 1000 node \ + && useradd --uid 1000 --gid node --shell /bin/bash --create-home node + +RUN ARCH= && dpkgArch="$(dpkg --print-architecture)" \ + && case "${dpkgArch##*-}" in \ + amd64) ARCH='x64';; \ + ppc64el) ARCH='ppc64le';; \ + s390x) ARCH='s390x';; \ + arm64) ARCH='arm64';; \ + armhf) ARCH='armv7l';; \ + i386) ARCH='x86';; \ + *) echo "unsupported architecture"; exit 1 ;; \ + esac + +ARG NODE20_VERSION +ENV NODE_VERSION ${NODE20_VERSION} +ENV NPM_CONFIG_LOGLEVEL info +ARG BUILD_DIR=/tmp/oryx/build +ARG IMAGES_DIR=/tmp/oryx/images + +COPY nodejs-bookworm-${NODE20_VERSION}.tar.gz . +RUN set -e \ + && mkdir -p /opt/nodejs/${NODE20_VERSION} \ + && tar -xzf nodejs-bookworm-${NODE20_VERSION}.tar.gz -C /usr/local \ + && rm nodejs-bookworm-${NODE20_VERSION}.tar.gz \ + && ln -s /usr/local/bin/node /usr/local/bin/nodejs +RUN . ${BUILD_DIR}/__nodeVersions.sh \ + && npm install -g npm@${NPM_VERSION} +RUN ${IMAGES_DIR}/runtime/node/installDependencies.sh +RUN rm -rf /tmp/oryx # Bake Application Insights key from pipeline variable into final image ARG AI_CONNECTION_STRING @@ -36,4 +69,8 @@ RUN ln -s /opt/startupcmdgen/startupcmdgen /usr/local/bin/oryx \ ENV LANG="C.UTF-8" \ LANGUAGE="C.UTF-8" \ - LC_ALL="C.UTF-8" \ No newline at end of file + LC_ALL="C.UTF-8" + +CMD [ "node" ] + + diff --git a/images/runtime/node/20/bullseye.Dockerfile b/images/runtime/node/20/bullseye.Dockerfile new file mode 100644 index 000000000..a959d9951 --- /dev/null +++ b/images/runtime/node/20/bullseye.Dockerfile @@ -0,0 +1,76 @@ +ARG BASE_IMAGE + +# Startup script generator +FROM mcr.microsoft.com/oss/go/microsoft/golang:1.20-bullseye as startupCmdGen + +# GOPATH is set to "/go" in the base image +WORKDIR /go/src +COPY src/startupscriptgenerator/src . +ARG GIT_COMMIT=unspecified +ARG BUILD_NUMBER=unspecified +ARG RELEASE_TAG_NAME=unspecified +ENV RELEASE_TAG_NAME=${RELEASE_TAG_NAME} +ENV GIT_COMMIT=${GIT_COMMIT} +ENV BUILD_NUMBER=${BUILD_NUMBER} +RUN chmod +x build.sh && ./build.sh node /opt/startupcmdgen/startupcmdgen + +#FROM oryxdevmcr.azurecr.io/private/oryx/oryx-node-run-base-bullseye:${BUILD_NUMBER} +FROM ${BASE_IMAGE} + +RUN groupadd --gid 1000 node \ + && useradd --uid 1000 --gid node --shell /bin/bash --create-home node + +RUN ARCH= && dpkgArch="$(dpkg --print-architecture)" \ + && case "${dpkgArch##*-}" in \ + amd64) ARCH='x64';; \ + ppc64el) ARCH='ppc64le';; \ + s390x) ARCH='s390x';; \ + arm64) ARCH='arm64';; \ + armhf) ARCH='armv7l';; \ + i386) ARCH='x86';; \ + *) echo "unsupported architecture"; exit 1 ;; \ + esac + +ARG NODE20_VERSION +ENV NODE_VERSION ${NODE20_VERSION} +ENV NPM_CONFIG_LOGLEVEL info +ARG BUILD_DIR=/tmp/oryx/build +ARG IMAGES_DIR=/tmp/oryx/images + +COPY nodejs-bullseye-${NODE20_VERSION}.tar.gz . +RUN set -e \ + && mkdir -p /opt/nodejs/${NODE20_VERSION} \ + && tar -xzf nodejs-bullseye-${NODE20_VERSION}.tar.gz -C /usr/local \ + && rm nodejs-bullseye-${NODE20_VERSION}.tar.gz \ + && ln -s /usr/local/bin/node /usr/local/bin/nodejs +RUN . ${BUILD_DIR}/__nodeVersions.sh \ + && npm install -g npm@${NPM_VERSION} +RUN ${IMAGES_DIR}/runtime/node/installDependencies.sh +RUN rm -rf /tmp/oryx + +# Bake Application Insights key from pipeline variable into final image +ARG AI_CONNECTION_STRING +ENV ORYX_AI_CONNECTION_STRING=${AI_CONNECTION_STRING} +#Bake in client certificate path into image to avoid downloading it +ENV PATH_CA_CERTIFICATE="/etc/ssl/certs/ca-certificate.crt" +# Oryx++ Builder variables +ENV CNB_STACK_ID="oryx.stacks.skeleton" +LABEL io.buildpacks.stack.id="oryx.stacks.skeleton" + +COPY --from=startupCmdGen /opt/startupcmdgen/startupcmdgen /opt/startupcmdgen/startupcmdgen + +# Node wrapper is used to debug apps when node is executed indirectly, e.g. by npm. +COPY src/startupscriptgenerator/src/node/wrapper/node /opt/node-wrapper/ +RUN ln -s /opt/startupcmdgen/startupcmdgen /usr/local/bin/oryx \ + && chmod a+x /opt/node-wrapper/node \ + && apt-get update \ + && apt-get upgrade --assume-yes \ + && rm -rf /var/lib/apt/lists/* + +ENV LANG="C.UTF-8" \ + LANGUAGE="C.UTF-8" \ + LC_ALL="C.UTF-8" + +CMD [ "node" ] + + diff --git a/images/runtime/php-fpm/.gitignore b/images/runtime/php-fpm/.gitignore deleted file mode 100644 index 4365a277e..000000000 --- a/images/runtime/php-fpm/.gitignore +++ /dev/null @@ -1,4 +0,0 @@ -Dockerfile -buster.Dockerfile -base.Dockerfile -base.Buster.Dockerfile \ No newline at end of file diff --git a/images/runtime/php-fpm/8.1/bullseye.Dockerfile b/images/runtime/php-fpm/8.1/bullseye.Dockerfile new file mode 100644 index 000000000..b6f9a5b4a --- /dev/null +++ b/images/runtime/php-fpm/8.1/bullseye.Dockerfile @@ -0,0 +1,437 @@ +ARG BASE_IMAGE + +# Startup script generator +FROM mcr.microsoft.com/oss/go/microsoft/golang:1.20-bullseye as startupCmdGen + +# GOPATH is set to "/go" in the base image +WORKDIR /go/src +COPY src/startupscriptgenerator/src . +ARG GIT_COMMIT=unspecified +ARG BUILD_NUMBER=unspecified +ARG RELEASE_TAG_NAME=unspecified +ENV RELEASE_TAG_NAME=${RELEASE_TAG_NAME} +ENV GIT_COMMIT=${GIT_COMMIT} +ENV BUILD_NUMBER=${BUILD_NUMBER} +RUN chmod +x build.sh && ./build.sh php /opt/startupcmdgen/startupcmdgen + +# From https://github.com/docker-library/php.git +FROM ${BASE_IMAGE} +ARG IMAGES_DIR=/tmp/oryx/images + +# do NOT merge this content with above line because the +# above line is shared across all php images +# Install the Microsoft SQL Server PDO driver on supported versions only. +# - https://docs.microsoft.com/en-us/sql/connect/php/installation-tutorial-linux-mac +# - https://docs.microsoft.com/en-us/sql/connect/odbc/linux-mac/installing-the-microsoft-odbc-driver-for-sql-server +RUN set -eux \ + && apt-get update \ + && apt-get install -y --no-install-recommends \ + gnupg2 \ + apt-transport-https \ + && curl https://packages.microsoft.com/keys/microsoft.asc | apt-key add - \ + && curl https://packages.microsoft.com/config/debian/11/prod.list > /etc/apt/sources.list.d/mssql-release.list \ + && apt-get update \ + && ACCEPT_EULA=Y apt-get install -y msodbcsql17 msodbcsql18=18.1.2.1-1 odbcinst1debian2=2.3.7 odbcinst=2.3.7 unixodbc=2.3.7 unixodbc-dev=2.3.7 + +ENV PHP_INI_DIR /usr/local/etc/php +RUN set -eux; \ + mkdir -p "$PHP_INI_DIR/conf.d"; \ +# allow running as an arbitrary user (https://github.com/docker-library/php/issues/743) + [ ! -d /var/www/html ]; \ + mkdir -p /var/www/html; \ + chown www-data:www-data /var/www/html; \ + chmod 777 /var/www/html + +#### +ENV PHP_EXTRA_CONFIGURE_ARGS --enable-fpm --with-fpm-user=www-data --with-fpm-group=www-data --disable-cgi ac_cv_func_mmap=no +#### + +# Apply stack smash protection to functions using local buffers and alloca() +# Make PHP's main executable position-independent (improves ASLR security mechanism, and has no performance impact on x86_64) +# Enable optimization (-O2) +# Enable linker optimization (this sorts the hash buckets to improve cache locality, and is non-default) +# Adds GNU HASH segments to generated executables (this is used if present, and is much faster than sysv hash; in this configuration, sysv hash is also generated) +# https://github.com/docker-library/php/issues/272 +# -D_LARGEFILE_SOURCE and -D_FILE_OFFSET_BITS=64 (https://www.php.net/manual/en/intro.filesystem.php) +ENV PHP_CFLAGS="-fstack-protector-strong -fpic -fpie -O2 -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64" +ENV PHP_CPPFLAGS="$PHP_CFLAGS" +ENV PHP_LDFLAGS="-Wl,-O1 -Wl,--hash-style=both -pie" + +ENV GPG_KEYS 528995BFEDFBA7191D46839EF9BA0ADA31CBD89E 39B641343D8C104B2B146DC3F9C39DC0B9698544 F1F692238FBC1666E5A5CCD4199F9DFEF6FFBAFD + + +ENV PHP_VERSION 8.1.27 +ENV PHP_URL="https://www.php.net/get/php-8.1.27.tar.xz/from/this/mirror" PHP_ASC_URL="https://www.php.net/get/php-8.1.27.tar.xz.asc/from/this/mirror" +ENV PHP_SHA256="479e65c3f05714d4aace1370e617d78e49e996ec7a7579a5be47535be61f0658" PHP_MD5="" + +RUN set -eux; \ + \ + savedAptMark="$(apt-mark showmanual)"; \ + apt-get update; \ + apt-get install -y --no-install-recommends gnupg dirmngr; \ + rm -rf /var/lib/apt/lists/*; \ + \ + mkdir -p /usr/src; \ + cd /usr/src; \ + \ + curl -fsSL -o php.tar.xz "$PHP_URL"; \ + \ + if [ -n "$PHP_SHA256" ]; then \ + echo "$PHP_SHA256 *php.tar.xz" | sha256sum -c -; \ + fi; \ + if [ -n "$PHP_MD5" ]; then \ + echo "$PHP_MD5 *php.tar.xz" | md5sum -c -; \ + fi; \ + \ + if [ -n "$PHP_ASC_URL" ]; then \ + curl -fsSL -o php.tar.xz.asc "$PHP_ASC_URL"; \ + export GNUPGHOME="$(mktemp -d)"; \ + ${IMAGES_DIR}/receiveGpgKeys.sh $GPG_KEYS; \ + gpg --batch --verify php.tar.xz.asc php.tar.xz; \ + gpgconf --kill all; \ + rm -rf "$GNUPGHOME"; \ + fi; \ + \ + apt-mark auto '.*' > /dev/null; \ + apt-mark manual $savedAptMark > /dev/null; \ + apt-get purge -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false + +COPY images/runtime/php-fpm/8.1/docker-php-source /usr/local/bin/ +RUN chmod +x /usr/local/bin/docker-php-source + +RUN set -eux; \ + \ + + savedAptMark="$(apt-mark showmanual)"; \ + apt-get update; \ + apt-get install -y --no-install-recommends \ + libargon2-dev \ + libcurl4-openssl-dev \ + libedit-dev \ + libonig-dev \ + libsodium-dev \ + libsqlite3-dev \ + libssl-dev \ + libxml2-dev \ + zlib1g-dev \ + ${PHP_EXTRA_BUILD_DEPS:-} \ + ; \ + rm -rf /var/lib/apt/lists/*; \ + \ + export \ + CFLAGS="$PHP_CFLAGS" \ + CPPFLAGS="$PHP_CPPFLAGS" \ + LDFLAGS="$PHP_LDFLAGS" \ + ; \ + #which docker-php-source; \ + awk '{ sub("\r$", ""); print }' /usr/local/bin/docker-php-source > /usr/local/bin/docker-php-source_new; \ + cat /usr/local/bin/docker-php-source_new; \ + chmod +x /usr/local/bin/docker-php-source_new ; \ + docker-php-source_new extract; \ + ls -l /usr/src/; \ + cd /usr/src/php; \ + gnuArch="$(dpkg-architecture --query DEB_BUILD_GNU_TYPE)"; \ + debMultiarch="$(dpkg-architecture --query DEB_BUILD_MULTIARCH)"; \ +# https://bugs.php.net/bug.php?id=74125 + if [ ! -d /usr/include/curl ]; then \ + ln -sT "/usr/include/$debMultiarch/curl" /usr/local/include/curl; \ + fi; \ + ./configure \ + --build="$gnuArch" \ + --with-config-file-path="$PHP_INI_DIR" \ + --with-config-file-scan-dir="$PHP_INI_DIR/conf.d" \ + \ +# make sure invalid --configure-flags are fatal errors intead of just warnings + --enable-option-checking=fatal \ + \ +# https://github.com/docker-library/php/issues/439 + --with-mhash \ + \ +# --enable-ftp is included here because ftp_ssl_connect() needs ftp to be compiled statically (see https://github.com/docker-library/php/issues/236) + --enable-ftp \ +# --enable-mbstring is included here because otherwise there's no way to get pecl to use it properly (see https://github.com/docker-library/php/issues/195) + --enable-mbstring \ +# --enable-mysqlnd is included here because it's harder to compile after the fact than extensions are (since it's a plugin for several extensions, not an extension in itself) + --enable-mysqlnd \ +# https://wiki.php.net/rfc/argon2_password_hash (7.2+) + --with-password-argon2 \ +# https://wiki.php.net/rfc/libsodium + --with-sodium=shared \ +# always build against system sqlite3 (https://github.com/php/php-src/commit/6083a387a81dbbd66d6316a3a12a63f06d5f7109) + --with-pdo-sqlite=/usr \ + --with-sqlite3=/usr \ + \ + --with-curl \ + --with-libedit \ + --with-openssl \ + --with-zlib \ + \ +# in PHP 7.4+, the pecl/pear installers are officially deprecated (requiring an explicit "--with-pear") and will be removed in PHP 8+; see also https://github.com/docker-library/php/issues/846#issuecomment-505638494 + --with-pear \ + \ +# bundled pcre does not support JIT on s390x +# https://manpages.debian.org/stretch/libpcre3-dev/pcrejit.3.en.html#AVAILABILITY_OF_JIT_SUPPORT + $(test "$gnuArch" = 's390x-linux-gnu' && echo '--without-pcre-jit') \ + --with-libdir="lib/$debMultiarch" \ + \ + ${PHP_EXTRA_CONFIGURE_ARGS:-} \ + ; \ + make -j "$(nproc)"; \ + find -type f -name '*.a' -delete; \ + make install; \ + find /usr/local/bin /usr/local/sbin -type f -executable -exec strip --strip-all '{}' + || true; \ + make clean; \ + \ +# https://github.com/docker-library/php/issues/692 (copy default example "php.ini" files somewhere easily discoverable) + cp -v php.ini-* "$PHP_INI_DIR/"; \ + \ + cd /; \ + docker-php-source_new delete; \ + \ +# reset apt-mark's "manual" list so that "purge --auto-remove" will remove all build dependencies + apt-mark auto '.*' > /dev/null; \ + [ -z "$savedAptMark" ] || apt-mark manual $savedAptMark; \ + find /usr/local -type f -executable -exec ldd '{}' ';' \ + | awk '/=>/ { print $(NF-1) }' \ + | sort -u \ + | xargs -r dpkg-query --search \ + | cut -d: -f1 \ + | sort -u \ + | xargs -r apt-mark manual \ + ; \ + apt-get purge -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false; \ + \ +# update pecl channel definitions https://github.com/docker-library/php/issues/443 + pecl update-channels; \ + rm -rf /tmp/pear ~/.pearrc; \ +# smoke test + php --version + +COPY images/runtime/php-fpm/8.1/docker-php-ext-* images/runtime/php-fpm/8.1/docker-php-entrypoint /usr/local/bin/ +RUN chmod +x /usr/local/bin/docker-php-ext-* +RUN chmod +x /usr/local/bin/docker-php-entrypoint + +# sodium was built as a shared module (so that it can be replaced later if so desired), so let's enable it too (https://github.com/docker-library/php/issues/598) +RUN docker-php-ext-enable sodium + +ENTRYPOINT ["docker-php-entrypoint"] +#### +WORKDIR /var/www/html + +RUN set -eux; \ + cd /usr/local/etc; \ + if [ -d php-fpm.d ]; then \ + # for some reason, upstream's php-fpm.conf.default has "include=NONE/etc/php-fpm.d/*.conf" + sed 's!=NONE/!=!g' php-fpm.conf.default | tee php-fpm.conf > /dev/null; \ + cp php-fpm.d/www.conf.default php-fpm.d/www.conf; \ + else \ + # PHP 5.x doesn't use "include=" by default, so we'll create our own simple config that mimics PHP 7+ for consistency + mkdir php-fpm.d; \ + cp php-fpm.conf.default php-fpm.d/www.conf; \ + { \ + echo '[global]'; \ + echo 'include=etc/php-fpm.d/*.conf'; \ + } | tee php-fpm.conf; \ + fi; \ + { \ + echo '[global]'; \ + echo 'error_log = /proc/self/fd/2'; \ + echo; echo '; https://github.com/docker-library/php/pull/725#issuecomment-443540114'; echo 'log_limit = 8192'; \ + echo; \ + echo '[www]'; \ + echo '; if we send this to /proc/self/fd/1, it never appears'; \ + echo 'access.log = /proc/self/fd/2'; \ + echo; \ + echo 'clear_env = no'; \ + echo; \ + echo '; Ensure worker stdout and stderr are sent to the main error log.'; \ + echo 'catch_workers_output = yes'; \ + echo 'decorate_workers_output = no'; \ + } | tee php-fpm.d/docker.conf; \ + { \ + echo '[global]'; \ + echo 'daemonize = no'; \ + echo; \ + echo '[www]'; \ + echo 'listen = 9000'; \ + } | tee php-fpm.d/zz-docker.conf + +RUN rm -rf /var/lib/apt/lists/* + +# Override stop signal to stop process gracefully +# https://github.com/php/php-src/blob/17baa87faddc2550def3ae7314236826bc1b1398/sapi/fpm/php-fpm.8.in#L163 +STOPSIGNAL SIGQUIT + +EXPOSE 9000 +CMD ["php-fpm"] +#### + +## base dockerfile +SHELL ["/bin/bash", "-c"] + +ARG PHP_VERSION +ENV PHP_VERSION ${PHP_VERSION} + +# An environment variable for oryx run-script to know the origin of php image so that +# start-up command can be determined while creating run script +ENV PHP_ORIGIN php-fpm +ENV NGINX_RUN_USER www-data +# Edit the default DocumentRoot setting +ENV NGINX_DOCUMENT_ROOT /home/site/wwwroot +# Install NGINX latest stable version using APT Method with Nginx Repository instead of distribution-provided one: +# - https://www.linuxcapable.com/how-to-install-latest-nginx-mainline-or-stable-on-debian-11/ +RUN apt-get update +RUN apt install curl nano -y +RUN curl -sSL https://packages.sury.org/nginx/README.txt | bash -x +RUN apt-get update +RUN yes '' | apt-get install nginx-core nginx-common nginx nginx-full -y +RUN ls -l /etc/nginx +COPY images/runtime/php-fpm/nginx_conf/default.conf /etc/nginx/sites-available/default +COPY images/runtime/php-fpm/nginx_conf/default.conf /etc/nginx/sites-enabled/default +RUN sed -ri -e 's!worker_connections 768!worker_connections 10068!g' /etc/nginx/nginx.conf +RUN sed -ri -e 's!# multi_accept on!multi_accept on!g' /etc/nginx/nginx.conf +RUN ls -l /etc/nginx +RUN nginx -t +# Edit the default port setting +ENV NGINX_PORT 8080 + +# Install common PHP extensions +# TEMPORARY: Holding odbc related packages from upgrading. +RUN apt-mark hold msodbcsql18 odbcinst1debian2 odbcinst unixodbc unixodbc-dev \ + && apt-get update \ + && apt-get upgrade -y \ + && ln -s /usr/lib/x86_64-linux-gnu/libldap.so /usr/lib/libldap.so \ + && ln -s /usr/lib/x86_64-linux-gnu/liblber.so /usr/lib/liblber.so \ + && ln -s /usr/include/x86_64-linux-gnu/gmp.h /usr/include/gmp.h + +RUN set -eux; \ + if [[ $PHP_VERSION == 7.4.* || $PHP_VERSION == 8.0.* || $PHP_VERSION == 8.1.* || $PHP_VERSION == 8.2.* || $PHP_VERSION == 8.3.* ]]; then \ + apt-get update \ + && apt-get upgrade -y \ + && apt-get install -y --no-install-recommends apache2-dev \ + && docker-php-ext-configure gd --with-freetype --with-jpeg \ + && PHP_OPENSSL=yes docker-php-ext-configure imap --with-kerberos --with-imap-ssl ; \ + else \ + docker-php-ext-configure gd --with-png-dir=/usr --with-jpeg-dir=/usr \ + && docker-php-ext-configure imap --with-kerberos --with-imap-ssl ; \ + fi + +RUN docker-php-ext-configure pdo_odbc --with-pdo-odbc=unixODBC,/usr \ + && docker-php-ext-install gd \ + mysqli \ + opcache \ + pdo \ + pdo_mysql \ + pdo_pgsql \ + pgsql \ + ldap \ + intl \ + gmp \ + zip \ + bcmath \ + mbstring \ + pcntl \ + calendar \ + exif \ + gettext \ + imap \ + tidy \ + shmop \ + soap \ + sockets \ + sysvmsg \ + sysvsem \ + sysvshm \ + pdo_odbc \ +# deprecated from 7.4, so should be avoided in general template for all php versions +# xmlrpc \ + xsl +RUN pecl install redis && docker-php-ext-enable redis + +# https://github.com/Imagick/imagick/issues/331 +# https://github.com/ihneo/php/pull/24/files +RUN set -eux; \ + if [[ $PHP_VERSION != 8.3.* ]]; then \ + pecl install imagick && docker-php-ext-enable imagick; \ + fi + +# deprecated from 5.*, so should be avoided +RUN set -eux; \ + if [[ $PHP_VERSION != 5.* && $PHP_VERSION != 7.0.* ]]; then \ + pecl install mongodb && docker-php-ext-enable mongodb; \ + fi + +# https://github.com/microsoft/mysqlnd_azure, Supports 7.2*, 7.3* and 7.4* +RUN set -eux; \ + if [[ $PHP_VERSION == 7.2.* || $PHP_VERSION == 7.3.* || $PHP_VERSION == 7.4.* ]]; then \ + echo "pecl/mysqlnd_azure requires PHP (version >= 7.2.*, version <= 7.99.99)"; \ + pecl install mysqlnd_azure \ + && docker-php-ext-enable mysqlnd_azure; \ + fi + +# Install the Microsoft SQL Server PDO driver on supported versions only. +# - https://docs.microsoft.com/en-us/sql/connect/php/installation-tutorial-linux-mac +# - https://docs.microsoft.com/en-us/sql/connect/odbc/linux-mac/installing-the-microsoft-odbc-driver-for-sql-server +# For php|8.0, latest stable version of pecl/sqlsrv, pecl/pdo_sqlsrv is 5.11.0 +RUN set -eux; \ + if [[ $PHP_VERSION == 8.0.* ]]; then \ + pecl install sqlsrv-5.11.0 pdo_sqlsrv-5.11.0 \ + && echo extension=pdo_sqlsrv.so >> $(php --ini | grep "Scan for additional .ini files" | sed -e "s|.*:\s*||")/30-pdo_sqlsrv.ini \ + && echo extension=sqlsrv.so >> $(php --ini | grep "Scan for additional .ini files" | sed -e "s|.*:\s*||")/20-sqlsrv.ini; \ + fi + +# Latest pecl/sqlsrv, pecl/pdo_sqlsrv requires PHP (version >= 8.1.0) +RUN set -eux; \ + if [[ $PHP_VERSION == 8.1.* || $PHP_VERSION == 8.2.* || $PHP_VERSION == 8.3.* ]]; then \ + pecl install sqlsrv pdo_sqlsrv \ + && echo extension=pdo_sqlsrv.so >> `php --ini | grep "Scan for additional .ini files" | sed -e "s|.*:\s*||"`/30-pdo_sqlsrv.ini \ + && echo extension=sqlsrv.so >> `php --ini | grep "Scan for additional .ini files" | sed -e "s|.*:\s*||"`/20-sqlsrv.ini; \ + fi + + +RUN { \ + echo 'opcache.memory_consumption=128'; \ + echo 'opcache.interned_strings_buffer=8'; \ + echo 'opcache.max_accelerated_files=4000'; \ + echo 'opcache.revalidate_freq=60'; \ + echo 'opcache.fast_shutdown=1'; \ + echo 'opcache.enable_cli=1'; \ + } > /usr/local/etc/php/conf.d/opcache-recommended.ini + +# NOTE: zend_extension=opcache is already configured via docker-php-ext-install, above +RUN { \ + echo 'error_log=/var/log/apache2/php-error.log'; \ + echo 'display_errors=Off'; \ + echo 'log_errors=On'; \ + echo 'display_startup_errors=Off'; \ + echo 'date.timezone=UTC'; \ + } > /usr/local/etc/php/conf.d/php.ini + +RUN set -x \ + && docker-php-source extract \ + && cd /usr/src/php/ext/odbc \ + && phpize \ + && sed -ri 's@^ *test +"\$PHP_.*" *= *"no" *&& *PHP_.*=yes *$@#&@g' configure \ + && chmod +x ./configure \ + && ./configure --with-unixODBC=shared,/usr \ + && docker-php-ext-install odbc \ + && rm -rf /var/lib/apt/lists/* + +ENV LANG="C.UTF-8" \ + LANGUAGE="C.UTF-8" \ + LC_ALL="C.UTF-8" + +# Bake Application Insights key from pipeline variable into final image +ARG AI_CONNECTION_STRING +ENV ORYX_AI_CONNECTION_STRING=${AI_CONNECTION_STRING} + +# Oryx++ Builder variables +ENV CNB_STACK_ID="oryx.stacks.skeleton" +LABEL io.buildpacks.stack.id="oryx.stacks.skeleton" + +COPY --from=startupCmdGen /opt/startupcmdgen/startupcmdgen /opt/startupcmdgen/startupcmdgen +RUN ln -s /opt/startupcmdgen/startupcmdgen /usr/local/bin/oryx + +ENV LANG="C.UTF-8" \ + LANGUAGE="C.UTF-8" \ + LC_ALL="C.UTF-8" \ No newline at end of file diff --git a/images/runtime/php-fpm/8.1/buster.Dockerfile b/images/runtime/php-fpm/8.1/buster.Dockerfile new file mode 100644 index 000000000..9f31ddb6a --- /dev/null +++ b/images/runtime/php-fpm/8.1/buster.Dockerfile @@ -0,0 +1,439 @@ +ARG BASE_IMAGE + +# Startup script generator +FROM mcr.microsoft.com/oss/go/microsoft/golang:1.20-buster as startupCmdGen + +# GOPATH is set to "/go" in the base image +WORKDIR /go/src +COPY src/startupscriptgenerator/src . +ARG GIT_COMMIT=unspecified +ARG BUILD_NUMBER=unspecified +ARG RELEASE_TAG_NAME=unspecified +ENV RELEASE_TAG_NAME=${RELEASE_TAG_NAME} +ENV GIT_COMMIT=${GIT_COMMIT} +ENV BUILD_NUMBER=${BUILD_NUMBER} +RUN chmod +x build.sh && ./build.sh php /opt/startupcmdgen/startupcmdgen + +# From https://github.com/docker-library/php.git +FROM ${BASE_IMAGE} +ARG IMAGES_DIR=/tmp/oryx/images + +# do NOT merge this content with above line because the +# above line is shared across all php images +# Install the Microsoft SQL Server PDO driver on supported versions only. +# - https://docs.microsoft.com/en-us/sql/connect/php/installation-tutorial-linux-mac +# - https://docs.microsoft.com/en-us/sql/connect/odbc/linux-mac/installing-the-microsoft-odbc-driver-for-sql-server +RUN set -eux \ + && apt-get update \ + && apt-get install -y --no-install-recommends \ + gnupg2 \ + apt-transport-https \ + && curl https://packages.microsoft.com/keys/microsoft.asc | apt-key add - \ + && curl https://packages.microsoft.com/config/debian/10/prod.list > /etc/apt/sources.list.d/mssql-release.list \ + && apt-get update \ + && ACCEPT_EULA=Y apt-get install -y msodbcsql17 msodbcsql18=18.1.2.1-1 odbcinst1debian2=2.3.7 odbcinst=2.3.7 unixodbc=2.3.7 unixodbc-dev=2.3.7 + +ENV PHP_INI_DIR /usr/local/etc/php +RUN set -eux; \ + mkdir -p "$PHP_INI_DIR/conf.d"; \ +# allow running as an arbitrary user (https://github.com/docker-library/php/issues/743) + [ ! -d /var/www/html ]; \ + mkdir -p /var/www/html; \ + chown www-data:www-data /var/www/html; \ + chmod 777 /var/www/html + +#### +ENV PHP_EXTRA_CONFIGURE_ARGS --enable-fpm --with-fpm-user=www-data --with-fpm-group=www-data --disable-cgi ac_cv_func_mmap=no +#### + +# Apply stack smash protection to functions using local buffers and alloca() +# Make PHP's main executable position-independent (improves ASLR security mechanism, and has no performance impact on x86_64) +# Enable optimization (-O2) +# Enable linker optimization (this sorts the hash buckets to improve cache locality, and is non-default) +# Adds GNU HASH segments to generated executables (this is used if present, and is much faster than sysv hash; in this configuration, sysv hash is also generated) +# https://github.com/docker-library/php/issues/272 +# -D_LARGEFILE_SOURCE and -D_FILE_OFFSET_BITS=64 (https://www.php.net/manual/en/intro.filesystem.php) +ENV PHP_CFLAGS="-fstack-protector-strong -fpic -fpie -O2 -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64" +ENV PHP_CPPFLAGS="$PHP_CFLAGS" +ENV PHP_LDFLAGS="-Wl,-O1 -Wl,--hash-style=both -pie" + +ENV GPG_KEYS 528995BFEDFBA7191D46839EF9BA0ADA31CBD89E 39B641343D8C104B2B146DC3F9C39DC0B9698544 F1F692238FBC1666E5A5CCD4199F9DFEF6FFBAFD + + +ENV PHP_VERSION 8.1.27 +ENV PHP_URL="https://www.php.net/get/php-8.1.27.tar.xz/from/this/mirror" PHP_ASC_URL="https://www.php.net/get/php-8.1.27.tar.xz.asc/from/this/mirror" +ENV PHP_SHA256="479e65c3f05714d4aace1370e617d78e49e996ec7a7579a5be47535be61f0658" PHP_MD5="" + +RUN set -eux; \ + \ + savedAptMark="$(apt-mark showmanual)"; \ + apt-get update; \ + apt-get install -y --no-install-recommends gnupg dirmngr; \ + rm -rf /var/lib/apt/lists/*; \ + \ + mkdir -p /usr/src; \ + cd /usr/src; \ + \ + curl -fsSL -o php.tar.xz "$PHP_URL"; \ + \ + if [ -n "$PHP_SHA256" ]; then \ + echo "$PHP_SHA256 *php.tar.xz" | sha256sum -c -; \ + fi; \ + if [ -n "$PHP_MD5" ]; then \ + echo "$PHP_MD5 *php.tar.xz" | md5sum -c -; \ + fi; \ + \ + if [ -n "$PHP_ASC_URL" ]; then \ + curl -fsSL -o php.tar.xz.asc "$PHP_ASC_URL"; \ + export GNUPGHOME="$(mktemp -d)"; \ + ${IMAGES_DIR}/receiveGpgKeys.sh $GPG_KEYS; \ + gpg --batch --verify php.tar.xz.asc php.tar.xz; \ + gpgconf --kill all; \ + rm -rf "$GNUPGHOME"; \ + fi; \ + \ + apt-mark auto '.*' > /dev/null; \ + apt-mark manual $savedAptMark > /dev/null; \ + apt-get purge -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false + +COPY images/runtime/php-fpm/8.1/docker-php-source /usr/local/bin/ +RUN chmod +x /usr/local/bin/docker-php-source + +RUN set -eux; \ + \ + + savedAptMark="$(apt-mark showmanual)"; \ + apt-get update; \ + apt-get install -y --no-install-recommends \ + libargon2-dev \ + libcurl4-openssl-dev \ + libedit-dev \ + libonig-dev \ + libsodium-dev \ + libsqlite3-dev \ + libssl-dev \ + libxml2-dev \ + zlib1g-dev \ + ${PHP_EXTRA_BUILD_DEPS:-} \ + ; \ + rm -rf /var/lib/apt/lists/*; \ + \ + export \ + CFLAGS="$PHP_CFLAGS" \ + CPPFLAGS="$PHP_CPPFLAGS" \ + LDFLAGS="$PHP_LDFLAGS" \ + ; \ + #which docker-php-source; \ + awk '{ sub("\r$", ""); print }' /usr/local/bin/docker-php-source > /usr/local/bin/docker-php-source_new; \ + cat /usr/local/bin/docker-php-source_new; \ + chmod +x /usr/local/bin/docker-php-source_new ; \ + docker-php-source_new extract; \ + ls -l /usr/src/; \ + cd /usr/src/php; \ + gnuArch="$(dpkg-architecture --query DEB_BUILD_GNU_TYPE)"; \ + debMultiarch="$(dpkg-architecture --query DEB_BUILD_MULTIARCH)"; \ +# https://bugs.php.net/bug.php?id=74125 + if [ ! -d /usr/include/curl ]; then \ + ln -sT "/usr/include/$debMultiarch/curl" /usr/local/include/curl; \ + fi; \ + ./configure \ + --build="$gnuArch" \ + --with-config-file-path="$PHP_INI_DIR" \ + --with-config-file-scan-dir="$PHP_INI_DIR/conf.d" \ + \ +# make sure invalid --configure-flags are fatal errors intead of just warnings + --enable-option-checking=fatal \ + \ +# https://github.com/docker-library/php/issues/439 + --with-mhash \ + \ +# --enable-ftp is included here because ftp_ssl_connect() needs ftp to be compiled statically (see https://github.com/docker-library/php/issues/236) + --enable-ftp \ +# --enable-mbstring is included here because otherwise there's no way to get pecl to use it properly (see https://github.com/docker-library/php/issues/195) + --enable-mbstring \ +# --enable-mysqlnd is included here because it's harder to compile after the fact than extensions are (since it's a plugin for several extensions, not an extension in itself) + --enable-mysqlnd \ +# https://wiki.php.net/rfc/argon2_password_hash (7.2+) + --with-password-argon2 \ +# https://wiki.php.net/rfc/libsodium + --with-sodium=shared \ +# always build against system sqlite3 (https://github.com/php/php-src/commit/6083a387a81dbbd66d6316a3a12a63f06d5f7109) + --with-pdo-sqlite=/usr \ + --with-sqlite3=/usr \ + \ + --with-curl \ + --with-libedit \ + --with-openssl \ + --with-zlib \ + \ +# in PHP 7.4+, the pecl/pear installers are officially deprecated (requiring an explicit "--with-pear") and will be removed in PHP 8+; see also https://github.com/docker-library/php/issues/846#issuecomment-505638494 + --with-pear \ + \ +# bundled pcre does not support JIT on s390x +# https://manpages.debian.org/stretch/libpcre3-dev/pcrejit.3.en.html#AVAILABILITY_OF_JIT_SUPPORT + $(test "$gnuArch" = 's390x-linux-gnu' && echo '--without-pcre-jit') \ + --with-libdir="lib/$debMultiarch" \ + \ + ${PHP_EXTRA_CONFIGURE_ARGS:-} \ + ; \ + make -j "$(nproc)"; \ + find -type f -name '*.a' -delete; \ + make install; \ + find /usr/local/bin /usr/local/sbin -type f -executable -exec strip --strip-all '{}' + || true; \ + make clean; \ + \ +# https://github.com/docker-library/php/issues/692 (copy default example "php.ini" files somewhere easily discoverable) + cp -v php.ini-* "$PHP_INI_DIR/"; \ + \ + cd /; \ + docker-php-source_new delete; \ + \ +# reset apt-mark's "manual" list so that "purge --auto-remove" will remove all build dependencies + apt-mark auto '.*' > /dev/null; \ + [ -z "$savedAptMark" ] || apt-mark manual $savedAptMark; \ + find /usr/local -type f -executable -exec ldd '{}' ';' \ + | awk '/=>/ { print $(NF-1) }' \ + | sort -u \ + | xargs -r dpkg-query --search \ + | cut -d: -f1 \ + | sort -u \ + | xargs -r apt-mark manual \ + ; \ + apt-get purge -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false; \ + \ +# update pecl channel definitions https://github.com/docker-library/php/issues/443 + pecl update-channels; \ + rm -rf /tmp/pear ~/.pearrc; \ +# smoke test + php --version + +COPY images/runtime/php-fpm/8.1/docker-php-ext-* images/runtime/php-fpm/8.1/docker-php-entrypoint /usr/local/bin/ +RUN chmod +x /usr/local/bin/docker-php-ext-* +RUN chmod +x /usr/local/bin/docker-php-entrypoint + +# sodium was built as a shared module (so that it can be replaced later if so desired), so let's enable it too (https://github.com/docker-library/php/issues/598) +RUN docker-php-ext-enable sodium + +ENTRYPOINT ["docker-php-entrypoint"] +#### +WORKDIR /var/www/html + +RUN set -eux; \ + cd /usr/local/etc; \ + if [ -d php-fpm.d ]; then \ + # for some reason, upstream's php-fpm.conf.default has "include=NONE/etc/php-fpm.d/*.conf" + sed 's!=NONE/!=!g' php-fpm.conf.default | tee php-fpm.conf > /dev/null; \ + cp php-fpm.d/www.conf.default php-fpm.d/www.conf; \ + else \ + # PHP 5.x doesn't use "include=" by default, so we'll create our own simple config that mimics PHP 7+ for consistency + mkdir php-fpm.d; \ + cp php-fpm.conf.default php-fpm.d/www.conf; \ + { \ + echo '[global]'; \ + echo 'include=etc/php-fpm.d/*.conf'; \ + } | tee php-fpm.conf; \ + fi; \ + { \ + echo '[global]'; \ + echo 'error_log = /proc/self/fd/2'; \ + echo; echo '; https://github.com/docker-library/php/pull/725#issuecomment-443540114'; echo 'log_limit = 8192'; \ + echo; \ + echo '[www]'; \ + echo '; if we send this to /proc/self/fd/1, it never appears'; \ + echo 'access.log = /proc/self/fd/2'; \ + echo; \ + echo 'clear_env = no'; \ + echo; \ + echo '; Ensure worker stdout and stderr are sent to the main error log.'; \ + echo 'catch_workers_output = yes'; \ + echo 'decorate_workers_output = no'; \ + } | tee php-fpm.d/docker.conf; \ + { \ + echo '[global]'; \ + echo 'daemonize = no'; \ + echo; \ + echo '[www]'; \ + echo 'listen = 9000'; \ + } | tee php-fpm.d/zz-docker.conf + +RUN rm -rf /var/lib/apt/lists/* + +# Override stop signal to stop process gracefully +# https://github.com/php/php-src/blob/17baa87faddc2550def3ae7314236826bc1b1398/sapi/fpm/php-fpm.8.in#L163 +STOPSIGNAL SIGQUIT + +EXPOSE 9000 +CMD ["php-fpm"] +#### + +## base dockerfile +SHELL ["/bin/bash", "-c"] + +ARG PHP_VERSION +ENV PHP_VERSION ${PHP_VERSION} + +# An environment variable for oryx run-script to know the origin of php image so that +# start-up command can be determined while creating run script +ENV PHP_ORIGIN php-fpm +ENV NGINX_RUN_USER www-data +# Edit the default DocumentRoot setting +ENV NGINX_DOCUMENT_ROOT /home/site/wwwroot +# Install NGINX latest stable version using APT Method with Nginx Repository instead of distribution-provided one: +# - https://www.linuxcapable.com/how-to-install-latest-nginx-mainline-or-stable-on-debian-11/ +RUN apt-get update +RUN apt install curl nano -y +RUN curl -sSL https://packages.sury.org/nginx/README.txt | bash -x +RUN apt-get update +RUN yes '' | apt-get install nginx-core nginx-common nginx nginx-full -y +RUN ls -l /etc/nginx +COPY images/runtime/php-fpm/nginx_conf/default.conf /etc/nginx/sites-available/default +COPY images/runtime/php-fpm/nginx_conf/default.conf /etc/nginx/sites-enabled/default +RUN sed -ri -e 's!worker_connections 768!worker_connections 10068!g' /etc/nginx/nginx.conf +RUN sed -ri -e 's!# multi_accept on!multi_accept on!g' /etc/nginx/nginx.conf +RUN ls -l /etc/nginx +RUN nginx -t +# Edit the default port setting +ENV NGINX_PORT 8080 + +# Install common PHP extensions +# TEMPORARY: Holding odbc related packages from upgrading. +RUN apt-mark hold msodbcsql18 odbcinst1debian2 odbcinst unixodbc unixodbc-dev \ + && apt-get update \ + && apt-get upgrade -y \ + && ln -s /usr/lib/x86_64-linux-gnu/libldap.so /usr/lib/libldap.so \ + && ln -s /usr/lib/x86_64-linux-gnu/liblber.so /usr/lib/liblber.so \ + && ln -s /usr/include/x86_64-linux-gnu/gmp.h /usr/include/gmp.h + +RUN set -eux; \ + if [[ $PHP_VERSION == 7.4.* || $PHP_VERSION == 8.0.* || $PHP_VERSION == 8.1.* || $PHP_VERSION == 8.2.* || $PHP_VERSION == 8.3.* ]]; then \ + apt-get update \ + && apt-get upgrade -y \ + && apt-get install -y --no-install-recommends apache2-dev \ + && docker-php-ext-configure gd --with-freetype --with-jpeg \ + && PHP_OPENSSL=yes docker-php-ext-configure imap --with-kerberos --with-imap-ssl ; \ + else \ + docker-php-ext-configure gd --with-png-dir=/usr --with-jpeg-dir=/usr \ + && docker-php-ext-configure imap --with-kerberos --with-imap-ssl ; \ + fi + +RUN docker-php-ext-configure pdo_odbc --with-pdo-odbc=unixODBC,/usr \ + && docker-php-ext-install gd \ + mysqli \ + opcache \ + pdo \ + pdo_mysql \ + pdo_pgsql \ + pgsql \ + ldap \ + intl \ + gmp \ + zip \ + bcmath \ + mbstring \ + pcntl \ + calendar \ + exif \ + gettext \ + imap \ + tidy \ + shmop \ + soap \ + sockets \ + sysvmsg \ + sysvsem \ + sysvshm \ + pdo_odbc \ +# deprecated from 7.4, so should be avoided in general template for all php versions +# xmlrpc \ + xsl +RUN pecl install redis && docker-php-ext-enable redis + +# https://github.com/Imagick/imagick/issues/331 +# https://github.com/ihneo/php/pull/24/files +RUN set -eux; \ + if [[ $PHP_VERSION != 8.3.* ]]; then \ + pecl install imagick && docker-php-ext-enable imagick; \ + fi + +# deprecated from 5.*, so should be avoided +RUN set -eux; \ + if [[ $PHP_VERSION != 5.* && $PHP_VERSION != 7.0.* ]]; then \ + pecl install mongodb && docker-php-ext-enable mongodb; \ + fi + +# https://github.com/microsoft/mysqlnd_azure, Supports 7.2*, 7.3* and 7.4* +RUN set -eux; \ + if [[ $PHP_VERSION == 7.2.* || $PHP_VERSION == 7.3.* || $PHP_VERSION == 7.4.* ]]; then \ + echo "pecl/mysqlnd_azure requires PHP (version >= 7.2.*, version <= 7.99.99)"; \ + pecl install mysqlnd_azure \ + && docker-php-ext-enable mysqlnd_azure; \ + fi + +# Install the Microsoft SQL Server PDO driver on supported versions only. +# - https://docs.microsoft.com/en-us/sql/connect/php/installation-tutorial-linux-mac +# - https://docs.microsoft.com/en-us/sql/connect/odbc/linux-mac/installing-the-microsoft-odbc-driver-for-sql-server +# For php|8.0, latest stable version of pecl/sqlsrv, pecl/pdo_sqlsrv is 5.11.0 +RUN set -eux; \ + if [[ $PHP_VERSION == 8.0.* ]]; then \ + pecl install sqlsrv-5.11.0 pdo_sqlsrv-5.11.0 \ + && echo extension=pdo_sqlsrv.so >> $(php --ini | grep "Scan for additional .ini files" | sed -e "s|.*:\s*||")/30-pdo_sqlsrv.ini \ + && echo extension=sqlsrv.so >> $(php --ini | grep "Scan for additional .ini files" | sed -e "s|.*:\s*||")/20-sqlsrv.ini; \ + fi + +# Latest pecl/sqlsrv, pecl/pdo_sqlsrv requires PHP (version >= 8.1.0) +RUN set -eux; \ + if [[ $PHP_VERSION == 8.1.* || $PHP_VERSION == 8.2.* || $PHP_VERSION == 8.3.* ]]; then \ + pecl install sqlsrv pdo_sqlsrv \ + && echo extension=pdo_sqlsrv.so >> `php --ini | grep "Scan for additional .ini files" | sed -e "s|.*:\s*||"`/30-pdo_sqlsrv.ini \ + && echo extension=sqlsrv.so >> `php --ini | grep "Scan for additional .ini files" | sed -e "s|.*:\s*||"`/20-sqlsrv.ini; \ + fi + + +RUN { \ + echo 'opcache.memory_consumption=128'; \ + echo 'opcache.interned_strings_buffer=8'; \ + echo 'opcache.max_accelerated_files=4000'; \ + echo 'opcache.revalidate_freq=60'; \ + echo 'opcache.fast_shutdown=1'; \ + echo 'opcache.enable_cli=1'; \ + } > /usr/local/etc/php/conf.d/opcache-recommended.ini + +# NOTE: zend_extension=opcache is already configured via docker-php-ext-install, above +RUN { \ + echo 'error_log=/var/log/apache2/php-error.log'; \ + echo 'display_errors=Off'; \ + echo 'log_errors=On'; \ + echo 'display_startup_errors=Off'; \ + echo 'date.timezone=UTC'; \ + } > /usr/local/etc/php/conf.d/php.ini + +RUN set -x \ + && docker-php-source extract \ + && cd /usr/src/php/ext/odbc \ + && phpize \ + && sed -ri 's@^ *test +"\$PHP_.*" *= *"no" *&& *PHP_.*=yes *$@#&@g' configure \ + && chmod +x ./configure \ + && ./configure --with-unixODBC=shared,/usr \ + && docker-php-ext-install odbc \ + && rm -rf /var/lib/apt/lists/* + +ENV LANG="C.UTF-8" \ + LANGUAGE="C.UTF-8" \ + LC_ALL="C.UTF-8" + +## dockerfile + +# Bake Application Insights key from pipeline variable into final image +ARG AI_CONNECTION_STRING +ENV ORYX_AI_CONNECTION_STRING=${AI_CONNECTION_STRING} + +# Oryx++ Builder variables +ENV CNB_STACK_ID="oryx.stacks.skeleton" +LABEL io.buildpacks.stack.id="oryx.stacks.skeleton" + +COPY --from=startupCmdGen /opt/startupcmdgen/startupcmdgen /opt/startupcmdgen/startupcmdgen +RUN ln -s /opt/startupcmdgen/startupcmdgen /usr/local/bin/oryx + +ENV LANG="C.UTF-8" \ + LANGUAGE="C.UTF-8" \ + LC_ALL="C.UTF-8" \ No newline at end of file diff --git a/images/runtime/php-fpm/8.2/bullseye.Dockerfile b/images/runtime/php-fpm/8.2/bullseye.Dockerfile new file mode 100644 index 000000000..6fe2417c6 --- /dev/null +++ b/images/runtime/php-fpm/8.2/bullseye.Dockerfile @@ -0,0 +1,436 @@ +ARG BASE_IMAGE + +# Startup script generator +FROM mcr.microsoft.com/oss/go/microsoft/golang:1.20-bullseye as startupCmdGen + +# GOPATH is set to "/go" in the base image +WORKDIR /go/src +COPY src/startupscriptgenerator/src . +ARG GIT_COMMIT=unspecified +ARG BUILD_NUMBER=unspecified +ARG RELEASE_TAG_NAME=unspecified +ENV RELEASE_TAG_NAME=${RELEASE_TAG_NAME} +ENV GIT_COMMIT=${GIT_COMMIT} +ENV BUILD_NUMBER=${BUILD_NUMBER} +RUN chmod +x build.sh && ./build.sh php /opt/startupcmdgen/startupcmdgen + +# From https://github.com/docker-library/php.git +FROM ${BASE_IMAGE} +ARG IMAGES_DIR=/tmp/oryx/images + +# do NOT merge this content with above line because the +# above line is shared across all php images +# Install the Microsoft SQL Server PDO driver on supported versions only. +# - https://docs.microsoft.com/en-us/sql/connect/php/installation-tutorial-linux-mac +# - https://docs.microsoft.com/en-us/sql/connect/odbc/linux-mac/installing-the-microsoft-odbc-driver-for-sql-server +RUN set -eux \ + && apt-get update \ + && apt-get install -y --no-install-recommends \ + gnupg2 \ + apt-transport-https \ + && curl https://packages.microsoft.com/keys/microsoft.asc | apt-key add - \ + && curl https://packages.microsoft.com/config/debian/11/prod.list > /etc/apt/sources.list.d/mssql-release.list \ + && apt-get update \ + && ACCEPT_EULA=Y apt-get install -y msodbcsql17 msodbcsql18=18.1.2.1-1 odbcinst1debian2=2.3.7 odbcinst=2.3.7 unixodbc=2.3.7 unixodbc-dev=2.3.7 + +ENV PHP_INI_DIR /usr/local/etc/php +RUN set -eux; \ + mkdir -p "$PHP_INI_DIR/conf.d"; \ +# allow running as an arbitrary user (https://github.com/docker-library/php/issues/743) + [ ! -d /var/www/html ]; \ + mkdir -p /var/www/html; \ + chown www-data:www-data /var/www/html; \ + chmod 777 /var/www/html + +#### +ENV PHP_EXTRA_CONFIGURE_ARGS --enable-fpm --with-fpm-user=www-data --with-fpm-group=www-data --disable-cgi ac_cv_func_mmap=no +#### + +# Apply stack smash protection to functions using local buffers and alloca() +# Make PHP's main executable position-independent (improves ASLR security mechanism, and has no performance impact on x86_64) +# Enable optimization (-O2) +# Enable linker optimization (this sorts the hash buckets to improve cache locality, and is non-default) +# Adds GNU HASH segments to generated executables (this is used if present, and is much faster than sysv hash; in this configuration, sysv hash is also generated) +# https://github.com/docker-library/php/issues/272 +# -D_LARGEFILE_SOURCE and -D_FILE_OFFSET_BITS=64 (https://www.php.net/manual/en/intro.filesystem.php) +ENV PHP_CFLAGS="-fstack-protector-strong -fpic -fpie -O2 -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64" +ENV PHP_CPPFLAGS="$PHP_CFLAGS" +ENV PHP_LDFLAGS="-Wl,-O1 -Wl,--hash-style=both -pie" + +ENV GPG_KEYS 1198C0117593497A5EC5C199286AF1F9897469DC 39B641343D8C104B2B146DC3F9C39DC0B9698544 E60913E4DF209907D8E30D96659A97C9CF2A795A + +ENV PHP_VERSION 8.2.17 +ENV PHP_URL="https://www.php.net/get/php-8.2.17.tar.xz/from/this/mirror" PHP_ASC_URL="https://www.php.net/get/php-8.2.17.tar.xz.asc/from/this/mirror" +ENV PHP_SHA256="1cc4ef733ba58f6557db648012471f1916e5bac316303aa165535bedab08ee35" PHP_MD5="" + +RUN set -eux; \ + \ + savedAptMark="$(apt-mark showmanual)"; \ + apt-get update; \ + apt-get install -y --no-install-recommends gnupg dirmngr; \ + rm -rf /var/lib/apt/lists/*; \ + \ + mkdir -p /usr/src; \ + cd /usr/src; \ + \ + curl -fsSL -o php.tar.xz "$PHP_URL"; \ + \ + if [ -n "$PHP_SHA256" ]; then \ + echo "$PHP_SHA256 *php.tar.xz" | sha256sum -c -; \ + fi; \ + if [ -n "$PHP_MD5" ]; then \ + echo "$PHP_MD5 *php.tar.xz" | md5sum -c -; \ + fi; \ + \ + if [ -n "$PHP_ASC_URL" ]; then \ + curl -fsSL -o php.tar.xz.asc "$PHP_ASC_URL"; \ + export GNUPGHOME="$(mktemp -d)"; \ + ${IMAGES_DIR}/receiveGpgKeys.sh $GPG_KEYS; \ + gpg --batch --verify php.tar.xz.asc php.tar.xz; \ + gpgconf --kill all; \ + rm -rf "$GNUPGHOME"; \ + fi; \ + \ + apt-mark auto '.*' > /dev/null; \ + apt-mark manual $savedAptMark > /dev/null; \ + apt-get purge -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false + +COPY images/runtime/php-fpm/8.2/docker-php-source /usr/local/bin/ +RUN chmod +x /usr/local/bin/docker-php-source + +RUN set -eux; \ + \ + + savedAptMark="$(apt-mark showmanual)"; \ + apt-get update; \ + apt-get install -y --no-install-recommends \ + libargon2-dev \ + libcurl4-openssl-dev \ + libedit-dev \ + libonig-dev \ + libsodium-dev \ + libsqlite3-dev \ + libssl-dev \ + libxml2-dev \ + zlib1g-dev \ + ${PHP_EXTRA_BUILD_DEPS:-} \ + ; \ + rm -rf /var/lib/apt/lists/*; \ + \ + export \ + CFLAGS="$PHP_CFLAGS" \ + CPPFLAGS="$PHP_CPPFLAGS" \ + LDFLAGS="$PHP_LDFLAGS" \ + ; \ + #which docker-php-source; \ + awk '{ sub("\r$", ""); print }' /usr/local/bin/docker-php-source > /usr/local/bin/docker-php-source_new; \ + cat /usr/local/bin/docker-php-source_new; \ + chmod +x /usr/local/bin/docker-php-source_new ; \ + docker-php-source_new extract; \ + ls -l /usr/src/; \ + cd /usr/src/php; \ + gnuArch="$(dpkg-architecture --query DEB_BUILD_GNU_TYPE)"; \ + debMultiarch="$(dpkg-architecture --query DEB_BUILD_MULTIARCH)"; \ +# https://bugs.php.net/bug.php?id=74125 + if [ ! -d /usr/include/curl ]; then \ + ln -sT "/usr/include/$debMultiarch/curl" /usr/local/include/curl; \ + fi; \ + ./configure \ + --build="$gnuArch" \ + --with-config-file-path="$PHP_INI_DIR" \ + --with-config-file-scan-dir="$PHP_INI_DIR/conf.d" \ + \ +# make sure invalid --configure-flags are fatal errors intead of just warnings + --enable-option-checking=fatal \ + \ +# https://github.com/docker-library/php/issues/439 + --with-mhash \ + \ +# --enable-ftp is included here because ftp_ssl_connect() needs ftp to be compiled statically (see https://github.com/docker-library/php/issues/236) + --enable-ftp \ +# --enable-mbstring is included here because otherwise there's no way to get pecl to use it properly (see https://github.com/docker-library/php/issues/195) + --enable-mbstring \ +# --enable-mysqlnd is included here because it's harder to compile after the fact than extensions are (since it's a plugin for several extensions, not an extension in itself) + --enable-mysqlnd \ +# https://wiki.php.net/rfc/argon2_password_hash (7.2+) + --with-password-argon2 \ +# https://wiki.php.net/rfc/libsodium + --with-sodium=shared \ +# always build against system sqlite3 (https://github.com/php/php-src/commit/6083a387a81dbbd66d6316a3a12a63f06d5f7109) + --with-pdo-sqlite=/usr \ + --with-sqlite3=/usr \ + \ + --with-curl \ + --with-libedit \ + --with-openssl \ + --with-zlib \ + \ +# in PHP 7.4+, the pecl/pear installers are officially deprecated (requiring an explicit "--with-pear") and will be removed in PHP 8+; see also https://github.com/docker-library/php/issues/846#issuecomment-505638494 + --with-pear \ + \ +# bundled pcre does not support JIT on s390x +# https://manpages.debian.org/stretch/libpcre3-dev/pcrejit.3.en.html#AVAILABILITY_OF_JIT_SUPPORT + $(test "$gnuArch" = 's390x-linux-gnu' && echo '--without-pcre-jit') \ + --with-libdir="lib/$debMultiarch" \ + \ + ${PHP_EXTRA_CONFIGURE_ARGS:-} \ + ; \ + make -j "$(nproc)"; \ + find -type f -name '*.a' -delete; \ + make install; \ + find /usr/local/bin /usr/local/sbin -type f -executable -exec strip --strip-all '{}' + || true; \ + make clean; \ + \ +# https://github.com/docker-library/php/issues/692 (copy default example "php.ini" files somewhere easily discoverable) + cp -v php.ini-* "$PHP_INI_DIR/"; \ + \ + cd /; \ + docker-php-source_new delete; \ + \ +# reset apt-mark's "manual" list so that "purge --auto-remove" will remove all build dependencies + apt-mark auto '.*' > /dev/null; \ + [ -z "$savedAptMark" ] || apt-mark manual $savedAptMark; \ + find /usr/local -type f -executable -exec ldd '{}' ';' \ + | awk '/=>/ { print $(NF-1) }' \ + | sort -u \ + | xargs -r dpkg-query --search \ + | cut -d: -f1 \ + | sort -u \ + | xargs -r apt-mark manual \ + ; \ + apt-get purge -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false; \ + \ +# update pecl channel definitions https://github.com/docker-library/php/issues/443 + pecl update-channels; \ + rm -rf /tmp/pear ~/.pearrc; \ +# smoke test + php --version + +COPY images/runtime/php-fpm/8.2/docker-php-ext-* images/runtime/php-fpm/8.2/docker-php-entrypoint /usr/local/bin/ +RUN chmod +x /usr/local/bin/docker-php-ext-* +RUN chmod +x /usr/local/bin/docker-php-entrypoint + +# sodium was built as a shared module (so that it can be replaced later if so desired), so let's enable it too (https://github.com/docker-library/php/issues/598) +RUN docker-php-ext-enable sodium + +ENTRYPOINT ["docker-php-entrypoint"] +#### +WORKDIR /var/www/html + +RUN set -eux; \ + cd /usr/local/etc; \ + if [ -d php-fpm.d ]; then \ + # for some reason, upstream's php-fpm.conf.default has "include=NONE/etc/php-fpm.d/*.conf" + sed 's!=NONE/!=!g' php-fpm.conf.default | tee php-fpm.conf > /dev/null; \ + cp php-fpm.d/www.conf.default php-fpm.d/www.conf; \ + else \ + # PHP 5.x doesn't use "include=" by default, so we'll create our own simple config that mimics PHP 7+ for consistency + mkdir php-fpm.d; \ + cp php-fpm.conf.default php-fpm.d/www.conf; \ + { \ + echo '[global]'; \ + echo 'include=etc/php-fpm.d/*.conf'; \ + } | tee php-fpm.conf; \ + fi; \ + { \ + echo '[global]'; \ + echo 'error_log = /proc/self/fd/2'; \ + echo; echo '; https://github.com/docker-library/php/pull/725#issuecomment-443540114'; echo 'log_limit = 8192'; \ + echo; \ + echo '[www]'; \ + echo '; if we send this to /proc/self/fd/1, it never appears'; \ + echo 'access.log = /proc/self/fd/2'; \ + echo; \ + echo 'clear_env = no'; \ + echo; \ + echo '; Ensure worker stdout and stderr are sent to the main error log.'; \ + echo 'catch_workers_output = yes'; \ + echo 'decorate_workers_output = no'; \ + } | tee php-fpm.d/docker.conf; \ + { \ + echo '[global]'; \ + echo 'daemonize = no'; \ + echo; \ + echo '[www]'; \ + echo 'listen = 9000'; \ + } | tee php-fpm.d/zz-docker.conf + +RUN rm -rf /var/lib/apt/lists/* + +# Override stop signal to stop process gracefully +# https://github.com/php/php-src/blob/17baa87faddc2550def3ae7314236826bc1b1398/sapi/fpm/php-fpm.8.in#L163 +STOPSIGNAL SIGQUIT + +EXPOSE 9000 +CMD ["php-fpm"] +#### + +## base dockerfile +SHELL ["/bin/bash", "-c"] + +ARG PHP_VERSION +ENV PHP_VERSION ${PHP_VERSION} + +# An environment variable for oryx run-script to know the origin of php image so that +# start-up command can be determined while creating run script +ENV PHP_ORIGIN php-fpm +ENV NGINX_RUN_USER www-data +# Edit the default DocumentRoot setting +ENV NGINX_DOCUMENT_ROOT /home/site/wwwroot +# Install NGINX latest stable version using APT Method with Nginx Repository instead of distribution-provided one: +# - https://www.linuxcapable.com/how-to-install-latest-nginx-mainline-or-stable-on-debian-11/ +RUN apt-get update +RUN apt install curl nano -y +RUN curl -sSL https://packages.sury.org/nginx/README.txt | bash -x +RUN apt-get update +RUN yes '' | apt-get install nginx-core nginx-common nginx nginx-full -y +RUN ls -l /etc/nginx +COPY images/runtime/php-fpm/nginx_conf/default.conf /etc/nginx/sites-available/default +COPY images/runtime/php-fpm/nginx_conf/default.conf /etc/nginx/sites-enabled/default +RUN sed -ri -e 's!worker_connections 768!worker_connections 10068!g' /etc/nginx/nginx.conf +RUN sed -ri -e 's!# multi_accept on!multi_accept on!g' /etc/nginx/nginx.conf +RUN ls -l /etc/nginx +RUN nginx -t +# Edit the default port setting +ENV NGINX_PORT 8080 + +# Install common PHP extensions +# TEMPORARY: Holding odbc related packages from upgrading. +RUN apt-mark hold msodbcsql18 odbcinst1debian2 odbcinst unixodbc unixodbc-dev \ + && apt-get update \ + && apt-get upgrade -y \ + && ln -s /usr/lib/x86_64-linux-gnu/libldap.so /usr/lib/libldap.so \ + && ln -s /usr/lib/x86_64-linux-gnu/liblber.so /usr/lib/liblber.so \ + && ln -s /usr/include/x86_64-linux-gnu/gmp.h /usr/include/gmp.h + +RUN set -eux; \ + if [[ $PHP_VERSION == 7.4.* || $PHP_VERSION == 8.0.* || $PHP_VERSION == 8.1.* || $PHP_VERSION == 8.2.* || $PHP_VERSION == 8.3.* ]]; then \ + apt-get update \ + && apt-get upgrade -y \ + && apt-get install -y --no-install-recommends apache2-dev \ + && docker-php-ext-configure gd --with-freetype --with-jpeg \ + && PHP_OPENSSL=yes docker-php-ext-configure imap --with-kerberos --with-imap-ssl ; \ + else \ + docker-php-ext-configure gd --with-png-dir=/usr --with-jpeg-dir=/usr \ + && docker-php-ext-configure imap --with-kerberos --with-imap-ssl ; \ + fi + +RUN docker-php-ext-configure pdo_odbc --with-pdo-odbc=unixODBC,/usr \ + && docker-php-ext-install gd \ + mysqli \ + opcache \ + pdo \ + pdo_mysql \ + pdo_pgsql \ + pgsql \ + ldap \ + intl \ + gmp \ + zip \ + bcmath \ + mbstring \ + pcntl \ + calendar \ + exif \ + gettext \ + imap \ + tidy \ + shmop \ + soap \ + sockets \ + sysvmsg \ + sysvsem \ + sysvshm \ + pdo_odbc \ +# deprecated from 7.4, so should be avoided in general template for all php versions +# xmlrpc \ + xsl +RUN pecl install redis && docker-php-ext-enable redis + +# https://github.com/Imagick/imagick/issues/331 +# https://github.com/ihneo/php/pull/24/files +RUN set -eux; \ + if [[ $PHP_VERSION != 8.3.* ]]; then \ + pecl install imagick && docker-php-ext-enable imagick; \ + fi + +# deprecated from 5.*, so should be avoided +RUN set -eux; \ + if [[ $PHP_VERSION != 5.* && $PHP_VERSION != 7.0.* ]]; then \ + pecl install mongodb && docker-php-ext-enable mongodb; \ + fi + +# https://github.com/microsoft/mysqlnd_azure, Supports 7.2*, 7.3* and 7.4* +RUN set -eux; \ + if [[ $PHP_VERSION == 7.2.* || $PHP_VERSION == 7.3.* || $PHP_VERSION == 7.4.* ]]; then \ + echo "pecl/mysqlnd_azure requires PHP (version >= 7.2.*, version <= 7.99.99)"; \ + pecl install mysqlnd_azure \ + && docker-php-ext-enable mysqlnd_azure; \ + fi + +# Install the Microsoft SQL Server PDO driver on supported versions only. +# - https://docs.microsoft.com/en-us/sql/connect/php/installation-tutorial-linux-mac +# - https://docs.microsoft.com/en-us/sql/connect/odbc/linux-mac/installing-the-microsoft-odbc-driver-for-sql-server +# For php|8.0, latest stable version of pecl/sqlsrv, pecl/pdo_sqlsrv is 5.11.0 +RUN set -eux; \ + if [[ $PHP_VERSION == 8.0.* ]]; then \ + pecl install sqlsrv-5.11.0 pdo_sqlsrv-5.11.0 \ + && echo extension=pdo_sqlsrv.so >> $(php --ini | grep "Scan for additional .ini files" | sed -e "s|.*:\s*||")/30-pdo_sqlsrv.ini \ + && echo extension=sqlsrv.so >> $(php --ini | grep "Scan for additional .ini files" | sed -e "s|.*:\s*||")/20-sqlsrv.ini; \ + fi + +# Latest pecl/sqlsrv, pecl/pdo_sqlsrv requires PHP (version >= 8.1.0) +RUN set -eux; \ + if [[ $PHP_VERSION == 8.1.* || $PHP_VERSION == 8.2.* || $PHP_VERSION == 8.3.* ]]; then \ + pecl install sqlsrv pdo_sqlsrv \ + && echo extension=pdo_sqlsrv.so >> `php --ini | grep "Scan for additional .ini files" | sed -e "s|.*:\s*||"`/30-pdo_sqlsrv.ini \ + && echo extension=sqlsrv.so >> `php --ini | grep "Scan for additional .ini files" | sed -e "s|.*:\s*||"`/20-sqlsrv.ini; \ + fi + + +RUN { \ + echo 'opcache.memory_consumption=128'; \ + echo 'opcache.interned_strings_buffer=8'; \ + echo 'opcache.max_accelerated_files=4000'; \ + echo 'opcache.revalidate_freq=60'; \ + echo 'opcache.fast_shutdown=1'; \ + echo 'opcache.enable_cli=1'; \ + } > /usr/local/etc/php/conf.d/opcache-recommended.ini + +# NOTE: zend_extension=opcache is already configured via docker-php-ext-install, above +RUN { \ + echo 'error_log=/var/log/apache2/php-error.log'; \ + echo 'display_errors=Off'; \ + echo 'log_errors=On'; \ + echo 'display_startup_errors=Off'; \ + echo 'date.timezone=UTC'; \ + } > /usr/local/etc/php/conf.d/php.ini + +RUN set -x \ + && docker-php-source extract \ + && cd /usr/src/php/ext/odbc \ + && phpize \ + && sed -ri 's@^ *test +"\$PHP_.*" *= *"no" *&& *PHP_.*=yes *$@#&@g' configure \ + && chmod +x ./configure \ + && ./configure --with-unixODBC=shared,/usr \ + && docker-php-ext-install odbc \ + && rm -rf /var/lib/apt/lists/* + +ENV LANG="C.UTF-8" \ + LANGUAGE="C.UTF-8" \ + LC_ALL="C.UTF-8" + +# Bake Application Insights key from pipeline variable into final image +ARG AI_CONNECTION_STRING +ENV ORYX_AI_CONNECTION_STRING=${AI_CONNECTION_STRING} + +# Oryx++ Builder variables +ENV CNB_STACK_ID="oryx.stacks.skeleton" +LABEL io.buildpacks.stack.id="oryx.stacks.skeleton" + +COPY --from=startupCmdGen /opt/startupcmdgen/startupcmdgen /opt/startupcmdgen/startupcmdgen +RUN ln -s /opt/startupcmdgen/startupcmdgen /usr/local/bin/oryx + +ENV LANG="C.UTF-8" \ + LANGUAGE="C.UTF-8" \ + LC_ALL="C.UTF-8" \ No newline at end of file diff --git a/images/runtime/php-fpm/8.2/buster.Dockerfile b/images/runtime/php-fpm/8.2/buster.Dockerfile new file mode 100644 index 000000000..a9dffdf03 --- /dev/null +++ b/images/runtime/php-fpm/8.2/buster.Dockerfile @@ -0,0 +1,436 @@ +ARG BASE_IMAGE + +# Startup script generator +FROM mcr.microsoft.com/oss/go/microsoft/golang:1.20-buster as startupCmdGen + +# GOPATH is set to "/go" in the base image +WORKDIR /go/src +COPY src/startupscriptgenerator/src . +ARG GIT_COMMIT=unspecified +ARG BUILD_NUMBER=unspecified +ARG RELEASE_TAG_NAME=unspecified +ENV RELEASE_TAG_NAME=${RELEASE_TAG_NAME} +ENV GIT_COMMIT=${GIT_COMMIT} +ENV BUILD_NUMBER=${BUILD_NUMBER} +RUN chmod +x build.sh && ./build.sh php /opt/startupcmdgen/startupcmdgen + +# From https://github.com/docker-library/php.git +FROM ${BASE_IMAGE} +ARG IMAGES_DIR=/tmp/oryx/images + +# do NOT merge this content with above line because the +# above line is shared across all php images +# Install the Microsoft SQL Server PDO driver on supported versions only. +# - https://docs.microsoft.com/en-us/sql/connect/php/installation-tutorial-linux-mac +# - https://docs.microsoft.com/en-us/sql/connect/odbc/linux-mac/installing-the-microsoft-odbc-driver-for-sql-server +RUN set -eux \ + && apt-get update \ + && apt-get install -y --no-install-recommends \ + gnupg2 \ + apt-transport-https \ + && curl https://packages.microsoft.com/keys/microsoft.asc | apt-key add - \ + && curl https://packages.microsoft.com/config/debian/10/prod.list > /etc/apt/sources.list.d/mssql-release.list \ + && apt-get update \ + && ACCEPT_EULA=Y apt-get install -y msodbcsql17 msodbcsql18=18.1.2.1-1 odbcinst1debian2=2.3.7 odbcinst=2.3.7 unixodbc=2.3.7 unixodbc-dev=2.3.7 + +ENV PHP_INI_DIR /usr/local/etc/php +RUN set -eux; \ + mkdir -p "$PHP_INI_DIR/conf.d"; \ +# allow running as an arbitrary user (https://github.com/docker-library/php/issues/743) + [ ! -d /var/www/html ]; \ + mkdir -p /var/www/html; \ + chown www-data:www-data /var/www/html; \ + chmod 777 /var/www/html + +#### +ENV PHP_EXTRA_CONFIGURE_ARGS --enable-fpm --with-fpm-user=www-data --with-fpm-group=www-data --disable-cgi ac_cv_func_mmap=no +#### + +# Apply stack smash protection to functions using local buffers and alloca() +# Make PHP's main executable position-independent (improves ASLR security mechanism, and has no performance impact on x86_64) +# Enable optimization (-O2) +# Enable linker optimization (this sorts the hash buckets to improve cache locality, and is non-default) +# Adds GNU HASH segments to generated executables (this is used if present, and is much faster than sysv hash; in this configuration, sysv hash is also generated) +# https://github.com/docker-library/php/issues/272 +# -D_LARGEFILE_SOURCE and -D_FILE_OFFSET_BITS=64 (https://www.php.net/manual/en/intro.filesystem.php) +ENV PHP_CFLAGS="-fstack-protector-strong -fpic -fpie -O2 -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64" +ENV PHP_CPPFLAGS="$PHP_CFLAGS" +ENV PHP_LDFLAGS="-Wl,-O1 -Wl,--hash-style=both -pie" + +ENV GPG_KEYS 1198C0117593497A5EC5C199286AF1F9897469DC 39B641343D8C104B2B146DC3F9C39DC0B9698544 E60913E4DF209907D8E30D96659A97C9CF2A795A + +ENV PHP_VERSION 8.2.17 +ENV PHP_URL="https://www.php.net/get/php-8.2.17.tar.xz/from/this/mirror" PHP_ASC_URL="https://www.php.net/get/php-8.2.17.tar.xz.asc/from/this/mirror" +ENV PHP_SHA256="1cc4ef733ba58f6557db648012471f1916e5bac316303aa165535bedab08ee35" PHP_MD5="" + +RUN set -eux; \ + \ + savedAptMark="$(apt-mark showmanual)"; \ + apt-get update; \ + apt-get install -y --no-install-recommends gnupg dirmngr; \ + rm -rf /var/lib/apt/lists/*; \ + \ + mkdir -p /usr/src; \ + cd /usr/src; \ + \ + curl -fsSL -o php.tar.xz "$PHP_URL"; \ + \ + if [ -n "$PHP_SHA256" ]; then \ + echo "$PHP_SHA256 *php.tar.xz" | sha256sum -c -; \ + fi; \ + if [ -n "$PHP_MD5" ]; then \ + echo "$PHP_MD5 *php.tar.xz" | md5sum -c -; \ + fi; \ + \ + if [ -n "$PHP_ASC_URL" ]; then \ + curl -fsSL -o php.tar.xz.asc "$PHP_ASC_URL"; \ + export GNUPGHOME="$(mktemp -d)"; \ + ${IMAGES_DIR}/receiveGpgKeys.sh $GPG_KEYS; \ + gpg --batch --verify php.tar.xz.asc php.tar.xz; \ + gpgconf --kill all; \ + rm -rf "$GNUPGHOME"; \ + fi; \ + \ + apt-mark auto '.*' > /dev/null; \ + apt-mark manual $savedAptMark > /dev/null; \ + apt-get purge -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false + +COPY images/runtime/php-fpm/8.2/docker-php-source /usr/local/bin/ +RUN chmod +x /usr/local/bin/docker-php-source + +RUN set -eux; \ + \ + + savedAptMark="$(apt-mark showmanual)"; \ + apt-get update; \ + apt-get install -y --no-install-recommends \ + libargon2-dev \ + libcurl4-openssl-dev \ + libedit-dev \ + libonig-dev \ + libsodium-dev \ + libsqlite3-dev \ + libssl-dev \ + libxml2-dev \ + zlib1g-dev \ + ${PHP_EXTRA_BUILD_DEPS:-} \ + ; \ + rm -rf /var/lib/apt/lists/*; \ + \ + export \ + CFLAGS="$PHP_CFLAGS" \ + CPPFLAGS="$PHP_CPPFLAGS" \ + LDFLAGS="$PHP_LDFLAGS" \ + ; \ + #which docker-php-source; \ + awk '{ sub("\r$", ""); print }' /usr/local/bin/docker-php-source > /usr/local/bin/docker-php-source_new; \ + cat /usr/local/bin/docker-php-source_new; \ + chmod +x /usr/local/bin/docker-php-source_new ; \ + docker-php-source_new extract; \ + ls -l /usr/src/; \ + cd /usr/src/php; \ + gnuArch="$(dpkg-architecture --query DEB_BUILD_GNU_TYPE)"; \ + debMultiarch="$(dpkg-architecture --query DEB_BUILD_MULTIARCH)"; \ +# https://bugs.php.net/bug.php?id=74125 + if [ ! -d /usr/include/curl ]; then \ + ln -sT "/usr/include/$debMultiarch/curl" /usr/local/include/curl; \ + fi; \ + ./configure \ + --build="$gnuArch" \ + --with-config-file-path="$PHP_INI_DIR" \ + --with-config-file-scan-dir="$PHP_INI_DIR/conf.d" \ + \ +# make sure invalid --configure-flags are fatal errors intead of just warnings + --enable-option-checking=fatal \ + \ +# https://github.com/docker-library/php/issues/439 + --with-mhash \ + \ +# --enable-ftp is included here because ftp_ssl_connect() needs ftp to be compiled statically (see https://github.com/docker-library/php/issues/236) + --enable-ftp \ +# --enable-mbstring is included here because otherwise there's no way to get pecl to use it properly (see https://github.com/docker-library/php/issues/195) + --enable-mbstring \ +# --enable-mysqlnd is included here because it's harder to compile after the fact than extensions are (since it's a plugin for several extensions, not an extension in itself) + --enable-mysqlnd \ +# https://wiki.php.net/rfc/argon2_password_hash (7.2+) + --with-password-argon2 \ +# https://wiki.php.net/rfc/libsodium + --with-sodium=shared \ +# always build against system sqlite3 (https://github.com/php/php-src/commit/6083a387a81dbbd66d6316a3a12a63f06d5f7109) + --with-pdo-sqlite=/usr \ + --with-sqlite3=/usr \ + \ + --with-curl \ + --with-libedit \ + --with-openssl \ + --with-zlib \ + \ +# in PHP 7.4+, the pecl/pear installers are officially deprecated (requiring an explicit "--with-pear") and will be removed in PHP 8+; see also https://github.com/docker-library/php/issues/846#issuecomment-505638494 + --with-pear \ + \ +# bundled pcre does not support JIT on s390x +# https://manpages.debian.org/stretch/libpcre3-dev/pcrejit.3.en.html#AVAILABILITY_OF_JIT_SUPPORT + $(test "$gnuArch" = 's390x-linux-gnu' && echo '--without-pcre-jit') \ + --with-libdir="lib/$debMultiarch" \ + \ + ${PHP_EXTRA_CONFIGURE_ARGS:-} \ + ; \ + make -j "$(nproc)"; \ + find -type f -name '*.a' -delete; \ + make install; \ + find /usr/local/bin /usr/local/sbin -type f -executable -exec strip --strip-all '{}' + || true; \ + make clean; \ + \ +# https://github.com/docker-library/php/issues/692 (copy default example "php.ini" files somewhere easily discoverable) + cp -v php.ini-* "$PHP_INI_DIR/"; \ + \ + cd /; \ + docker-php-source_new delete; \ + \ +# reset apt-mark's "manual" list so that "purge --auto-remove" will remove all build dependencies + apt-mark auto '.*' > /dev/null; \ + [ -z "$savedAptMark" ] || apt-mark manual $savedAptMark; \ + find /usr/local -type f -executable -exec ldd '{}' ';' \ + | awk '/=>/ { print $(NF-1) }' \ + | sort -u \ + | xargs -r dpkg-query --search \ + | cut -d: -f1 \ + | sort -u \ + | xargs -r apt-mark manual \ + ; \ + apt-get purge -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false; \ + \ +# update pecl channel definitions https://github.com/docker-library/php/issues/443 + pecl update-channels; \ + rm -rf /tmp/pear ~/.pearrc; \ +# smoke test + php --version + +COPY images/runtime/php-fpm/8.2/docker-php-ext-* images/runtime/php-fpm/8.2/docker-php-entrypoint /usr/local/bin/ +RUN chmod +x /usr/local/bin/docker-php-ext-* +RUN chmod +x /usr/local/bin/docker-php-entrypoint + +# sodium was built as a shared module (so that it can be replaced later if so desired), so let's enable it too (https://github.com/docker-library/php/issues/598) +RUN docker-php-ext-enable sodium + +ENTRYPOINT ["docker-php-entrypoint"] +#### +WORKDIR /var/www/html + +RUN set -eux; \ + cd /usr/local/etc; \ + if [ -d php-fpm.d ]; then \ + # for some reason, upstream's php-fpm.conf.default has "include=NONE/etc/php-fpm.d/*.conf" + sed 's!=NONE/!=!g' php-fpm.conf.default | tee php-fpm.conf > /dev/null; \ + cp php-fpm.d/www.conf.default php-fpm.d/www.conf; \ + else \ + # PHP 5.x doesn't use "include=" by default, so we'll create our own simple config that mimics PHP 7+ for consistency + mkdir php-fpm.d; \ + cp php-fpm.conf.default php-fpm.d/www.conf; \ + { \ + echo '[global]'; \ + echo 'include=etc/php-fpm.d/*.conf'; \ + } | tee php-fpm.conf; \ + fi; \ + { \ + echo '[global]'; \ + echo 'error_log = /proc/self/fd/2'; \ + echo; echo '; https://github.com/docker-library/php/pull/725#issuecomment-443540114'; echo 'log_limit = 8192'; \ + echo; \ + echo '[www]'; \ + echo '; if we send this to /proc/self/fd/1, it never appears'; \ + echo 'access.log = /proc/self/fd/2'; \ + echo; \ + echo 'clear_env = no'; \ + echo; \ + echo '; Ensure worker stdout and stderr are sent to the main error log.'; \ + echo 'catch_workers_output = yes'; \ + echo 'decorate_workers_output = no'; \ + } | tee php-fpm.d/docker.conf; \ + { \ + echo '[global]'; \ + echo 'daemonize = no'; \ + echo; \ + echo '[www]'; \ + echo 'listen = 9000'; \ + } | tee php-fpm.d/zz-docker.conf + +RUN rm -rf /var/lib/apt/lists/* + +# Override stop signal to stop process gracefully +# https://github.com/php/php-src/blob/17baa87faddc2550def3ae7314236826bc1b1398/sapi/fpm/php-fpm.8.in#L163 +STOPSIGNAL SIGQUIT + +EXPOSE 9000 +CMD ["php-fpm"] +#### + +## base dockerfile +SHELL ["/bin/bash", "-c"] + +ARG PHP_VERSION +ENV PHP_VERSION ${PHP_VERSION} + +# An environment variable for oryx run-script to know the origin of php image so that +# start-up command can be determined while creating run script +ENV PHP_ORIGIN php-fpm +ENV NGINX_RUN_USER www-data +# Edit the default DocumentRoot setting +ENV NGINX_DOCUMENT_ROOT /home/site/wwwroot +# Install NGINX latest stable version using APT Method with Nginx Repository instead of distribution-provided one: +# - https://www.linuxcapable.com/how-to-install-latest-nginx-mainline-or-stable-on-debian-11/ +RUN apt-get update +RUN apt install curl nano -y +RUN curl -sSL https://packages.sury.org/nginx/README.txt | bash -x +RUN apt-get update +RUN yes '' | apt-get install nginx-core nginx-common nginx nginx-full -y +RUN ls -l /etc/nginx +COPY images/runtime/php-fpm/nginx_conf/default.conf /etc/nginx/sites-available/default +COPY images/runtime/php-fpm/nginx_conf/default.conf /etc/nginx/sites-enabled/default +RUN sed -ri -e 's!worker_connections 768!worker_connections 10068!g' /etc/nginx/nginx.conf +RUN sed -ri -e 's!# multi_accept on!multi_accept on!g' /etc/nginx/nginx.conf +RUN ls -l /etc/nginx +RUN nginx -t +# Edit the default port setting +ENV NGINX_PORT 8080 + +# Install common PHP extensions +# TEMPORARY: Holding odbc related packages from upgrading. +RUN apt-mark hold msodbcsql18 odbcinst1debian2 odbcinst unixodbc unixodbc-dev \ + && apt-get update \ + && apt-get upgrade -y \ + && ln -s /usr/lib/x86_64-linux-gnu/libldap.so /usr/lib/libldap.so \ + && ln -s /usr/lib/x86_64-linux-gnu/liblber.so /usr/lib/liblber.so \ + && ln -s /usr/include/x86_64-linux-gnu/gmp.h /usr/include/gmp.h + +RUN set -eux; \ + if [[ $PHP_VERSION == 7.4.* || $PHP_VERSION == 8.0.* || $PHP_VERSION == 8.1.* || $PHP_VERSION == 8.2.* || $PHP_VERSION == 8.3.* ]]; then \ + apt-get update \ + && apt-get upgrade -y \ + && apt-get install -y --no-install-recommends apache2-dev \ + && docker-php-ext-configure gd --with-freetype --with-jpeg \ + && PHP_OPENSSL=yes docker-php-ext-configure imap --with-kerberos --with-imap-ssl ; \ + else \ + docker-php-ext-configure gd --with-png-dir=/usr --with-jpeg-dir=/usr \ + && docker-php-ext-configure imap --with-kerberos --with-imap-ssl ; \ + fi + +RUN docker-php-ext-configure pdo_odbc --with-pdo-odbc=unixODBC,/usr \ + && docker-php-ext-install gd \ + mysqli \ + opcache \ + pdo \ + pdo_mysql \ + pdo_pgsql \ + pgsql \ + ldap \ + intl \ + gmp \ + zip \ + bcmath \ + mbstring \ + pcntl \ + calendar \ + exif \ + gettext \ + imap \ + tidy \ + shmop \ + soap \ + sockets \ + sysvmsg \ + sysvsem \ + sysvshm \ + pdo_odbc \ +# deprecated from 7.4, so should be avoided in general template for all php versions +# xmlrpc \ + xsl +RUN pecl install redis && docker-php-ext-enable redis + +# https://github.com/Imagick/imagick/issues/331 +# https://github.com/ihneo/php/pull/24/files +RUN set -eux; \ + if [[ $PHP_VERSION != 8.3.* ]]; then \ + pecl install imagick && docker-php-ext-enable imagick; \ + fi + +# deprecated from 5.*, so should be avoided +RUN set -eux; \ + if [[ $PHP_VERSION != 5.* && $PHP_VERSION != 7.0.* ]]; then \ + pecl install mongodb && docker-php-ext-enable mongodb; \ + fi + +# https://github.com/microsoft/mysqlnd_azure, Supports 7.2*, 7.3* and 7.4* +RUN set -eux; \ + if [[ $PHP_VERSION == 7.2.* || $PHP_VERSION == 7.3.* || $PHP_VERSION == 7.4.* ]]; then \ + echo "pecl/mysqlnd_azure requires PHP (version >= 7.2.*, version <= 7.99.99)"; \ + pecl install mysqlnd_azure \ + && docker-php-ext-enable mysqlnd_azure; \ + fi + +# Install the Microsoft SQL Server PDO driver on supported versions only. +# - https://docs.microsoft.com/en-us/sql/connect/php/installation-tutorial-linux-mac +# - https://docs.microsoft.com/en-us/sql/connect/odbc/linux-mac/installing-the-microsoft-odbc-driver-for-sql-server +# For php|8.0, latest stable version of pecl/sqlsrv, pecl/pdo_sqlsrv is 5.11.0 +RUN set -eux; \ + if [[ $PHP_VERSION == 8.0.* ]]; then \ + pecl install sqlsrv-5.11.0 pdo_sqlsrv-5.11.0 \ + && echo extension=pdo_sqlsrv.so >> $(php --ini | grep "Scan for additional .ini files" | sed -e "s|.*:\s*||")/30-pdo_sqlsrv.ini \ + && echo extension=sqlsrv.so >> $(php --ini | grep "Scan for additional .ini files" | sed -e "s|.*:\s*||")/20-sqlsrv.ini; \ + fi + +# Latest pecl/sqlsrv, pecl/pdo_sqlsrv requires PHP (version >= 8.1.0) +RUN set -eux; \ + if [[ $PHP_VERSION == 8.1.* || $PHP_VERSION == 8.2.* || $PHP_VERSION == 8.3.* ]]; then \ + pecl install sqlsrv pdo_sqlsrv \ + && echo extension=pdo_sqlsrv.so >> `php --ini | grep "Scan for additional .ini files" | sed -e "s|.*:\s*||"`/30-pdo_sqlsrv.ini \ + && echo extension=sqlsrv.so >> `php --ini | grep "Scan for additional .ini files" | sed -e "s|.*:\s*||"`/20-sqlsrv.ini; \ + fi + + +RUN { \ + echo 'opcache.memory_consumption=128'; \ + echo 'opcache.interned_strings_buffer=8'; \ + echo 'opcache.max_accelerated_files=4000'; \ + echo 'opcache.revalidate_freq=60'; \ + echo 'opcache.fast_shutdown=1'; \ + echo 'opcache.enable_cli=1'; \ + } > /usr/local/etc/php/conf.d/opcache-recommended.ini + +# NOTE: zend_extension=opcache is already configured via docker-php-ext-install, above +RUN { \ + echo 'error_log=/var/log/apache2/php-error.log'; \ + echo 'display_errors=Off'; \ + echo 'log_errors=On'; \ + echo 'display_startup_errors=Off'; \ + echo 'date.timezone=UTC'; \ + } > /usr/local/etc/php/conf.d/php.ini + +RUN set -x \ + && docker-php-source extract \ + && cd /usr/src/php/ext/odbc \ + && phpize \ + && sed -ri 's@^ *test +"\$PHP_.*" *= *"no" *&& *PHP_.*=yes *$@#&@g' configure \ + && chmod +x ./configure \ + && ./configure --with-unixODBC=shared,/usr \ + && docker-php-ext-install odbc \ + && rm -rf /var/lib/apt/lists/* + +ENV LANG="C.UTF-8" \ + LANGUAGE="C.UTF-8" \ + LC_ALL="C.UTF-8" + +# Bake Application Insights key from pipeline variable into final image +ARG AI_CONNECTION_STRING +ENV ORYX_AI_CONNECTION_STRING=${AI_CONNECTION_STRING} + +# Oryx++ Builder variables +ENV CNB_STACK_ID="oryx.stacks.skeleton" +LABEL io.buildpacks.stack.id="oryx.stacks.skeleton" + +COPY --from=startupCmdGen /opt/startupcmdgen/startupcmdgen /opt/startupcmdgen/startupcmdgen +RUN ln -s /opt/startupcmdgen/startupcmdgen /usr/local/bin/oryx + +ENV LANG="C.UTF-8" \ + LANGUAGE="C.UTF-8" \ + LC_ALL="C.UTF-8" \ No newline at end of file diff --git a/images/runtime/php-fpm/8.3/bookworm.Dockerfile b/images/runtime/php-fpm/8.3/bookworm.Dockerfile new file mode 100644 index 000000000..6af582691 --- /dev/null +++ b/images/runtime/php-fpm/8.3/bookworm.Dockerfile @@ -0,0 +1,432 @@ +ARG BASE_IMAGE +# Startup script generator +FROM mcr.microsoft.com/oss/go/microsoft/golang:1.20-bookworm as startupCmdGen + +# GOPATH is set to "/go" in the base image +WORKDIR /go/src +COPY src/startupscriptgenerator/src . +ARG GIT_COMMIT=unspecified +ARG BUILD_NUMBER=unspecified +ARG RELEASE_TAG_NAME=unspecified +ENV RELEASE_TAG_NAME=${RELEASE_TAG_NAME} +ENV GIT_COMMIT=${GIT_COMMIT} +ENV BUILD_NUMBER=${BUILD_NUMBER} +RUN chmod +x build.sh && ./build.sh php /opt/startupcmdgen/startupcmdgen + +# From https://github.com/docker-library/php.git +FROM ${BASE_IMAGE} +ARG IMAGES_DIR=/tmp/oryx/images + +# Install the Microsoft SQL Server PDO driver on supported versions only. +# - https://docs.microsoft.com/en-us/sql/connect/php/installation-tutorial-linux-mac +# - https://docs.microsoft.com/en-us/sql/connect/odbc/linux-mac/installing-the-microsoft-odbc-driver-for-sql-server +RUN set -eux \ + && apt-get update \ + && apt-get install -y --no-install-recommends \ + gnupg2 \ + apt-transport-https \ + && curl https://packages.microsoft.com/keys/microsoft.asc | apt-key add - \ + && curl https://packages.microsoft.com/config/debian/11/prod.list > /etc/apt/sources.list.d/mssql-release.list \ + && apt-get update \ + && ACCEPT_EULA=Y apt-get install -y msodbcsql17 msodbcsql18=18.1.2.1-1 odbcinst1debian2=2.3.7 odbcinst=2.3.7 unixodbc=2.3.7 unixodbc-dev=2.3.7 + +ENV PHP_INI_DIR /usr/local/etc/php +RUN set -eux; \ + mkdir -p "$PHP_INI_DIR/conf.d"; \ +# allow running as an arbitrary user (https://github.com/docker-library/php/issues/743) + [ ! -d /var/www/html ]; \ + mkdir -p /var/www/html; \ + chown www-data:www-data /var/www/html; \ + chmod 777 /var/www/html + +#### +ENV PHP_EXTRA_CONFIGURE_ARGS --enable-fpm --with-fpm-user=www-data --with-fpm-group=www-data --disable-cgi ac_cv_func_mmap=no +#### + +# Apply stack smash protection to functions using local buffers and alloca() +# Make PHP's main executable position-independent (improves ASLR security mechanism, and has no performance impact on x86_64) +# Enable optimization (-O2) +# Enable linker optimization (this sorts the hash buckets to improve cache locality, and is non-default) +# Adds GNU HASH segments to generated executables (this is used if present, and is much faster than sysv hash; in this configuration, sysv hash is also generated) +# https://github.com/docker-library/php/issues/272 +# -D_LARGEFILE_SOURCE and -D_FILE_OFFSET_BITS=64 (https://www.php.net/manual/en/intro.filesystem.php) +ENV PHP_CFLAGS="-fstack-protector-strong -fpic -fpie -O2 -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64" +ENV PHP_CPPFLAGS="$PHP_CFLAGS" +ENV PHP_LDFLAGS="-Wl,-O1 -Wl,--hash-style=both -pie" + +ENV GPG_KEYS 1198C0117593497A5EC5C199286AF1F9897469DC AFD8691FDAEDF03BDF6E460563F15A9B715376CA C28D937575603EB4ABB725861C0779DC5C0A9DE4 + +ENV PHP_VERSION 8.3.4 +ENV PHP_URL="https://www.php.net/get/php-8.3.4.tar.xz/from/this/mirror" PHP_ASC_URL="https://www.php.net/get/php-8.3.4.tar.xz.asc/from/this/mirror" +ENV PHP_SHA256="39a337036a546e5c28aea76cf424ac172db5156bd8a8fd85252e389409a5ba63" PHP_MD5="" + +RUN set -eux; \ + \ + savedAptMark="$(apt-mark showmanual)"; \ + apt-get update; \ + apt-get install -y --no-install-recommends gnupg dirmngr; \ + rm -rf /var/lib/apt/lists/*; \ + \ + mkdir -p /usr/src; \ + cd /usr/src; \ + \ + curl -fsSL -o php.tar.xz "$PHP_URL"; \ + \ + if [ -n "$PHP_SHA256" ]; then \ + echo "$PHP_SHA256 *php.tar.xz" | sha256sum -c -; \ + fi; \ + if [ -n "$PHP_MD5" ]; then \ + echo "$PHP_MD5 *php.tar.xz" | md5sum -c -; \ + fi; \ + \ + if [ -n "$PHP_ASC_URL" ]; then \ + curl -fsSL -o php.tar.xz.asc "$PHP_ASC_URL"; \ + export GNUPGHOME="$(mktemp -d)"; \ + ${IMAGES_DIR}/receiveGpgKeys.sh $GPG_KEYS; \ + gpg --batch --verify php.tar.xz.asc php.tar.xz; \ + gpgconf --kill all; \ + rm -rf "$GNUPGHOME"; \ + fi; \ + \ + apt-mark auto '.*' > /dev/null; \ + apt-mark manual $savedAptMark > /dev/null; + +COPY images/runtime/php-fpm/8.3/docker-php-source /usr/local/bin/ +RUN chmod +x /usr/local/bin/docker-php-source + +RUN set -eux; \ + \ + + savedAptMark="$(apt-mark showmanual)"; \ + apt-get update; \ + apt-get install -y --no-install-recommends \ + libargon2-dev \ + libcurl4-openssl-dev \ + libedit-dev \ + libonig-dev \ + libsodium-dev \ + libsqlite3-dev \ + libssl-dev \ + libxml2-dev \ + zlib1g-dev \ + ${PHP_EXTRA_BUILD_DEPS:-} \ + ; \ + rm -rf /var/lib/apt/lists/*; \ + \ + export \ + CFLAGS="$PHP_CFLAGS" \ + CPPFLAGS="$PHP_CPPFLAGS" \ + LDFLAGS="$PHP_LDFLAGS" \ + ; \ + #which docker-php-source; \ + awk '{ sub("\r$", ""); print }' /usr/local/bin/docker-php-source > /usr/local/bin/docker-php-source_new; \ + cat /usr/local/bin/docker-php-source_new; \ + chmod +x /usr/local/bin/docker-php-source_new ; \ + docker-php-source_new extract; \ + ls -l /usr/src/; \ + cd /usr/src/php; \ + gnuArch="$(dpkg-architecture --query DEB_BUILD_GNU_TYPE)"; \ + debMultiarch="$(dpkg-architecture --query DEB_BUILD_MULTIARCH)"; \ +# https://bugs.php.net/bug.php?id=74125 + if [ ! -d /usr/include/curl ]; then \ + ln -sT "/usr/include/$debMultiarch/curl" /usr/local/include/curl; \ + fi; \ + ./configure \ + --build="$gnuArch" \ + --with-config-file-path="$PHP_INI_DIR" \ + --with-config-file-scan-dir="$PHP_INI_DIR/conf.d" \ + \ +# make sure invalid --configure-flags are fatal errors intead of just warnings + --enable-option-checking=fatal \ + \ +# https://github.com/docker-library/php/issues/439 + --with-mhash \ + \ +# --enable-ftp is included here because ftp_ssl_connect() needs ftp to be compiled statically (see https://github.com/docker-library/php/issues/236) + --enable-ftp \ +# --enable-mbstring is included here because otherwise there's no way to get pecl to use it properly (see https://github.com/docker-library/php/issues/195) + --enable-mbstring \ +# --enable-mysqlnd is included here because it's harder to compile after the fact than extensions are (since it's a plugin for several extensions, not an extension in itself) + --enable-mysqlnd \ +# https://wiki.php.net/rfc/argon2_password_hash (7.2+) + --with-password-argon2 \ +# https://wiki.php.net/rfc/libsodium + --with-sodium=shared \ +# always build against system sqlite3 (https://github.com/php/php-src/commit/6083a387a81dbbd66d6316a3a12a63f06d5f7109) + --with-pdo-sqlite=/usr \ + --with-sqlite3=/usr \ + \ + --with-curl \ + --with-libedit \ + --with-openssl \ + --with-zlib \ + \ +# in PHP 7.4+, the pecl/pear installers are officially deprecated (requiring an explicit "--with-pear") and will be removed in PHP 8+; see also https://github.com/docker-library/php/issues/846#issuecomment-505638494 + --with-pear \ + \ +# bundled pcre does not support JIT on s390x +# https://manpages.debian.org/stretch/libpcre3-dev/pcrejit.3.en.html#AVAILABILITY_OF_JIT_SUPPORT + $(test "$gnuArch" = 's390x-linux-gnu' && echo '--without-pcre-jit') \ + --with-libdir="lib/$debMultiarch" \ + \ + ${PHP_EXTRA_CONFIGURE_ARGS:-} \ + ; \ + make -j "$(nproc)"; \ + find -type f -name '*.a' -delete; \ + make install; \ + find /usr/local/bin /usr/local/sbin -type f -executable -exec strip --strip-all '{}' + || true; \ + make clean; \ + \ +# https://github.com/docker-library/php/issues/692 (copy default example "php.ini" files somewhere easily discoverable) + cp -v php.ini-* "$PHP_INI_DIR/"; \ + \ + cd /; \ + docker-php-source_new delete; \ + \ +# reset apt-mark's "manual" list so that "purge --auto-remove" will remove all build dependencies + apt-mark auto '.*' > /dev/null; \ + [ -z "$savedAptMark" ] || apt-mark manual $savedAptMark; \ + find /usr/local -type f -executable -exec ldd '{}' ';' \ + | awk '/=>/ { print $(NF-1) }' \ + | sort -u \ + | xargs -r dpkg-query --search \ + | cut -d: -f1 \ + | sort -u \ + | xargs -r apt-mark manual \ + ; \ +# update pecl channel definitions https://github.com/docker-library/php/issues/443 + pecl update-channels; \ + rm -rf /tmp/pear ~/.pearrc; \ +# smoke test + php --version + +COPY images/runtime/php-fpm/8.3/docker-php-ext-* images/runtime/php-fpm/8.3/docker-php-entrypoint /usr/local/bin/ +RUN chmod +x /usr/local/bin/docker-php-ext-* +RUN chmod +x /usr/local/bin/docker-php-entrypoint + +# sodium was built as a shared module (so that it can be replaced later if so desired), so let's enable it too (https://github.com/docker-library/php/issues/598) +RUN docker-php-ext-enable sodium + +ENTRYPOINT ["docker-php-entrypoint"] +#### +WORKDIR /var/www/html + +RUN set -eux; \ + cd /usr/local/etc; \ + if [ -d php-fpm.d ]; then \ + # for some reason, upstream's php-fpm.conf.default has "include=NONE/etc/php-fpm.d/*.conf" + sed 's!=NONE/!=!g' php-fpm.conf.default | tee php-fpm.conf > /dev/null; \ + cp php-fpm.d/www.conf.default php-fpm.d/www.conf; \ + else \ + # PHP 5.x doesn't use "include=" by default, so we'll create our own simple config that mimics PHP 7+ for consistency + mkdir php-fpm.d; \ + cp php-fpm.conf.default php-fpm.d/www.conf; \ + { \ + echo '[global]'; \ + echo 'include=etc/php-fpm.d/*.conf'; \ + } | tee php-fpm.conf; \ + fi; \ + { \ + echo '[global]'; \ + echo 'error_log = /proc/self/fd/2'; \ + echo; echo '; https://github.com/docker-library/php/pull/725#issuecomment-443540114'; echo 'log_limit = 8192'; \ + echo; \ + echo '[www]'; \ + echo '; if we send this to /proc/self/fd/1, it never appears'; \ + echo 'access.log = /proc/self/fd/2'; \ + echo; \ + echo 'clear_env = no'; \ + echo; \ + echo '; Ensure worker stdout and stderr are sent to the main error log.'; \ + echo 'catch_workers_output = yes'; \ + echo 'decorate_workers_output = no'; \ + } | tee php-fpm.d/docker.conf; \ + { \ + echo '[global]'; \ + echo 'daemonize = no'; \ + echo; \ + echo '[www]'; \ + echo 'listen = 9000'; \ + } | tee php-fpm.d/zz-docker.conf + +RUN rm -rf /var/lib/apt/lists/* + +# Override stop signal to stop process gracefully +# https://github.com/php/php-src/blob/17baa87faddc2550def3ae7314236826bc1b1398/sapi/fpm/php-fpm.8.in#L163 +STOPSIGNAL SIGQUIT + +EXPOSE 9000 +CMD ["php-fpm"] +#### + +## base dockefile +SHELL ["/bin/bash", "-c"] + +ARG PHP_VERSION +ENV PHP_VERSION ${PHP_VERSION} + + +# An environment variable for oryx run-script to know the origin of php image so that +# start-up command can be determined while creating run script +ENV PHP_ORIGIN php-fpm +ENV NGINX_RUN_USER www-data +# Edit the default DocumentRoot setting +ENV NGINX_DOCUMENT_ROOT /home/site/wwwroot +# Install NGINX latest stable version using APT Method with Nginx Repository instead of distribution-provided one: +# - https://www.linuxcapable.com/how-to-install-latest-nginx-mainline-or-stable-on-debian-11/ +RUN apt-get update +RUN apt install curl nano -y +RUN curl -sSL https://packages.sury.org/nginx/README.txt | bash -x +RUN apt-get update +RUN yes '' | apt-get install nginx-core nginx-common nginx nginx-full -y +RUN ls -l /etc/nginx +COPY images/runtime/php-fpm/nginx_conf/default.conf /etc/nginx/sites-available/default +COPY images/runtime/php-fpm/nginx_conf/default.conf /etc/nginx/sites-enabled/default +RUN sed -ri -e 's!worker_connections 768!worker_connections 10068!g' /etc/nginx/nginx.conf +RUN sed -ri -e 's!# multi_accept on!multi_accept on!g' /etc/nginx/nginx.conf +RUN ls -l /etc/nginx +RUN nginx -t +# Edit the default port setting +ENV NGINX_PORT 8080 + +# Install common PHP extensions +# TEMPORARY: Holding odbc related packages from upgrading. +RUN apt-mark hold msodbcsql18 odbcinst1debian2 odbcinst unixodbc unixodbc-dev \ + && apt-get update \ + && apt-get upgrade -y \ + && ln -s /usr/lib/x86_64-linux-gnu/libldap.so /usr/lib/libldap.so \ + && ln -s /usr/lib/x86_64-linux-gnu/liblber.so /usr/lib/liblber.so \ + && ln -s /usr/include/x86_64-linux-gnu/gmp.h /usr/include/gmp.h + +RUN set -eux; \ + if [[ $PHP_VERSION == 7.4.* || $PHP_VERSION == 8.0.* || $PHP_VERSION == 8.1.* || $PHP_VERSION == 8.2.* || $PHP_VERSION == 8.3.* ]]; then \ + apt-get update \ + && apt-get upgrade -y \ + && apt-get install -y --no-install-recommends apache2-dev \ + && docker-php-ext-configure gd --with-freetype --with-jpeg \ + && PHP_OPENSSL=yes docker-php-ext-configure imap --with-kerberos --with-imap-ssl ; \ + else \ + docker-php-ext-configure gd --with-png-dir=/usr --with-jpeg-dir=/usr \ + && docker-php-ext-configure imap --with-kerberos --with-imap-ssl ; \ + fi + +RUN docker-php-ext-configure pdo_odbc --with-pdo-odbc=unixODBC,/usr \ + && docker-php-ext-install gd \ + mysqli \ + opcache \ + pdo \ + pdo_mysql \ + pdo_pgsql \ + pgsql \ + ldap \ + intl \ + gmp \ + zip \ + bcmath \ + mbstring \ + pcntl \ + calendar \ + exif \ + gettext \ + imap \ + tidy \ + shmop \ + soap \ + sockets \ + sysvmsg \ + sysvsem \ + sysvshm \ + pdo_odbc \ +# deprecated from 7.4, so should be avoided in general template for all php versions +# xmlrpc \ + xsl +RUN pecl install redis && docker-php-ext-enable redis + +# https://github.com/Imagick/imagick/issues/331 +# https://github.com/ihneo/php/pull/24/files +RUN set -eux; \ + if [[ $PHP_VERSION != 8.3.* ]]; then \ + pecl install imagick && docker-php-ext-enable imagick; \ + fi + +# deprecated from 5.*, so should be avoided +RUN set -eux; \ + if [[ $PHP_VERSION != 5.* && $PHP_VERSION != 7.0.* ]]; then \ + pecl install mongodb && docker-php-ext-enable mongodb; \ + fi + +# https://github.com/microsoft/mysqlnd_azure, Supports 7.2*, 7.3* and 7.4* +RUN set -eux; \ + if [[ $PHP_VERSION == 7.2.* || $PHP_VERSION == 7.3.* || $PHP_VERSION == 7.4.* ]]; then \ + echo "pecl/mysqlnd_azure requires PHP (version >= 7.2.*, version <= 7.99.99)"; \ + pecl install mysqlnd_azure \ + && docker-php-ext-enable mysqlnd_azure; \ + fi + +# Install the Microsoft SQL Server PDO driver on supported versions only. +# - https://docs.microsoft.com/en-us/sql/connect/php/installation-tutorial-linux-mac +# - https://docs.microsoft.com/en-us/sql/connect/odbc/linux-mac/installing-the-microsoft-odbc-driver-for-sql-server +# For php|8.0, latest stable version of pecl/sqlsrv, pecl/pdo_sqlsrv is 5.11.0 +RUN set -eux; \ + if [[ $PHP_VERSION == 8.0.* ]]; then \ + pecl install sqlsrv-5.11.0 pdo_sqlsrv-5.11.0 \ + && echo extension=pdo_sqlsrv.so >> $(php --ini | grep "Scan for additional .ini files" | sed -e "s|.*:\s*||")/30-pdo_sqlsrv.ini \ + && echo extension=sqlsrv.so >> $(php --ini | grep "Scan for additional .ini files" | sed -e "s|.*:\s*||")/20-sqlsrv.ini; \ + fi + +# Latest pecl/sqlsrv, pecl/pdo_sqlsrv requires PHP (version >= 8.1.0) +RUN set -eux; \ + if [[ $PHP_VERSION == 8.1.* || $PHP_VERSION == 8.2.* || $PHP_VERSION == 8.3.* ]]; then \ + pecl install sqlsrv pdo_sqlsrv \ + && echo extension=pdo_sqlsrv.so >> `php --ini | grep "Scan for additional .ini files" | sed -e "s|.*:\s*||"`/30-pdo_sqlsrv.ini \ + && echo extension=sqlsrv.so >> `php --ini | grep "Scan for additional .ini files" | sed -e "s|.*:\s*||"`/20-sqlsrv.ini; \ + fi + + +RUN { \ + echo 'opcache.memory_consumption=128'; \ + echo 'opcache.interned_strings_buffer=8'; \ + echo 'opcache.max_accelerated_files=4000'; \ + echo 'opcache.revalidate_freq=60'; \ + echo 'opcache.fast_shutdown=1'; \ + echo 'opcache.enable_cli=1'; \ + } > /usr/local/etc/php/conf.d/opcache-recommended.ini + +# NOTE: zend_extension=opcache is already configured via docker-php-ext-install, above +RUN { \ + echo 'error_log=/var/log/apache2/php-error.log'; \ + echo 'display_errors=Off'; \ + echo 'log_errors=On'; \ + echo 'display_startup_errors=Off'; \ + echo 'date.timezone=UTC'; \ + } > /usr/local/etc/php/conf.d/php.ini + +RUN set -x \ + && docker-php-source extract \ + && cd /usr/src/php/ext/odbc \ + && phpize \ + && sed -ri 's@^ *test +"\$PHP_.*" *= *"no" *&& *PHP_.*=yes *$@#&@g' configure \ + && chmod +x ./configure \ + && ./configure --with-unixODBC=shared,/usr \ + && docker-php-ext-install odbc \ + && rm -rf /var/lib/apt/lists/* + +ENV LANG="C.UTF-8" \ + LANGUAGE="C.UTF-8" \ + LC_ALL="C.UTF-8" + +## dockerfile +# Bake Application Insights key from pipeline variable into final image +ARG AI_CONNECTION_STRING +ENV ORYX_AI_CONNECTION_STRING=${AI_CONNECTION_STRING} + +# Oryx++ Builder variables +ENV CNB_STACK_ID="oryx.stacks.skeleton" +LABEL io.buildpacks.stack.id="oryx.stacks.skeleton" + +COPY --from=startupCmdGen /opt/startupcmdgen/startupcmdgen /opt/startupcmdgen/startupcmdgen +RUN ln -s /opt/startupcmdgen/startupcmdgen /usr/local/bin/oryx + +ENV LANG="C.UTF-8" \ + LANGUAGE="C.UTF-8" \ + LC_ALL="C.UTF-8" \ No newline at end of file diff --git a/images/runtime/php-fpm/8.3/bullseye.Dockerfile b/images/runtime/php-fpm/8.3/bullseye.Dockerfile new file mode 100644 index 000000000..3f39c9171 --- /dev/null +++ b/images/runtime/php-fpm/8.3/bullseye.Dockerfile @@ -0,0 +1,438 @@ +ARG BASE_IMAGE + +# Startup script generator +FROM mcr.microsoft.com/oss/go/microsoft/golang:1.20-bullseye as startupCmdGen + +# GOPATH is set to "/go" in the base image +WORKDIR /go/src +COPY src/startupscriptgenerator/src . +ARG GIT_COMMIT=unspecified +ARG BUILD_NUMBER=unspecified +ARG RELEASE_TAG_NAME=unspecified +ENV RELEASE_TAG_NAME=${RELEASE_TAG_NAME} +ENV GIT_COMMIT=${GIT_COMMIT} +ENV BUILD_NUMBER=${BUILD_NUMBER} +RUN chmod +x build.sh && ./build.sh php /opt/startupcmdgen/startupcmdgen + +# From https://github.com/docker-library/php.git +FROM ${BASE_IMAGE} +ARG IMAGES_DIR=/tmp/oryx/images + +# do NOT merge this content with above line because the +# above line is shared across all php images +# Install the Microsoft SQL Server PDO driver on supported versions only. +# - https://docs.microsoft.com/en-us/sql/connect/php/installation-tutorial-linux-mac +# - https://docs.microsoft.com/en-us/sql/connect/odbc/linux-mac/installing-the-microsoft-odbc-driver-for-sql-server +RUN set -eux \ + && apt-get update \ + && apt-get install -y --no-install-recommends \ + gnupg2 \ + apt-transport-https \ + && curl https://packages.microsoft.com/keys/microsoft.asc | apt-key add - \ + && curl https://packages.microsoft.com/config/debian/11/prod.list > /etc/apt/sources.list.d/mssql-release.list \ + && apt-get update \ + && ACCEPT_EULA=Y apt-get install -y msodbcsql17 msodbcsql18=18.1.2.1-1 odbcinst1debian2=2.3.7 odbcinst=2.3.7 unixodbc=2.3.7 unixodbc-dev=2.3.7 + +ENV PHP_INI_DIR /usr/local/etc/php +RUN set -eux; \ + mkdir -p "$PHP_INI_DIR/conf.d"; \ +# allow running as an arbitrary user (https://github.com/docker-library/php/issues/743) + [ ! -d /var/www/html ]; \ + mkdir -p /var/www/html; \ + chown www-data:www-data /var/www/html; \ + chmod 777 /var/www/html + +#### +ENV PHP_EXTRA_CONFIGURE_ARGS --enable-fpm --with-fpm-user=www-data --with-fpm-group=www-data --disable-cgi ac_cv_func_mmap=no +#### + +# Apply stack smash protection to functions using local buffers and alloca() +# Make PHP's main executable position-independent (improves ASLR security mechanism, and has no performance impact on x86_64) +# Enable optimization (-O2) +# Enable linker optimization (this sorts the hash buckets to improve cache locality, and is non-default) +# Adds GNU HASH segments to generated executables (this is used if present, and is much faster than sysv hash; in this configuration, sysv hash is also generated) +# https://github.com/docker-library/php/issues/272 +# -D_LARGEFILE_SOURCE and -D_FILE_OFFSET_BITS=64 (https://www.php.net/manual/en/intro.filesystem.php) +ENV PHP_CFLAGS="-fstack-protector-strong -fpic -fpie -O2 -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64" +ENV PHP_CPPFLAGS="$PHP_CFLAGS" +ENV PHP_LDFLAGS="-Wl,-O1 -Wl,--hash-style=both -pie" + +ENV GPG_KEYS 1198C0117593497A5EC5C199286AF1F9897469DC AFD8691FDAEDF03BDF6E460563F15A9B715376CA C28D937575603EB4ABB725861C0779DC5C0A9DE4 + +ENV PHP_VERSION 8.3.4 + +ENV PHP_URL="https://www.php.net/get/php-8.3.4.tar.xz/from/this/mirror" PHP_ASC_URL="https://www.php.net/get/php-8.3.4.tar.xz.asc/from/this/mirror" +ENV PHP_SHA256="39a337036a546e5c28aea76cf424ac172db5156bd8a8fd85252e389409a5ba63" PHP_MD5="" + +RUN set -eux; \ + \ + savedAptMark="$(apt-mark showmanual)"; \ + apt-get update; \ + apt-get install -y --no-install-recommends gnupg dirmngr; \ + rm -rf /var/lib/apt/lists/*; \ + \ + mkdir -p /usr/src; \ + cd /usr/src; \ + \ + curl -fsSL -o php.tar.xz "$PHP_URL"; \ + \ + if [ -n "$PHP_SHA256" ]; then \ + echo "$PHP_SHA256 *php.tar.xz" | sha256sum -c -; \ + fi; \ + if [ -n "$PHP_MD5" ]; then \ + echo "$PHP_MD5 *php.tar.xz" | md5sum -c -; \ + fi; \ + \ + if [ -n "$PHP_ASC_URL" ]; then \ + curl -fsSL -o php.tar.xz.asc "$PHP_ASC_URL"; \ + export GNUPGHOME="$(mktemp -d)"; \ + ${IMAGES_DIR}/receiveGpgKeys.sh $GPG_KEYS; \ + gpg --batch --verify php.tar.xz.asc php.tar.xz; \ + gpgconf --kill all; \ + rm -rf "$GNUPGHOME"; \ + fi; \ + \ + apt-mark auto '.*' > /dev/null; \ + apt-mark manual $savedAptMark > /dev/null; \ + apt-get purge -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false + +COPY images/runtime/php-fpm/8.3/docker-php-source /usr/local/bin/ +RUN chmod +x /usr/local/bin/docker-php-source + +RUN set -eux; \ + \ + + savedAptMark="$(apt-mark showmanual)"; \ + apt-get update; \ + apt-get install -y --no-install-recommends \ + libargon2-dev \ + libcurl4-openssl-dev \ + libedit-dev \ + libonig-dev \ + libsodium-dev \ + libsqlite3-dev \ + libssl-dev \ + libxml2-dev \ + zlib1g-dev \ + ${PHP_EXTRA_BUILD_DEPS:-} \ + ; \ + rm -rf /var/lib/apt/lists/*; \ + \ + export \ + CFLAGS="$PHP_CFLAGS" \ + CPPFLAGS="$PHP_CPPFLAGS" \ + LDFLAGS="$PHP_LDFLAGS" \ + ; \ + #which docker-php-source; \ + awk '{ sub("\r$", ""); print }' /usr/local/bin/docker-php-source > /usr/local/bin/docker-php-source_new; \ + cat /usr/local/bin/docker-php-source_new; \ + chmod +x /usr/local/bin/docker-php-source_new ; \ + docker-php-source_new extract; \ + ls -l /usr/src/; \ + cd /usr/src/php; \ + gnuArch="$(dpkg-architecture --query DEB_BUILD_GNU_TYPE)"; \ + debMultiarch="$(dpkg-architecture --query DEB_BUILD_MULTIARCH)"; \ +# https://bugs.php.net/bug.php?id=74125 + if [ ! -d /usr/include/curl ]; then \ + ln -sT "/usr/include/$debMultiarch/curl" /usr/local/include/curl; \ + fi; \ + ./configure \ + --build="$gnuArch" \ + --with-config-file-path="$PHP_INI_DIR" \ + --with-config-file-scan-dir="$PHP_INI_DIR/conf.d" \ + \ +# make sure invalid --configure-flags are fatal errors intead of just warnings + --enable-option-checking=fatal \ + \ +# https://github.com/docker-library/php/issues/439 + --with-mhash \ + \ +# --enable-ftp is included here because ftp_ssl_connect() needs ftp to be compiled statically (see https://github.com/docker-library/php/issues/236) + --enable-ftp \ +# --enable-mbstring is included here because otherwise there's no way to get pecl to use it properly (see https://github.com/docker-library/php/issues/195) + --enable-mbstring \ +# --enable-mysqlnd is included here because it's harder to compile after the fact than extensions are (since it's a plugin for several extensions, not an extension in itself) + --enable-mysqlnd \ +# https://wiki.php.net/rfc/argon2_password_hash (7.2+) + --with-password-argon2 \ +# https://wiki.php.net/rfc/libsodium + --with-sodium=shared \ +# always build against system sqlite3 (https://github.com/php/php-src/commit/6083a387a81dbbd66d6316a3a12a63f06d5f7109) + --with-pdo-sqlite=/usr \ + --with-sqlite3=/usr \ + \ + --with-curl \ + --with-libedit \ + --with-openssl \ + --with-zlib \ + \ +# in PHP 7.4+, the pecl/pear installers are officially deprecated (requiring an explicit "--with-pear") and will be removed in PHP 8+; see also https://github.com/docker-library/php/issues/846#issuecomment-505638494 + --with-pear \ + \ +# bundled pcre does not support JIT on s390x +# https://manpages.debian.org/stretch/libpcre3-dev/pcrejit.3.en.html#AVAILABILITY_OF_JIT_SUPPORT + $(test "$gnuArch" = 's390x-linux-gnu' && echo '--without-pcre-jit') \ + --with-libdir="lib/$debMultiarch" \ + \ + ${PHP_EXTRA_CONFIGURE_ARGS:-} \ + ; \ + make -j "$(nproc)"; \ + find -type f -name '*.a' -delete; \ + make install; \ + find /usr/local/bin /usr/local/sbin -type f -executable -exec strip --strip-all '{}' + || true; \ + make clean; \ + \ +# https://github.com/docker-library/php/issues/692 (copy default example "php.ini" files somewhere easily discoverable) + cp -v php.ini-* "$PHP_INI_DIR/"; \ + \ + cd /; \ + docker-php-source_new delete; \ + \ +# reset apt-mark's "manual" list so that "purge --auto-remove" will remove all build dependencies + apt-mark auto '.*' > /dev/null; \ + [ -z "$savedAptMark" ] || apt-mark manual $savedAptMark; \ + find /usr/local -type f -executable -exec ldd '{}' ';' \ + | awk '/=>/ { print $(NF-1) }' \ + | sort -u \ + | xargs -r dpkg-query --search \ + | cut -d: -f1 \ + | sort -u \ + | xargs -r apt-mark manual \ + ; \ + apt-get purge -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false; \ + \ +# update pecl channel definitions https://github.com/docker-library/php/issues/443 + pecl update-channels; \ + rm -rf /tmp/pear ~/.pearrc; \ +# smoke test + php --version + +COPY images/runtime/php-fpm/8.3/docker-php-ext-* images/runtime/php-fpm/8.3/docker-php-entrypoint /usr/local/bin/ +RUN chmod +x /usr/local/bin/docker-php-ext-* +RUN chmod +x /usr/local/bin/docker-php-entrypoint + +# sodium was built as a shared module (so that it can be replaced later if so desired), so let's enable it too (https://github.com/docker-library/php/issues/598) +RUN docker-php-ext-enable sodium + +ENTRYPOINT ["docker-php-entrypoint"] +#### +WORKDIR /var/www/html + +RUN set -eux; \ + cd /usr/local/etc; \ + if [ -d php-fpm.d ]; then \ + # for some reason, upstream's php-fpm.conf.default has "include=NONE/etc/php-fpm.d/*.conf" + sed 's!=NONE/!=!g' php-fpm.conf.default | tee php-fpm.conf > /dev/null; \ + cp php-fpm.d/www.conf.default php-fpm.d/www.conf; \ + else \ + # PHP 5.x doesn't use "include=" by default, so we'll create our own simple config that mimics PHP 7+ for consistency + mkdir php-fpm.d; \ + cp php-fpm.conf.default php-fpm.d/www.conf; \ + { \ + echo '[global]'; \ + echo 'include=etc/php-fpm.d/*.conf'; \ + } | tee php-fpm.conf; \ + fi; \ + { \ + echo '[global]'; \ + echo 'error_log = /proc/self/fd/2'; \ + echo; echo '; https://github.com/docker-library/php/pull/725#issuecomment-443540114'; echo 'log_limit = 8192'; \ + echo; \ + echo '[www]'; \ + echo '; if we send this to /proc/self/fd/1, it never appears'; \ + echo 'access.log = /proc/self/fd/2'; \ + echo; \ + echo 'clear_env = no'; \ + echo; \ + echo '; Ensure worker stdout and stderr are sent to the main error log.'; \ + echo 'catch_workers_output = yes'; \ + echo 'decorate_workers_output = no'; \ + } | tee php-fpm.d/docker.conf; \ + { \ + echo '[global]'; \ + echo 'daemonize = no'; \ + echo; \ + echo '[www]'; \ + echo 'listen = 9000'; \ + } | tee php-fpm.d/zz-docker.conf + +RUN rm -rf /var/lib/apt/lists/* + +# Override stop signal to stop process gracefully +# https://github.com/php/php-src/blob/17baa87faddc2550def3ae7314236826bc1b1398/sapi/fpm/php-fpm.8.in#L163 +STOPSIGNAL SIGQUIT + +EXPOSE 9000 +CMD ["php-fpm"] +#### + +## base dockerfile +SHELL ["/bin/bash", "-c"] +ARG PHP_VERSION +ENV PHP_VERSION ${PHP_VERSION} + +# An environment variable for oryx run-script to know the origin of php image so that +# start-up command can be determined while creating run script +ENV PHP_ORIGIN php-fpm +ENV NGINX_RUN_USER www-data +# Edit the default DocumentRoot setting +ENV NGINX_DOCUMENT_ROOT /home/site/wwwroot +# Install NGINX latest stable version using APT Method with Nginx Repository instead of distribution-provided one: +# - https://www.linuxcapable.com/how-to-install-latest-nginx-mainline-or-stable-on-debian-11/ +RUN apt-get update +RUN apt install curl nano -y +RUN curl -sSL https://packages.sury.org/nginx/README.txt | bash -x +RUN apt-get update +RUN yes '' | apt-get install nginx-core nginx-common nginx nginx-full -y +RUN ls -l /etc/nginx +COPY images/runtime/php-fpm/nginx_conf/default.conf /etc/nginx/sites-available/default +COPY images/runtime/php-fpm/nginx_conf/default.conf /etc/nginx/sites-enabled/default +RUN sed -ri -e 's!worker_connections 768!worker_connections 10068!g' /etc/nginx/nginx.conf +RUN sed -ri -e 's!# multi_accept on!multi_accept on!g' /etc/nginx/nginx.conf +RUN ls -l /etc/nginx +RUN nginx -t +# Edit the default port setting +ENV NGINX_PORT 8080 + +# Install common PHP extensions +# TEMPORARY: Holding odbc related packages from upgrading. +RUN apt-mark hold msodbcsql18 odbcinst1debian2 odbcinst unixodbc unixodbc-dev \ + && apt-get update \ + && apt-get upgrade -y \ + && ln -s /usr/lib/x86_64-linux-gnu/libldap.so /usr/lib/libldap.so \ + && ln -s /usr/lib/x86_64-linux-gnu/liblber.so /usr/lib/liblber.so \ + && ln -s /usr/include/x86_64-linux-gnu/gmp.h /usr/include/gmp.h + +RUN set -eux; \ + if [[ $PHP_VERSION == 7.4.* || $PHP_VERSION == 8.0.* || $PHP_VERSION == 8.1.* || $PHP_VERSION == 8.2.* || $PHP_VERSION == 8.3.* ]]; then \ + apt-get update \ + && apt-get upgrade -y \ + && apt-get install -y --no-install-recommends apache2-dev \ + && docker-php-ext-configure gd --with-freetype --with-jpeg \ + && PHP_OPENSSL=yes docker-php-ext-configure imap --with-kerberos --with-imap-ssl ; \ + else \ + docker-php-ext-configure gd --with-png-dir=/usr --with-jpeg-dir=/usr \ + && docker-php-ext-configure imap --with-kerberos --with-imap-ssl ; \ + fi + +RUN docker-php-ext-configure pdo_odbc --with-pdo-odbc=unixODBC,/usr \ + && docker-php-ext-install gd \ + mysqli \ + opcache \ + pdo \ + pdo_mysql \ + pdo_pgsql \ + pgsql \ + ldap \ + intl \ + gmp \ + zip \ + bcmath \ + mbstring \ + pcntl \ + calendar \ + exif \ + gettext \ + imap \ + tidy \ + shmop \ + soap \ + sockets \ + sysvmsg \ + sysvsem \ + sysvshm \ + pdo_odbc \ +# deprecated from 7.4, so should be avoided in general template for all php versions +# xmlrpc \ + xsl +RUN pecl install redis && docker-php-ext-enable redis + +# https://github.com/Imagick/imagick/issues/331 +# https://github.com/ihneo/php/pull/24/files +RUN set -eux; \ + if [[ $PHP_VERSION != 8.3.* ]]; then \ + pecl install imagick && docker-php-ext-enable imagick; \ + fi + +# deprecated from 5.*, so should be avoided +RUN set -eux; \ + if [[ $PHP_VERSION != 5.* && $PHP_VERSION != 7.0.* ]]; then \ + pecl install mongodb && docker-php-ext-enable mongodb; \ + fi + +# https://github.com/microsoft/mysqlnd_azure, Supports 7.2*, 7.3* and 7.4* +RUN set -eux; \ + if [[ $PHP_VERSION == 7.2.* || $PHP_VERSION == 7.3.* || $PHP_VERSION == 7.4.* ]]; then \ + echo "pecl/mysqlnd_azure requires PHP (version >= 7.2.*, version <= 7.99.99)"; \ + pecl install mysqlnd_azure \ + && docker-php-ext-enable mysqlnd_azure; \ + fi + +# Install the Microsoft SQL Server PDO driver on supported versions only. +# - https://docs.microsoft.com/en-us/sql/connect/php/installation-tutorial-linux-mac +# - https://docs.microsoft.com/en-us/sql/connect/odbc/linux-mac/installing-the-microsoft-odbc-driver-for-sql-server +# For php|8.0, latest stable version of pecl/sqlsrv, pecl/pdo_sqlsrv is 5.11.0 +RUN set -eux; \ + if [[ $PHP_VERSION == 8.0.* ]]; then \ + pecl install sqlsrv-5.11.0 pdo_sqlsrv-5.11.0 \ + && echo extension=pdo_sqlsrv.so >> $(php --ini | grep "Scan for additional .ini files" | sed -e "s|.*:\s*||")/30-pdo_sqlsrv.ini \ + && echo extension=sqlsrv.so >> $(php --ini | grep "Scan for additional .ini files" | sed -e "s|.*:\s*||")/20-sqlsrv.ini; \ + fi + +# Latest pecl/sqlsrv, pecl/pdo_sqlsrv requires PHP (version >= 8.1.0) +RUN set -eux; \ + if [[ $PHP_VERSION == 8.1.* || $PHP_VERSION == 8.2.* || $PHP_VERSION == 8.3.* ]]; then \ + pecl install sqlsrv pdo_sqlsrv \ + && echo extension=pdo_sqlsrv.so >> `php --ini | grep "Scan for additional .ini files" | sed -e "s|.*:\s*||"`/30-pdo_sqlsrv.ini \ + && echo extension=sqlsrv.so >> `php --ini | grep "Scan for additional .ini files" | sed -e "s|.*:\s*||"`/20-sqlsrv.ini; \ + fi + + +RUN { \ + echo 'opcache.memory_consumption=128'; \ + echo 'opcache.interned_strings_buffer=8'; \ + echo 'opcache.max_accelerated_files=4000'; \ + echo 'opcache.revalidate_freq=60'; \ + echo 'opcache.fast_shutdown=1'; \ + echo 'opcache.enable_cli=1'; \ + } > /usr/local/etc/php/conf.d/opcache-recommended.ini + +# NOTE: zend_extension=opcache is already configured via docker-php-ext-install, above +RUN { \ + echo 'error_log=/var/log/apache2/php-error.log'; \ + echo 'display_errors=Off'; \ + echo 'log_errors=On'; \ + echo 'display_startup_errors=Off'; \ + echo 'date.timezone=UTC'; \ + } > /usr/local/etc/php/conf.d/php.ini + +RUN set -x \ + && docker-php-source extract \ + && cd /usr/src/php/ext/odbc \ + && phpize \ + && sed -ri 's@^ *test +"\$PHP_.*" *= *"no" *&& *PHP_.*=yes *$@#&@g' configure \ + && chmod +x ./configure \ + && ./configure --with-unixODBC=shared,/usr \ + && docker-php-ext-install odbc \ + && rm -rf /var/lib/apt/lists/* + +ENV LANG="C.UTF-8" \ + LANGUAGE="C.UTF-8" \ + LC_ALL="C.UTF-8" + +## dockerfile + +# Bake Application Insights key from pipeline variable into final image +ARG AI_CONNECTION_STRING +ENV ORYX_AI_CONNECTION_STRING=${AI_CONNECTION_STRING} + +# Oryx++ Builder variables +ENV CNB_STACK_ID="oryx.stacks.skeleton" +LABEL io.buildpacks.stack.id="oryx.stacks.skeleton" + +COPY --from=startupCmdGen /opt/startupcmdgen/startupcmdgen /opt/startupcmdgen/startupcmdgen +RUN ln -s /opt/startupcmdgen/startupcmdgen /usr/local/bin/oryx + +ENV LANG="C.UTF-8" \ + LANGUAGE="C.UTF-8" \ + LC_ALL="C.UTF-8" \ No newline at end of file diff --git a/images/runtime/php-fpm/8.3/buster.Dockerfile b/images/runtime/php-fpm/8.3/buster.Dockerfile new file mode 100644 index 000000000..39e645b4c --- /dev/null +++ b/images/runtime/php-fpm/8.3/buster.Dockerfile @@ -0,0 +1,438 @@ +ARG BASE_IMAGE + +# Startup script generator +FROM mcr.microsoft.com/oss/go/microsoft/golang:1.20-buster as startupCmdGen + +# GOPATH is set to "/go" in the base image +WORKDIR /go/src +COPY src/startupscriptgenerator/src . +ARG GIT_COMMIT=unspecified +ARG BUILD_NUMBER=unspecified +ARG RELEASE_TAG_NAME=unspecified +ENV RELEASE_TAG_NAME=${RELEASE_TAG_NAME} +ENV GIT_COMMIT=${GIT_COMMIT} +ENV BUILD_NUMBER=${BUILD_NUMBER} +RUN chmod +x build.sh && ./build.sh php /opt/startupcmdgen/startupcmdgen + +# From https://github.com/docker-library/php.git +FROM ${BASE_IMAGE} +ARG IMAGES_DIR=/tmp/oryx/images + +# do NOT merge this content with above line because the +# above line is shared across all php images +# Install the Microsoft SQL Server PDO driver on supported versions only. +# - https://docs.microsoft.com/en-us/sql/connect/php/installation-tutorial-linux-mac +# - https://docs.microsoft.com/en-us/sql/connect/odbc/linux-mac/installing-the-microsoft-odbc-driver-for-sql-server +RUN set -eux \ + && apt-get update \ + && apt-get install -y --no-install-recommends \ + gnupg2 \ + apt-transport-https \ + && curl https://packages.microsoft.com/keys/microsoft.asc | apt-key add - \ + && curl https://packages.microsoft.com/config/debian/10/prod.list > /etc/apt/sources.list.d/mssql-release.list \ + && apt-get update \ + && ACCEPT_EULA=Y apt-get install -y msodbcsql17 msodbcsql18=18.1.2.1-1 odbcinst1debian2=2.3.7 odbcinst=2.3.7 unixodbc=2.3.7 unixodbc-dev=2.3.7 + +ENV PHP_INI_DIR /usr/local/etc/php +RUN set -eux; \ + mkdir -p "$PHP_INI_DIR/conf.d"; \ +# allow running as an arbitrary user (https://github.com/docker-library/php/issues/743) + [ ! -d /var/www/html ]; \ + mkdir -p /var/www/html; \ + chown www-data:www-data /var/www/html; \ + chmod 777 /var/www/html + +#### +ENV PHP_EXTRA_CONFIGURE_ARGS --enable-fpm --with-fpm-user=www-data --with-fpm-group=www-data --disable-cgi ac_cv_func_mmap=no +#### + +# Apply stack smash protection to functions using local buffers and alloca() +# Make PHP's main executable position-independent (improves ASLR security mechanism, and has no performance impact on x86_64) +# Enable optimization (-O2) +# Enable linker optimization (this sorts the hash buckets to improve cache locality, and is non-default) +# Adds GNU HASH segments to generated executables (this is used if present, and is much faster than sysv hash; in this configuration, sysv hash is also generated) +# https://github.com/docker-library/php/issues/272 +# -D_LARGEFILE_SOURCE and -D_FILE_OFFSET_BITS=64 (https://www.php.net/manual/en/intro.filesystem.php) +ENV PHP_CFLAGS="-fstack-protector-strong -fpic -fpie -O2 -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64" +ENV PHP_CPPFLAGS="$PHP_CFLAGS" +ENV PHP_LDFLAGS="-Wl,-O1 -Wl,--hash-style=both -pie" + +ENV GPG_KEYS 1198C0117593497A5EC5C199286AF1F9897469DC AFD8691FDAEDF03BDF6E460563F15A9B715376CA C28D937575603EB4ABB725861C0779DC5C0A9DE4 + +ENV PHP_VERSION 8.3.4 +ENV PHP_URL="https://www.php.net/get/php-8.3.4.tar.xz/from/this/mirror" PHP_ASC_URL="https://www.php.net/get/php-8.3.4.tar.xz.asc/from/this/mirror" +ENV PHP_SHA256="39a337036a546e5c28aea76cf424ac172db5156bd8a8fd85252e389409a5ba63" PHP_MD5="" + +RUN set -eux; \ + \ + savedAptMark="$(apt-mark showmanual)"; \ + apt-get update; \ + apt-get install -y --no-install-recommends gnupg dirmngr; \ + rm -rf /var/lib/apt/lists/*; \ + \ + mkdir -p /usr/src; \ + cd /usr/src; \ + \ + curl -fsSL -o php.tar.xz "$PHP_URL"; \ + \ + if [ -n "$PHP_SHA256" ]; then \ + echo "$PHP_SHA256 *php.tar.xz" | sha256sum -c -; \ + fi; \ + if [ -n "$PHP_MD5" ]; then \ + echo "$PHP_MD5 *php.tar.xz" | md5sum -c -; \ + fi; \ + \ + if [ -n "$PHP_ASC_URL" ]; then \ + curl -fsSL -o php.tar.xz.asc "$PHP_ASC_URL"; \ + export GNUPGHOME="$(mktemp -d)"; \ + ${IMAGES_DIR}/receiveGpgKeys.sh $GPG_KEYS; \ + gpg --batch --verify php.tar.xz.asc php.tar.xz; \ + gpgconf --kill all; \ + rm -rf "$GNUPGHOME"; \ + fi; \ + \ + apt-mark auto '.*' > /dev/null; \ + apt-mark manual $savedAptMark > /dev/null; \ + apt-get purge -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false + +COPY images/runtime/php-fpm/8.3/docker-php-source /usr/local/bin/ +RUN chmod +x /usr/local/bin/docker-php-source + +RUN set -eux; \ + \ + + savedAptMark="$(apt-mark showmanual)"; \ + apt-get update; \ + apt-get install -y --no-install-recommends \ + libargon2-dev \ + libcurl4-openssl-dev \ + libedit-dev \ + libonig-dev \ + libsodium-dev \ + libsqlite3-dev \ + libssl-dev \ + libxml2-dev \ + zlib1g-dev \ + ${PHP_EXTRA_BUILD_DEPS:-} \ + ; \ + rm -rf /var/lib/apt/lists/*; \ + \ + export \ + CFLAGS="$PHP_CFLAGS" \ + CPPFLAGS="$PHP_CPPFLAGS" \ + LDFLAGS="$PHP_LDFLAGS" \ + ; \ + #which docker-php-source; \ + awk '{ sub("\r$", ""); print }' /usr/local/bin/docker-php-source > /usr/local/bin/docker-php-source_new; \ + cat /usr/local/bin/docker-php-source_new; \ + chmod +x /usr/local/bin/docker-php-source_new ; \ + docker-php-source_new extract; \ + ls -l /usr/src/; \ + cd /usr/src/php; \ + gnuArch="$(dpkg-architecture --query DEB_BUILD_GNU_TYPE)"; \ + debMultiarch="$(dpkg-architecture --query DEB_BUILD_MULTIARCH)"; \ +# https://bugs.php.net/bug.php?id=74125 + if [ ! -d /usr/include/curl ]; then \ + ln -sT "/usr/include/$debMultiarch/curl" /usr/local/include/curl; \ + fi; \ + ./configure \ + --build="$gnuArch" \ + --with-config-file-path="$PHP_INI_DIR" \ + --with-config-file-scan-dir="$PHP_INI_DIR/conf.d" \ + \ +# make sure invalid --configure-flags are fatal errors intead of just warnings + --enable-option-checking=fatal \ + \ +# https://github.com/docker-library/php/issues/439 + --with-mhash \ + \ +# --enable-ftp is included here because ftp_ssl_connect() needs ftp to be compiled statically (see https://github.com/docker-library/php/issues/236) + --enable-ftp \ +# --enable-mbstring is included here because otherwise there's no way to get pecl to use it properly (see https://github.com/docker-library/php/issues/195) + --enable-mbstring \ +# --enable-mysqlnd is included here because it's harder to compile after the fact than extensions are (since it's a plugin for several extensions, not an extension in itself) + --enable-mysqlnd \ +# https://wiki.php.net/rfc/argon2_password_hash (7.2+) + --with-password-argon2 \ +# https://wiki.php.net/rfc/libsodium + --with-sodium=shared \ +# always build against system sqlite3 (https://github.com/php/php-src/commit/6083a387a81dbbd66d6316a3a12a63f06d5f7109) + --with-pdo-sqlite=/usr \ + --with-sqlite3=/usr \ + \ + --with-curl \ + --with-libedit \ + --with-openssl \ + --with-zlib \ + \ +# in PHP 7.4+, the pecl/pear installers are officially deprecated (requiring an explicit "--with-pear") and will be removed in PHP 8+; see also https://github.com/docker-library/php/issues/846#issuecomment-505638494 + --with-pear \ + \ +# bundled pcre does not support JIT on s390x +# https://manpages.debian.org/stretch/libpcre3-dev/pcrejit.3.en.html#AVAILABILITY_OF_JIT_SUPPORT + $(test "$gnuArch" = 's390x-linux-gnu' && echo '--without-pcre-jit') \ + --with-libdir="lib/$debMultiarch" \ + \ + ${PHP_EXTRA_CONFIGURE_ARGS:-} \ + ; \ + make -j "$(nproc)"; \ + find -type f -name '*.a' -delete; \ + make install; \ + find /usr/local/bin /usr/local/sbin -type f -executable -exec strip --strip-all '{}' + || true; \ + make clean; \ + \ +# https://github.com/docker-library/php/issues/692 (copy default example "php.ini" files somewhere easily discoverable) + cp -v php.ini-* "$PHP_INI_DIR/"; \ + \ + cd /; \ + docker-php-source_new delete; \ + \ +# reset apt-mark's "manual" list so that "purge --auto-remove" will remove all build dependencies + apt-mark auto '.*' > /dev/null; \ + [ -z "$savedAptMark" ] || apt-mark manual $savedAptMark; \ + find /usr/local -type f -executable -exec ldd '{}' ';' \ + | awk '/=>/ { print $(NF-1) }' \ + | sort -u \ + | xargs -r dpkg-query --search \ + | cut -d: -f1 \ + | sort -u \ + | xargs -r apt-mark manual \ + ; \ + apt-get purge -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false; \ + \ +# update pecl channel definitions https://github.com/docker-library/php/issues/443 + pecl update-channels; \ + rm -rf /tmp/pear ~/.pearrc; \ +# smoke test + php --version + +COPY images/runtime/php-fpm/8.3/docker-php-ext-* images/runtime/php-fpm/8.3/docker-php-entrypoint /usr/local/bin/ +RUN chmod +x /usr/local/bin/docker-php-ext-* +RUN chmod +x /usr/local/bin/docker-php-entrypoint + +# sodium was built as a shared module (so that it can be replaced later if so desired), so let's enable it too (https://github.com/docker-library/php/issues/598) +RUN docker-php-ext-enable sodium + +ENTRYPOINT ["docker-php-entrypoint"] +#### +WORKDIR /var/www/html + +RUN set -eux; \ + cd /usr/local/etc; \ + if [ -d php-fpm.d ]; then \ + # for some reason, upstream's php-fpm.conf.default has "include=NONE/etc/php-fpm.d/*.conf" + sed 's!=NONE/!=!g' php-fpm.conf.default | tee php-fpm.conf > /dev/null; \ + cp php-fpm.d/www.conf.default php-fpm.d/www.conf; \ + else \ + # PHP 5.x doesn't use "include=" by default, so we'll create our own simple config that mimics PHP 7+ for consistency + mkdir php-fpm.d; \ + cp php-fpm.conf.default php-fpm.d/www.conf; \ + { \ + echo '[global]'; \ + echo 'include=etc/php-fpm.d/*.conf'; \ + } | tee php-fpm.conf; \ + fi; \ + { \ + echo '[global]'; \ + echo 'error_log = /proc/self/fd/2'; \ + echo; echo '; https://github.com/docker-library/php/pull/725#issuecomment-443540114'; echo 'log_limit = 8192'; \ + echo; \ + echo '[www]'; \ + echo '; if we send this to /proc/self/fd/1, it never appears'; \ + echo 'access.log = /proc/self/fd/2'; \ + echo; \ + echo 'clear_env = no'; \ + echo; \ + echo '; Ensure worker stdout and stderr are sent to the main error log.'; \ + echo 'catch_workers_output = yes'; \ + echo 'decorate_workers_output = no'; \ + } | tee php-fpm.d/docker.conf; \ + { \ + echo '[global]'; \ + echo 'daemonize = no'; \ + echo; \ + echo '[www]'; \ + echo 'listen = 9000'; \ + } | tee php-fpm.d/zz-docker.conf + +RUN rm -rf /var/lib/apt/lists/* + +# Override stop signal to stop process gracefully +# https://github.com/php/php-src/blob/17baa87faddc2550def3ae7314236826bc1b1398/sapi/fpm/php-fpm.8.in#L163 +STOPSIGNAL SIGQUIT + +EXPOSE 9000 +CMD ["php-fpm"] +#### + +## base dockerfile +SHELL ["/bin/bash", "-c"] + +ARG PHP_VERSION +ENV PHP_VERSION ${PHP_VERSION} + +# An environment variable for oryx run-script to know the origin of php image so that +# start-up command can be determined while creating run script +ENV PHP_ORIGIN php-fpm +ENV NGINX_RUN_USER www-data +# Edit the default DocumentRoot setting +ENV NGINX_DOCUMENT_ROOT /home/site/wwwroot +# Install NGINX latest stable version using APT Method with Nginx Repository instead of distribution-provided one: +# - https://www.linuxcapable.com/how-to-install-latest-nginx-mainline-or-stable-on-debian-11/ +RUN apt-get update +RUN apt install curl nano -y +RUN curl -sSL https://packages.sury.org/nginx/README.txt | bash -x +RUN apt-get update +RUN yes '' | apt-get install nginx-core nginx-common nginx nginx-full -y +RUN ls -l /etc/nginx +COPY images/runtime/php-fpm/nginx_conf/default.conf /etc/nginx/sites-available/default +COPY images/runtime/php-fpm/nginx_conf/default.conf /etc/nginx/sites-enabled/default +RUN sed -ri -e 's!worker_connections 768!worker_connections 10068!g' /etc/nginx/nginx.conf +RUN sed -ri -e 's!# multi_accept on!multi_accept on!g' /etc/nginx/nginx.conf +RUN ls -l /etc/nginx +RUN nginx -t +# Edit the default port setting +ENV NGINX_PORT 8080 + +# Install common PHP extensions +# TEMPORARY: Holding odbc related packages from upgrading. +RUN apt-mark hold msodbcsql18 odbcinst1debian2 odbcinst unixodbc unixodbc-dev \ + && apt-get update \ + && apt-get upgrade -y \ + && ln -s /usr/lib/x86_64-linux-gnu/libldap.so /usr/lib/libldap.so \ + && ln -s /usr/lib/x86_64-linux-gnu/liblber.so /usr/lib/liblber.so \ + && ln -s /usr/include/x86_64-linux-gnu/gmp.h /usr/include/gmp.h + +RUN set -eux; \ + if [[ $PHP_VERSION == 7.4.* || $PHP_VERSION == 8.0.* || $PHP_VERSION == 8.1.* || $PHP_VERSION == 8.2.* || $PHP_VERSION == 8.3.* ]]; then \ + apt-get update \ + && apt-get upgrade -y \ + && apt-get install -y --no-install-recommends apache2-dev \ + && docker-php-ext-configure gd --with-freetype --with-jpeg \ + && PHP_OPENSSL=yes docker-php-ext-configure imap --with-kerberos --with-imap-ssl ; \ + else \ + docker-php-ext-configure gd --with-png-dir=/usr --with-jpeg-dir=/usr \ + && docker-php-ext-configure imap --with-kerberos --with-imap-ssl ; \ + fi + +RUN docker-php-ext-configure pdo_odbc --with-pdo-odbc=unixODBC,/usr \ + && docker-php-ext-install gd \ + mysqli \ + opcache \ + pdo \ + pdo_mysql \ + pdo_pgsql \ + pgsql \ + ldap \ + intl \ + gmp \ + zip \ + bcmath \ + mbstring \ + pcntl \ + calendar \ + exif \ + gettext \ + imap \ + tidy \ + shmop \ + soap \ + sockets \ + sysvmsg \ + sysvsem \ + sysvshm \ + pdo_odbc \ +# deprecated from 7.4, so should be avoided in general template for all php versions +# xmlrpc \ + xsl +RUN pecl install redis && docker-php-ext-enable redis + +# https://github.com/Imagick/imagick/issues/331 +# https://github.com/ihneo/php/pull/24/files +RUN set -eux; \ + if [[ $PHP_VERSION != 8.3.* ]]; then \ + pecl install imagick && docker-php-ext-enable imagick; \ + fi + +# deprecated from 5.*, so should be avoided +RUN set -eux; \ + if [[ $PHP_VERSION != 5.* && $PHP_VERSION != 7.0.* ]]; then \ + pecl install mongodb && docker-php-ext-enable mongodb; \ + fi + +# https://github.com/microsoft/mysqlnd_azure, Supports 7.2*, 7.3* and 7.4* +RUN set -eux; \ + if [[ $PHP_VERSION == 7.2.* || $PHP_VERSION == 7.3.* || $PHP_VERSION == 7.4.* ]]; then \ + echo "pecl/mysqlnd_azure requires PHP (version >= 7.2.*, version <= 7.99.99)"; \ + pecl install mysqlnd_azure \ + && docker-php-ext-enable mysqlnd_azure; \ + fi + +# Install the Microsoft SQL Server PDO driver on supported versions only. +# - https://docs.microsoft.com/en-us/sql/connect/php/installation-tutorial-linux-mac +# - https://docs.microsoft.com/en-us/sql/connect/odbc/linux-mac/installing-the-microsoft-odbc-driver-for-sql-server +# For php|8.0, latest stable version of pecl/sqlsrv, pecl/pdo_sqlsrv is 5.11.0 +RUN set -eux; \ + if [[ $PHP_VERSION == 8.0.* ]]; then \ + pecl install sqlsrv-5.11.0 pdo_sqlsrv-5.11.0 \ + && echo extension=pdo_sqlsrv.so >> $(php --ini | grep "Scan for additional .ini files" | sed -e "s|.*:\s*||")/30-pdo_sqlsrv.ini \ + && echo extension=sqlsrv.so >> $(php --ini | grep "Scan for additional .ini files" | sed -e "s|.*:\s*||")/20-sqlsrv.ini; \ + fi + +# Latest pecl/sqlsrv, pecl/pdo_sqlsrv requires PHP (version >= 8.1.0) +RUN set -eux; \ + if [[ $PHP_VERSION == 8.1.* || $PHP_VERSION == 8.2.* || $PHP_VERSION == 8.3.* ]]; then \ + pecl install sqlsrv pdo_sqlsrv \ + && echo extension=pdo_sqlsrv.so >> `php --ini | grep "Scan for additional .ini files" | sed -e "s|.*:\s*||"`/30-pdo_sqlsrv.ini \ + && echo extension=sqlsrv.so >> `php --ini | grep "Scan for additional .ini files" | sed -e "s|.*:\s*||"`/20-sqlsrv.ini; \ + fi + + +RUN { \ + echo 'opcache.memory_consumption=128'; \ + echo 'opcache.interned_strings_buffer=8'; \ + echo 'opcache.max_accelerated_files=4000'; \ + echo 'opcache.revalidate_freq=60'; \ + echo 'opcache.fast_shutdown=1'; \ + echo 'opcache.enable_cli=1'; \ + } > /usr/local/etc/php/conf.d/opcache-recommended.ini + +# NOTE: zend_extension=opcache is already configured via docker-php-ext-install, above +RUN { \ + echo 'error_log=/var/log/apache2/php-error.log'; \ + echo 'display_errors=Off'; \ + echo 'log_errors=On'; \ + echo 'display_startup_errors=Off'; \ + echo 'date.timezone=UTC'; \ + } > /usr/local/etc/php/conf.d/php.ini + +RUN set -x \ + && docker-php-source extract \ + && cd /usr/src/php/ext/odbc \ + && phpize \ + && sed -ri 's@^ *test +"\$PHP_.*" *= *"no" *&& *PHP_.*=yes *$@#&@g' configure \ + && chmod +x ./configure \ + && ./configure --with-unixODBC=shared,/usr \ + && docker-php-ext-install odbc \ + && rm -rf /var/lib/apt/lists/* + +ENV LANG="C.UTF-8" \ + LANGUAGE="C.UTF-8" \ + LC_ALL="C.UTF-8" + +## dockerfile + +# Bake Application Insights key from pipeline variable into final image +ARG AI_CONNECTION_STRING +ENV ORYX_AI_CONNECTION_STRING=${AI_CONNECTION_STRING} + +# Oryx++ Builder variables +ENV CNB_STACK_ID="oryx.stacks.skeleton" +LABEL io.buildpacks.stack.id="oryx.stacks.skeleton" + +COPY --from=startupCmdGen /opt/startupcmdgen/startupcmdgen /opt/startupcmdgen/startupcmdgen +RUN ln -s /opt/startupcmdgen/startupcmdgen /usr/local/bin/oryx + +ENV LANG="C.UTF-8" \ + LANGUAGE="C.UTF-8" \ + LC_ALL="C.UTF-8" \ No newline at end of file diff --git a/images/runtime/php/.gitignore b/images/runtime/php/.gitignore deleted file mode 100644 index ed4f95411..000000000 --- a/images/runtime/php/.gitignore +++ /dev/null @@ -1,2 +0,0 @@ -Dockerfile -base.Dockerfile \ No newline at end of file diff --git a/images/runtime/php/8.1/bullseye.Dockerfile b/images/runtime/php/8.1/bullseye.Dockerfile new file mode 100644 index 000000000..fae17a057 --- /dev/null +++ b/images/runtime/php/8.1/bullseye.Dockerfile @@ -0,0 +1,462 @@ +ARG BASE_IMAGE + +# Startup script generator +FROM mcr.microsoft.com/oss/go/microsoft/golang:1.20-bullseye as startupCmdGen + +# GOPATH is set to "/go" in the base image +WORKDIR /go/src +COPY src/startupscriptgenerator/src . +ARG GIT_COMMIT=unspecified +ARG BUILD_NUMBER=unspecified +ARG RELEASE_TAG_NAME=unspecified +ENV RELEASE_TAG_NAME=${RELEASE_TAG_NAME} +ENV GIT_COMMIT=${GIT_COMMIT} +ENV BUILD_NUMBER=${BUILD_NUMBER} +RUN chmod +x build.sh && ./build.sh php /opt/startupcmdgen/startupcmdgen + +#FROM oryxdevmcr.azurecr.io/private/oryx/php-run-base-bullseye:{BUILD_NUMBER} +FROM ${BASE_IMAGE} +ARG IMAGES_DIR=/tmp/oryx/images + +# Install the Microsoft SQL Server PDO driver on supported versions only. +# - https://docs.microsoft.com/en-us/sql/connect/php/installation-tutorial-linux-mac +# - https://docs.microsoft.com/en-us/sql/connect/odbc/linux-mac/installing-the-microsoft-odbc-driver-for-sql-server +RUN set -eux \ + && apt-get update \ + && apt-get install -y --no-install-recommends \ + gnupg2 \ + apt-transport-https \ + && curl https://packages.microsoft.com/keys/microsoft.asc | apt-key add - \ + && curl https://packages.microsoft.com/config/debian/11/prod.list > /etc/apt/sources.list.d/mssql-release.list \ + && apt-get update \ + && ACCEPT_EULA=Y apt-get install -y msodbcsql17 msodbcsql18=18.1.2.1-1 odbcinst1debian2=2.3.7 odbcinst=2.3.7 unixodbc=2.3.7 unixodbc-dev=2.3.7 + +ENV PHP_INI_DIR /usr/local/etc/php +RUN set -eux; \ + mkdir -p "$PHP_INI_DIR/conf.d"; \ +# allow running as an arbitrary user (https://github.com/docker-library/php/issues/743) + [ ! -d /var/www/html ]; \ + mkdir -p /var/www/html; \ + chown www-data:www-data /var/www/html; \ + chmod 777 /var/www/html +#### +ENV APACHE_CONFDIR /etc/apache2 +ENV APACHE_ENVVARS $APACHE_CONFDIR/envvars + +RUN set -eux; \ + apt-get update; \ + apt-get install -y --no-install-recommends apache2; \ + rm -rf /var/lib/apt/lists/*; \ + \ +# generically convert lines like +# export APACHE_RUN_USER=www-data +# into +# : ${APACHE_RUN_USER:=www-data} +# export APACHE_RUN_USER +# so that they can be overridden at runtime ("-e APACHE_RUN_USER=...") + sed -ri 's/^export ([^=]+)=(.*)$/: ${\1:=\2}\nexport \1/' "$APACHE_ENVVARS"; \ + \ +# setup directories and permissions + . "$APACHE_ENVVARS"; \ + for dir in \ + "$APACHE_LOCK_DIR" \ + "$APACHE_RUN_DIR" \ + "$APACHE_LOG_DIR" \ + ; do \ + rm -rvf "$dir"; \ + mkdir -p "$dir"; \ + chown "$APACHE_RUN_USER:$APACHE_RUN_GROUP" "$dir"; \ +# allow running as an arbitrary user (https://github.com/docker-library/php/issues/743) + chmod 777 "$dir"; \ + done; \ + \ +# delete the "index.html" that installing Apache drops in here + rm -rvf /var/www/html/*; \ + \ +# logs should go to stdout / stderr + ln -sfT /dev/stderr "$APACHE_LOG_DIR/error.log"; \ + ln -sfT /dev/stdout "$APACHE_LOG_DIR/access.log"; \ + ln -sfT /dev/stdout "$APACHE_LOG_DIR/other_vhosts_access.log"; \ + chown -R --no-dereference "$APACHE_RUN_USER:$APACHE_RUN_GROUP" "$APACHE_LOG_DIR" + +# Apache + PHP requires preforking Apache for best results +RUN a2dismod mpm_event && a2enmod mpm_prefork + +# PHP files should be handled by PHP, and should be preferred over any other file type +RUN { \ + echo ''; \ + echo '\tSetHandler application/x-httpd-php'; \ + echo ''; \ + echo; \ + echo 'DirectoryIndex disabled'; \ + echo 'DirectoryIndex index.php index.html'; \ + echo; \ + echo ''; \ + echo '\tOptions -Indexes'; \ + echo '\tAllowOverride All'; \ + echo ''; \ + } | tee "$APACHE_CONFDIR/conf-available/docker-php.conf" \ + && a2enconf docker-php + +ENV PHP_EXTRA_BUILD_DEPS apache2-dev +ENV PHP_EXTRA_CONFIGURE_ARGS --with-apxs2 --disable-cgi ac_cv_func_mmap=no +#### + +# Apply stack smash protection to functions using local buffers and alloca() +# Make PHP's main executable position-independent (improves ASLR security mechanism, and has no performance impact on x86_64) +# Enable optimization (-O2) +# Enable linker optimization (this sorts the hash buckets to improve cache locality, and is non-default) +# Adds GNU HASH segments to generated executables (this is used if present, and is much faster than sysv hash; in this configuration, sysv hash is also generated) +# https://github.com/docker-library/php/issues/272 +# -D_LARGEFILE_SOURCE and -D_FILE_OFFSET_BITS=64 (https://www.php.net/manual/en/intro.filesystem.php) +ENV PHP_CFLAGS="-fstack-protector-strong -fpic -fpie -O2 -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64" +ENV PHP_CPPFLAGS="$PHP_CFLAGS" +ENV PHP_LDFLAGS="-Wl,-O1 -Wl,--hash-style=both -pie" + +ENV GPG_KEYS 528995BFEDFBA7191D46839EF9BA0ADA31CBD89E 39B641343D8C104B2B146DC3F9C39DC0B9698544 F1F692238FBC1666E5A5CCD4199F9DFEF6FFBAFD + +ENV PHP_VERSION 8.1.27 +ENV PHP_URL="https://www.php.net/get/php-8.1.27.tar.xz/from/this/mirror" PHP_ASC_URL="https://www.php.net/get/php-8.1.27.tar.xz.asc/from/this/mirror" +ENV PHP_SHA256="479e65c3f05714d4aace1370e617d78e49e996ec7a7579a5be47535be61f0658" PHP_MD5="" + +RUN set -eux; \ + \ + savedAptMark="$(apt-mark showmanual)"; \ + apt-get update; \ + apt-get install -y --no-install-recommends gnupg dirmngr; \ + rm -rf /var/lib/apt/lists/*; \ + \ + mkdir -p /usr/src; \ + cd /usr/src; \ + \ + curl -fsSL -o php.tar.xz "$PHP_URL"; \ + \ + if [ -n "$PHP_SHA256" ]; then \ + echo "$PHP_SHA256 *php.tar.xz" | sha256sum -c -; \ + fi; \ + if [ -n "$PHP_MD5" ]; then \ + echo "$PHP_MD5 *php.tar.xz" | md5sum -c -; \ + fi; \ + \ + if [ -n "$PHP_ASC_URL" ]; then \ + curl -fsSL -o php.tar.xz.asc "$PHP_ASC_URL"; \ + export GNUPGHOME="$(mktemp -d)"; \ + ${IMAGES_DIR}/receiveGpgKeys.sh $GPG_KEYS; \ + gpg --batch --verify php.tar.xz.asc php.tar.xz; \ + gpgconf --kill all; \ + rm -rf "$GNUPGHOME"; \ + fi; \ + \ + apt-mark auto '.*' > /dev/null; \ + apt-mark manual $savedAptMark > /dev/null; \ + apt-get purge -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false + +COPY images/runtime/php/8.1/docker-php-source /usr/local/bin/ +RUN chmod +x /usr/local/bin/docker-php-source + +RUN set -eux; \ + \ + + savedAptMark="$(apt-mark showmanual)"; \ + apt-get update; \ + apt-get install -y --no-install-recommends \ + libargon2-dev \ + libcurl4-openssl-dev \ + libedit-dev \ + libonig-dev \ + libsodium-dev \ + libsqlite3-dev \ + libssl-dev \ + libxml2-dev \ + zlib1g-dev \ + ${PHP_EXTRA_BUILD_DEPS:-} \ + ; \ + rm -rf /var/lib/apt/lists/*; \ + \ + export \ + CFLAGS="$PHP_CFLAGS" \ + CPPFLAGS="$PHP_CPPFLAGS" \ + LDFLAGS="$PHP_LDFLAGS" \ + ; \ + docker-php-source extract; \ + cd /usr/src/php; \ + gnuArch="$(dpkg-architecture --query DEB_BUILD_GNU_TYPE)"; \ + debMultiarch="$(dpkg-architecture --query DEB_BUILD_MULTIARCH)"; \ +# https://bugs.php.net/bug.php?id=74125 + if [ ! -d /usr/include/curl ]; then \ + ln -sT "/usr/include/$debMultiarch/curl" /usr/local/include/curl; \ + fi; \ + ./configure \ + --build="$gnuArch" \ + --with-config-file-path="$PHP_INI_DIR" \ + --with-config-file-scan-dir="$PHP_INI_DIR/conf.d" \ + \ +# make sure invalid --configure-flags are fatal errors intead of just warnings + --enable-option-checking=fatal \ + \ +# https://github.com/docker-library/php/issues/439 + --with-mhash \ + \ +# --enable-ftp is included here because ftp_ssl_connect() needs ftp to be compiled statically (see https://github.com/docker-library/php/issues/236) + --enable-ftp \ +# --enable-mbstring is included here because otherwise there's no way to get pecl to use it properly (see https://github.com/docker-library/php/issues/195) + --enable-mbstring \ +# --enable-mysqlnd is included here because it's harder to compile after the fact than extensions are (since it's a plugin for several extensions, not an extension in itself) + --enable-mysqlnd \ +# https://wiki.php.net/rfc/argon2_password_hash (7.2+) + --with-password-argon2 \ +# https://wiki.php.net/rfc/libsodium + --with-sodium=shared \ +# always build against system sqlite3 (https://github.com/php/php-src/commit/6083a387a81dbbd66d6316a3a12a63f06d5f7109) + --with-pdo-sqlite=/usr \ + --with-sqlite3=/usr \ + \ + --with-curl \ + --with-libedit \ + --with-openssl \ + --with-zlib \ + \ +# in PHP 7.4+, the pecl/pear installers are officially deprecated (requiring an explicit "--with-pear") and will be removed in PHP 8+; see also https://github.com/docker-library/php/issues/846#issuecomment-505638494 + --with-pear \ + \ +# bundled pcre does not support JIT on s390x +# https://manpages.debian.org/stretch/libpcre3-dev/pcrejit.3.en.html#AVAILABILITY_OF_JIT_SUPPORT + $(test "$gnuArch" = 's390x-linux-gnu' && echo '--without-pcre-jit') \ + --with-libdir="lib/$debMultiarch" \ + \ + ${PHP_EXTRA_CONFIGURE_ARGS:-} \ + ; \ + make -j "$(nproc)"; \ + find -type f -name '*.a' -delete; \ + make install; \ + find /usr/local/bin /usr/local/sbin -type f -executable -exec strip --strip-all '{}' + || true; \ + make clean; \ + \ +# https://github.com/docker-library/php/issues/692 (copy default example "php.ini" files somewhere easily discoverable) + cp -v php.ini-* "$PHP_INI_DIR/"; \ + \ + cd /; \ + docker-php-source delete; \ + \ +# reset apt-mark's "manual" list so that "purge --auto-remove" will remove all build dependencies + apt-mark auto '.*' > /dev/null; \ + [ -z "$savedAptMark" ] || apt-mark manual $savedAptMark; \ + find /usr/local -type f -executable -exec ldd '{}' ';' \ + | awk '/=>/ { print $(NF-1) }' \ + | sort -u \ + | xargs -r dpkg-query --search \ + | cut -d: -f1 \ + | sort -u \ + | xargs -r apt-mark manual \ + ; \ + apt-get purge -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false; \ + \ +# update pecl channel definitions https://github.com/docker-library/php/issues/443 + pecl update-channels; \ + rm -rf /tmp/pear ~/.pearrc; \ +# smoke test + php --version + +COPY images/runtime/php/8.1/docker-php-ext-* images/runtime/php/8.1/docker-php-entrypoint /usr/local/bin/ +RUN chmod +x /usr/local/bin/docker-php-* + +# sodium was built as a shared module (so that it can be replaced later if so desired), so let's enable it too (https://github.com/docker-library/php/issues/598) +RUN docker-php-ext-enable sodium \ + && rm -rf /var/lib/apt/lists/* + +ENTRYPOINT ["docker-php-entrypoint"] +#### +# https://httpd.apache.org/docs/2.4/stopping.html#gracefulstop +STOPSIGNAL SIGWINCH + +COPY images/runtime/php/8.1/apache2-foreground /usr/local/bin/ +RUN chmod +x /usr/local/bin/apache2-foreground +WORKDIR /var/www/html + +EXPOSE 80 +CMD ["apache2-foreground"] +#### + +## base dockerfile +SHELL ["/bin/bash", "-c"] +ARG PHP_VERSION +ENV PHP_VERSION ${PHP_VERSION} + +RUN a2enmod rewrite expires include deflate remoteip headers + +ENV APACHE_RUN_USER www-data +# Edit the default DocumentRoot setting +ENV APACHE_DOCUMENT_ROOT /home/site/wwwroot +RUN sed -ri -e 's!/var/www/html!${APACHE_DOCUMENT_ROOT}!g' /etc/apache2/sites-available/*.conf +RUN sed -ri -e 's!/var/www/!${APACHE_DOCUMENT_ROOT}!g' /etc/apache2/apache2.conf /etc/apache2/conf-available/*.conf +# Edit the default port setting +ENV APACHE_PORT 8080 +RUN sed -ri -e 's!!!g' /etc/apache2/sites-available/*.conf +RUN sed -ri -e 's!!!g' /etc/apache2/sites-available/*.conf +RUN sed -ri -e 's!Listen 80!Listen ${APACHE_PORT}!g' /etc/apache2/ports.conf +# Edit Configuration to instruct Apache on how to process PHP files +RUN echo -e '\n SetHandler application/x-httpd-php\n' >> /etc/apache2/apache2.conf +# Disable Apache2 server signature +RUN echo -e 'ServerSignature Off' >> /etc/apache2/apache2.conf +RUN echo -e 'ServerTokens Prod' >> /etc/apache2/apache2.conf +RUN { \ + echo ''; \ + echo ' Order deny,allow'; \ + echo ' Deny from all'; \ + echo ''; \ +} >> /etc/apache2/apache2.conf + +# Install common PHP extensions +# TEMPORARY: Holding odbc related packages from upgrading. +RUN apt-mark hold msodbcsql18 odbcinst1debian2 odbcinst unixodbc unixodbc-dev \ + && apt-get update \ + && apt-get upgrade -y \ + && ln -s /usr/lib/x86_64-linux-gnu/libldap.so /usr/lib/libldap.so \ + && ln -s /usr/lib/x86_64-linux-gnu/liblber.so /usr/lib/liblber.so \ + && ln -s /usr/include/x86_64-linux-gnu/gmp.h /usr/include/gmp.h + +RUN set -eux; \ + if [[ $PHP_VERSION == 7.4.* || $PHP_VERSION == 8.0.* || $PHP_VERSION == 8.1.* || $PHP_VERSION == 8.2.* || $PHP_VERSION == 8.3.* ]]; then \ + apt-get update \ + && apt-get upgrade -y \ + && apt-get install -y --no-install-recommends apache2-dev \ + && docker-php-ext-configure gd --with-freetype --with-jpeg \ + && PHP_OPENSSL=yes docker-php-ext-configure imap --with-kerberos --with-imap-ssl ; \ + else \ + docker-php-ext-configure gd --with-png-dir=/usr --with-jpeg-dir=/usr \ + && docker-php-ext-configure imap --with-kerberos --with-imap-ssl ; \ + fi + +RUN docker-php-ext-configure pdo_odbc --with-pdo-odbc=unixODBC,/usr \ + && docker-php-ext-install gd \ + mysqli \ + opcache \ + pdo \ + pdo_mysql \ + pdo_pgsql \ + pgsql \ + ldap \ + intl \ + gmp \ + zip \ + bcmath \ + mbstring \ + pcntl \ + calendar \ + exif \ + gettext \ + imap \ + tidy \ + shmop \ + soap \ + sockets \ + sysvmsg \ + sysvsem \ + sysvshm \ + pdo_odbc \ +# deprecated from 7.4, so should be avoided in general template for all php versions +# wddx \ +# xmlrpc \ + xsl + +RUN set -eux; \ + if [[ $PHP_VERSION != 5.* ]]; then \ + pecl install redis && docker-php-ext-enable redis; \ + fi + +# https://github.com/Imagick/imagick/issues/331 +# https://github.com/ihneo/php/pull/24/files +RUN set -eux; \ + if [[ $PHP_VERSION != 8.3.* ]]; then \ + pecl install imagick && docker-php-ext-enable imagick; \ + fi + +# deprecated from 5.*, so should be avoided +RUN set -eux; \ + if [[ $PHP_VERSION != 5.* && $PHP_VERSION != 7.0.* ]]; then \ + echo "pecl/mongodb requires PHP (version >= 7.1.0, version <= 7.99.99)"; \ + pecl install mongodb && docker-php-ext-enable mongodb; \ + fi + +# https://github.com/microsoft/mysqlnd_azure, Supports 7.2*, 7.3* and 7.4* +RUN set -eux; \ + if [[ $PHP_VERSION == 7.2.* || $PHP_VERSION == 7.3.* || $PHP_VERSION == 7.4.* ]]; then \ + echo "pecl/mysqlnd_azure requires PHP (version >= 7.2.*, version <= 7.99.99)"; \ + pecl install mysqlnd_azure \ + && docker-php-ext-enable mysqlnd_azure; \ + fi + +# Install the Microsoft SQL Server PDO driver on supported versions only. +# - https://docs.microsoft.com/en-us/sql/connect/php/installation-tutorial-linux-mac +# - https://docs.microsoft.com/en-us/sql/connect/odbc/linux-mac/installing-the-microsoft-odbc-driver-for-sql-server +# For php|8.0, latest stable version of pecl/sqlsrv, pecl/pdo_sqlsrv is 5.11.0 +RUN set -eux; \ + if [[ $PHP_VERSION == 8.0.* ]]; then \ + pecl install sqlsrv-5.11.0 pdo_sqlsrv-5.11.0 \ + && echo extension=pdo_sqlsrv.so >> $(php --ini | grep "Scan for additional .ini files" | sed -e "s|.*:\s*||")/30-pdo_sqlsrv.ini \ + && echo extension=sqlsrv.so >> $(php --ini | grep "Scan for additional .ini files" | sed -e "s|.*:\s*||")/20-sqlsrv.ini; \ + fi + +# Latest pecl/sqlsrv, pecl/pdo_sqlsrv requires PHP (version >= 8.1.0) +RUN set -eux; \ + if [[ $PHP_VERSION == 8.1.* || $PHP_VERSION == 8.2.* || $PHP_VERSION == 8.3.* ]]; then \ + pecl install sqlsrv pdo_sqlsrv \ + && echo extension=pdo_sqlsrv.so >> `php --ini | grep "Scan for additional .ini files" | sed -e "s|.*:\s*||"`/30-pdo_sqlsrv.ini \ + && echo extension=sqlsrv.so >> `php --ini | grep "Scan for additional .ini files" | sed -e "s|.*:\s*||"`/20-sqlsrv.ini; \ + fi + +RUN { \ + echo 'opcache.memory_consumption=128'; \ + echo 'opcache.interned_strings_buffer=8'; \ + echo 'opcache.max_accelerated_files=4000'; \ + echo 'opcache.revalidate_freq=60'; \ + echo 'opcache.fast_shutdown=1'; \ + echo 'opcache.enable_cli=1'; \ + } > /usr/local/etc/php/conf.d/opcache-recommended.ini + +# NOTE: zend_extension=opcache is already configured via docker-php-ext-install, above +RUN { \ + echo 'error_log=/var/log/apache2/php-error.log'; \ + echo 'display_errors=Off'; \ + echo 'log_errors=On'; \ + echo 'display_startup_errors=Off'; \ + echo 'date.timezone=UTC'; \ + } > /usr/local/etc/php/conf.d/php.ini + +RUN set -x \ + && docker-php-source extract \ + && cd /usr/src/php/ext/odbc \ + && phpize \ + && sed -ri 's@^ *test +"\$PHP_.*" *= *"no" *&& *PHP_.*=yes *$@#&@g' configure \ + && chmod +x ./configure \ + && ./configure --with-unixODBC=shared,/usr \ + && docker-php-ext-install odbc \ + && rm -rf /var/lib/apt/lists/* + +RUN rm -rf /tmp/oryx + +ENV LANG="C.UTF-8" \ + LANGUAGE="C.UTF-8" \ + LC_ALL="C.UTF-8" + +## dockerfile + +# Bake Application Insights key from pipeline variable into final image +ARG AI_CONNECTION_STRING +ENV ORYX_AI_CONNECTION_STRING=${AI_CONNECTION_STRING} +#Bake in client certificate path into image to avoid downloading it +ENV PATH_CA_CERTIFICATE="/etc/ssl/certs/ca-certificate.crt" + +# Oryx++ Builder variables +ENV CNB_STACK_ID="oryx.stacks.skeleton" +LABEL io.buildpacks.stack.id="oryx.stacks.skeleton" + +COPY --from=startupCmdGen /opt/startupcmdgen/startupcmdgen /opt/startupcmdgen/startupcmdgen +RUN ln -s /opt/startupcmdgen/startupcmdgen /usr/local/bin/oryx \ + && rm -rf /tmp/oryx \ + # Temporarily making sure apache2-foreground has permission + && chmod +x /usr/local/bin/apache2-foreground + +ENV LANG="C.UTF-8" \ + LANGUAGE="C.UTF-8" \ + LC_ALL="C.UTF-8" \ No newline at end of file diff --git a/images/runtime/php/8.1/buster.Dockerfile b/images/runtime/php/8.1/buster.Dockerfile new file mode 100644 index 000000000..7859bc280 --- /dev/null +++ b/images/runtime/php/8.1/buster.Dockerfile @@ -0,0 +1,464 @@ +ARG BASE_IMAGE + +# Startup script generator +FROM mcr.microsoft.com/oss/go/microsoft/golang:1.20-buster as startupCmdGen + +# GOPATH is set to "/go" in the base image +WORKDIR /go/src +COPY src/startupscriptgenerator/src . +ARG GIT_COMMIT=unspecified +ARG BUILD_NUMBER=unspecified +ARG RELEASE_TAG_NAME=unspecified +ENV RELEASE_TAG_NAME=${RELEASE_TAG_NAME} +ENV GIT_COMMIT=${GIT_COMMIT} +ENV BUILD_NUMBER=${BUILD_NUMBER} +RUN chmod +x build.sh && ./build.sh php /opt/startupcmdgen/startupcmdgen + +#FROM oryxdevmcr.azurecr.io/private/oryx/php-run-base-buster:${BUILD_NUMBER} +FROM ${BASE_IMAGE} +ARG IMAGES_DIR=/tmp/oryx/images + +# Install the Microsoft SQL Server PDO driver on supported versions only. +# - https://docs.microsoft.com/en-us/sql/connect/php/installation-tutorial-linux-mac +# - https://docs.microsoft.com/en-us/sql/connect/odbc/linux-mac/installing-the-microsoft-odbc-driver-for-sql-server +RUN set -eux \ + && apt-get update \ + && apt-get install -y --no-install-recommends \ + gnupg2 \ + apt-transport-https \ + && curl https://packages.microsoft.com/keys/microsoft.asc | apt-key add - \ + && curl https://packages.microsoft.com/config/debian/10/prod.list > /etc/apt/sources.list.d/mssql-release.list \ + && apt-get update \ + && ACCEPT_EULA=Y apt-get install -y msodbcsql17 msodbcsql18=18.1.2.1-1 odbcinst1debian2=2.3.7 odbcinst=2.3.7 unixodbc=2.3.7 unixodbc-dev=2.3.7 + +ENV PHP_INI_DIR /usr/local/etc/php +RUN set -eux; \ + mkdir -p "$PHP_INI_DIR/conf.d"; \ +# allow running as an arbitrary user (https://github.com/docker-library/php/issues/743) + [ ! -d /var/www/html ]; \ + mkdir -p /var/www/html; \ + chown www-data:www-data /var/www/html; \ + chmod 777 /var/www/html +#### +ENV APACHE_CONFDIR /etc/apache2 +ENV APACHE_ENVVARS $APACHE_CONFDIR/envvars + +RUN set -eux; \ + apt-get update; \ + apt-get install -y --no-install-recommends apache2; \ + rm -rf /var/lib/apt/lists/*; \ + \ +# generically convert lines like +# export APACHE_RUN_USER=www-data +# into +# : ${APACHE_RUN_USER:=www-data} +# export APACHE_RUN_USER +# so that they can be overridden at runtime ("-e APACHE_RUN_USER=...") + sed -ri 's/^export ([^=]+)=(.*)$/: ${\1:=\2}\nexport \1/' "$APACHE_ENVVARS"; \ + \ +# setup directories and permissions + . "$APACHE_ENVVARS"; \ + for dir in \ + "$APACHE_LOCK_DIR" \ + "$APACHE_RUN_DIR" \ + "$APACHE_LOG_DIR" \ + ; do \ + rm -rvf "$dir"; \ + mkdir -p "$dir"; \ + chown "$APACHE_RUN_USER:$APACHE_RUN_GROUP" "$dir"; \ +# allow running as an arbitrary user (https://github.com/docker-library/php/issues/743) + chmod 777 "$dir"; \ + done; \ + \ +# delete the "index.html" that installing Apache drops in here + rm -rvf /var/www/html/*; \ + \ +# logs should go to stdout / stderr + ln -sfT /dev/stderr "$APACHE_LOG_DIR/error.log"; \ + ln -sfT /dev/stdout "$APACHE_LOG_DIR/access.log"; \ + ln -sfT /dev/stdout "$APACHE_LOG_DIR/other_vhosts_access.log"; \ + chown -R --no-dereference "$APACHE_RUN_USER:$APACHE_RUN_GROUP" "$APACHE_LOG_DIR" + +# Apache + PHP requires preforking Apache for best results +RUN a2dismod mpm_event && a2enmod mpm_prefork + +# PHP files should be handled by PHP, and should be preferred over any other file type +RUN { \ + echo ''; \ + echo '\tSetHandler application/x-httpd-php'; \ + echo ''; \ + echo; \ + echo 'DirectoryIndex disabled'; \ + echo 'DirectoryIndex index.php index.html'; \ + echo; \ + echo ''; \ + echo '\tOptions -Indexes'; \ + echo '\tAllowOverride All'; \ + echo ''; \ + } | tee "$APACHE_CONFDIR/conf-available/docker-php.conf" \ + && a2enconf docker-php + +ENV PHP_EXTRA_BUILD_DEPS apache2-dev +ENV PHP_EXTRA_CONFIGURE_ARGS --with-apxs2 --disable-cgi ac_cv_func_mmap=no +#### + +# Apply stack smash protection to functions using local buffers and alloca() +# Make PHP's main executable position-independent (improves ASLR security mechanism, and has no performance impact on x86_64) +# Enable optimization (-O2) +# Enable linker optimization (this sorts the hash buckets to improve cache locality, and is non-default) +# Adds GNU HASH segments to generated executables (this is used if present, and is much faster than sysv hash; in this configuration, sysv hash is also generated) +# https://github.com/docker-library/php/issues/272 +# -D_LARGEFILE_SOURCE and -D_FILE_OFFSET_BITS=64 (https://www.php.net/manual/en/intro.filesystem.php) +ENV PHP_CFLAGS="-fstack-protector-strong -fpic -fpie -O2 -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64" +ENV PHP_CPPFLAGS="$PHP_CFLAGS" +ENV PHP_LDFLAGS="-Wl,-O1 -Wl,--hash-style=both -pie" + +ENV GPG_KEYS 528995BFEDFBA7191D46839EF9BA0ADA31CBD89E 39B641343D8C104B2B146DC3F9C39DC0B9698544 F1F692238FBC1666E5A5CCD4199F9DFEF6FFBAFD + +ENV PHP_VERSION 8.1.27 +ENV PHP_URL="https://www.php.net/get/php-8.1.27.tar.xz/from/this/mirror" PHP_ASC_URL="https://www.php.net/get/php-8.1.27.tar.xz.asc/from/this/mirror" +ENV PHP_SHA256="479e65c3f05714d4aace1370e617d78e49e996ec7a7579a5be47535be61f0658" PHP_MD5="" + +RUN set -eux; \ + \ + savedAptMark="$(apt-mark showmanual)"; \ + apt-get update; \ + apt-get install -y --no-install-recommends gnupg dirmngr; \ + rm -rf /var/lib/apt/lists/*; \ + \ + mkdir -p /usr/src; \ + cd /usr/src; \ + \ + curl -fsSL -o php.tar.xz "$PHP_URL"; \ + \ + if [ -n "$PHP_SHA256" ]; then \ + echo "$PHP_SHA256 *php.tar.xz" | sha256sum -c -; \ + fi; \ + if [ -n "$PHP_MD5" ]; then \ + echo "$PHP_MD5 *php.tar.xz" | md5sum -c -; \ + fi; \ + \ + if [ -n "$PHP_ASC_URL" ]; then \ + curl -fsSL -o php.tar.xz.asc "$PHP_ASC_URL"; \ + export GNUPGHOME="$(mktemp -d)"; \ + ${IMAGES_DIR}/receiveGpgKeys.sh $GPG_KEYS; \ + gpg --batch --verify php.tar.xz.asc php.tar.xz; \ + gpgconf --kill all; \ + rm -rf "$GNUPGHOME"; \ + fi; \ + \ + apt-mark auto '.*' > /dev/null; \ + apt-mark manual $savedAptMark > /dev/null; \ + apt-get purge -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false + +COPY images/runtime/php/8.1/docker-php-source /usr/local/bin/ + +RUN chmod +x /usr/local/bin/docker-php-source + +RUN set -eux; \ + \ + + savedAptMark="$(apt-mark showmanual)"; \ + apt-get update; \ + apt-get install -y --no-install-recommends \ + libargon2-dev \ + libcurl4-openssl-dev \ + libedit-dev \ + libonig-dev \ + libsodium-dev \ + libsqlite3-dev \ + libssl-dev \ + libxml2-dev \ + zlib1g-dev \ + ${PHP_EXTRA_BUILD_DEPS:-} \ + ; \ + rm -rf /var/lib/apt/lists/*; \ + \ + export \ + CFLAGS="$PHP_CFLAGS" \ + CPPFLAGS="$PHP_CPPFLAGS" \ + LDFLAGS="$PHP_LDFLAGS" \ + ; \ + docker-php-source extract; \ + cd /usr/src/php; \ + gnuArch="$(dpkg-architecture --query DEB_BUILD_GNU_TYPE)"; \ + debMultiarch="$(dpkg-architecture --query DEB_BUILD_MULTIARCH)"; \ +# https://bugs.php.net/bug.php?id=74125 + if [ ! -d /usr/include/curl ]; then \ + ln -sT "/usr/include/$debMultiarch/curl" /usr/local/include/curl; \ + fi; \ + ./configure \ + --build="$gnuArch" \ + --with-config-file-path="$PHP_INI_DIR" \ + --with-config-file-scan-dir="$PHP_INI_DIR/conf.d" \ + \ +# make sure invalid --configure-flags are fatal errors intead of just warnings + --enable-option-checking=fatal \ + \ +# https://github.com/docker-library/php/issues/439 + --with-mhash \ + \ +# --enable-ftp is included here because ftp_ssl_connect() needs ftp to be compiled statically (see https://github.com/docker-library/php/issues/236) + --enable-ftp \ +# --enable-mbstring is included here because otherwise there's no way to get pecl to use it properly (see https://github.com/docker-library/php/issues/195) + --enable-mbstring \ +# --enable-mysqlnd is included here because it's harder to compile after the fact than extensions are (since it's a plugin for several extensions, not an extension in itself) + --enable-mysqlnd \ +# https://wiki.php.net/rfc/argon2_password_hash (7.2+) + --with-password-argon2 \ +# https://wiki.php.net/rfc/libsodium + --with-sodium=shared \ +# always build against system sqlite3 (https://github.com/php/php-src/commit/6083a387a81dbbd66d6316a3a12a63f06d5f7109) + --with-pdo-sqlite=/usr \ + --with-sqlite3=/usr \ + \ + --with-curl \ + --with-libedit \ + --with-openssl \ + --with-zlib \ + \ +# in PHP 7.4+, the pecl/pear installers are officially deprecated (requiring an explicit "--with-pear") and will be removed in PHP 8+; see also https://github.com/docker-library/php/issues/846#issuecomment-505638494 + --with-pear \ + \ +# bundled pcre does not support JIT on s390x +# https://manpages.debian.org/stretch/libpcre3-dev/pcrejit.3.en.html#AVAILABILITY_OF_JIT_SUPPORT + $(test "$gnuArch" = 's390x-linux-gnu' && echo '--without-pcre-jit') \ + --with-libdir="lib/$debMultiarch" \ + \ + ${PHP_EXTRA_CONFIGURE_ARGS:-} \ + ; \ + make -j "$(nproc)"; \ + find -type f -name '*.a' -delete; \ + make install; \ + find /usr/local/bin /usr/local/sbin -type f -executable -exec strip --strip-all '{}' + || true; \ + make clean; \ + \ +# https://github.com/docker-library/php/issues/692 (copy default example "php.ini" files somewhere easily discoverable) + cp -v php.ini-* "$PHP_INI_DIR/"; \ + \ + cd /; \ + docker-php-source delete; \ + \ +# reset apt-mark's "manual" list so that "purge --auto-remove" will remove all build dependencies + apt-mark auto '.*' > /dev/null; \ + [ -z "$savedAptMark" ] || apt-mark manual $savedAptMark; \ + find /usr/local -type f -executable -exec ldd '{}' ';' \ + | awk '/=>/ { print $(NF-1) }' \ + | sort -u \ + | xargs -r dpkg-query --search \ + | cut -d: -f1 \ + | sort -u \ + | xargs -r apt-mark manual \ + ; \ + apt-get purge -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false; \ + \ +# update pecl channel definitions https://github.com/docker-library/php/issues/443 + pecl update-channels; \ + rm -rf /tmp/pear ~/.pearrc; \ +# smoke test + php --version + +COPY images/runtime/php/8.1/docker-php-ext-* images/runtime/php/8.1/docker-php-entrypoint /usr/local/bin/ +RUN chmod +x /usr/local/bin/docker-php-* + +# sodium was built as a shared module (so that it can be replaced later if so desired), so let's enable it too (https://github.com/docker-library/php/issues/598) +RUN docker-php-ext-enable sodium \ + && rm -rf /var/lib/apt/lists/* + +ENTRYPOINT ["docker-php-entrypoint"] +#### +# https://httpd.apache.org/docs/2.4/stopping.html#gracefulstop +STOPSIGNAL SIGWINCH + +COPY images/runtime/php/8.1/apache2-foreground /usr/local/bin/ +RUN chmod +x /usr/local/bin/apache2-foreground +WORKDIR /var/www/html + +EXPOSE 80 +CMD ["apache2-foreground"] +#### + + +## base dockerfile +SHELL ["/bin/bash", "-c"] +ARG PHP_VERSION +ENV PHP_VERSION ${PHP_VERSION} + +RUN a2enmod rewrite expires include deflate remoteip headers + +ENV APACHE_RUN_USER www-data +# Edit the default DocumentRoot setting +ENV APACHE_DOCUMENT_ROOT /home/site/wwwroot +RUN sed -ri -e 's!/var/www/html!${APACHE_DOCUMENT_ROOT}!g' /etc/apache2/sites-available/*.conf +RUN sed -ri -e 's!/var/www/!${APACHE_DOCUMENT_ROOT}!g' /etc/apache2/apache2.conf /etc/apache2/conf-available/*.conf +# Edit the default port setting +ENV APACHE_PORT 8080 +RUN sed -ri -e 's!!!g' /etc/apache2/sites-available/*.conf +RUN sed -ri -e 's!!!g' /etc/apache2/sites-available/*.conf +RUN sed -ri -e 's!Listen 80!Listen ${APACHE_PORT}!g' /etc/apache2/ports.conf +# Edit Configuration to instruct Apache on how to process PHP files +RUN echo -e '\n SetHandler application/x-httpd-php\n' >> /etc/apache2/apache2.conf +# Disable Apache2 server signature +RUN echo -e 'ServerSignature Off' >> /etc/apache2/apache2.conf +RUN echo -e 'ServerTokens Prod' >> /etc/apache2/apache2.conf +RUN { \ + echo ''; \ + echo ' Order deny,allow'; \ + echo ' Deny from all'; \ + echo ''; \ +} >> /etc/apache2/apache2.conf + +# Install common PHP extensions +# TEMPORARY: Holding odbc related packages from upgrading. +RUN apt-mark hold msodbcsql18 odbcinst1debian2 odbcinst unixodbc unixodbc-dev \ + && apt-get update \ + && apt-get upgrade -y \ + && ln -s /usr/lib/x86_64-linux-gnu/libldap.so /usr/lib/libldap.so \ + && ln -s /usr/lib/x86_64-linux-gnu/liblber.so /usr/lib/liblber.so \ + && ln -s /usr/include/x86_64-linux-gnu/gmp.h /usr/include/gmp.h + +RUN set -eux; \ + if [[ $PHP_VERSION == 7.4.* || $PHP_VERSION == 8.0.* || $PHP_VERSION == 8.1.* || $PHP_VERSION == 8.2.* || $PHP_VERSION == 8.3.* ]]; then \ + apt-get update \ + && apt-get upgrade -y \ + && apt-get install -y --no-install-recommends apache2-dev \ + && docker-php-ext-configure gd --with-freetype --with-jpeg \ + && PHP_OPENSSL=yes docker-php-ext-configure imap --with-kerberos --with-imap-ssl ; \ + else \ + docker-php-ext-configure gd --with-png-dir=/usr --with-jpeg-dir=/usr \ + && docker-php-ext-configure imap --with-kerberos --with-imap-ssl ; \ + fi + +RUN docker-php-ext-configure pdo_odbc --with-pdo-odbc=unixODBC,/usr \ + && docker-php-ext-install gd \ + mysqli \ + opcache \ + pdo \ + pdo_mysql \ + pdo_pgsql \ + pgsql \ + ldap \ + intl \ + gmp \ + zip \ + bcmath \ + mbstring \ + pcntl \ + calendar \ + exif \ + gettext \ + imap \ + tidy \ + shmop \ + soap \ + sockets \ + sysvmsg \ + sysvsem \ + sysvshm \ + pdo_odbc \ +# deprecated from 7.4, so should be avoided in general template for all php versions +# wddx \ +# xmlrpc \ + xsl + +RUN set -eux; \ + if [[ $PHP_VERSION != 5.* ]]; then \ + pecl install redis && docker-php-ext-enable redis; \ + fi + +# https://github.com/Imagick/imagick/issues/331 +# https://github.com/ihneo/php/pull/24/files +RUN set -eux; \ + if [[ $PHP_VERSION != 8.3.* ]]; then \ + pecl install imagick && docker-php-ext-enable imagick; \ + fi + +# deprecated from 5.*, so should be avoided +RUN set -eux; \ + if [[ $PHP_VERSION != 5.* && $PHP_VERSION != 7.0.* ]]; then \ + echo "pecl/mongodb requires PHP (version >= 7.1.0, version <= 7.99.99)"; \ + pecl install mongodb && docker-php-ext-enable mongodb; \ + fi + +# https://github.com/microsoft/mysqlnd_azure, Supports 7.2*, 7.3* and 7.4* +RUN set -eux; \ + if [[ $PHP_VERSION == 7.2.* || $PHP_VERSION == 7.3.* || $PHP_VERSION == 7.4.* ]]; then \ + echo "pecl/mysqlnd_azure requires PHP (version >= 7.2.*, version <= 7.99.99)"; \ + pecl install mysqlnd_azure \ + && docker-php-ext-enable mysqlnd_azure; \ + fi + +# Install the Microsoft SQL Server PDO driver on supported versions only. +# - https://docs.microsoft.com/en-us/sql/connect/php/installation-tutorial-linux-mac +# - https://docs.microsoft.com/en-us/sql/connect/odbc/linux-mac/installing-the-microsoft-odbc-driver-for-sql-server +# For php|8.0, latest stable version of pecl/sqlsrv, pecl/pdo_sqlsrv is 5.11.0 +RUN set -eux; \ + if [[ $PHP_VERSION == 8.0.* ]]; then \ + pecl install sqlsrv-5.11.0 pdo_sqlsrv-5.11.0 \ + && echo extension=pdo_sqlsrv.so >> $(php --ini | grep "Scan for additional .ini files" | sed -e "s|.*:\s*||")/30-pdo_sqlsrv.ini \ + && echo extension=sqlsrv.so >> $(php --ini | grep "Scan for additional .ini files" | sed -e "s|.*:\s*||")/20-sqlsrv.ini; \ + fi + +# Latest pecl/sqlsrv, pecl/pdo_sqlsrv requires PHP (version >= 8.1.0) +RUN set -eux; \ + if [[ $PHP_VERSION == 8.1.* || $PHP_VERSION == 8.2.* || $PHP_VERSION == 8.3.* ]]; then \ + pecl install sqlsrv pdo_sqlsrv \ + && echo extension=pdo_sqlsrv.so >> `php --ini | grep "Scan for additional .ini files" | sed -e "s|.*:\s*||"`/30-pdo_sqlsrv.ini \ + && echo extension=sqlsrv.so >> `php --ini | grep "Scan for additional .ini files" | sed -e "s|.*:\s*||"`/20-sqlsrv.ini; \ + fi + +RUN { \ + echo 'opcache.memory_consumption=128'; \ + echo 'opcache.interned_strings_buffer=8'; \ + echo 'opcache.max_accelerated_files=4000'; \ + echo 'opcache.revalidate_freq=60'; \ + echo 'opcache.fast_shutdown=1'; \ + echo 'opcache.enable_cli=1'; \ + } > /usr/local/etc/php/conf.d/opcache-recommended.ini + +# NOTE: zend_extension=opcache is already configured via docker-php-ext-install, above +RUN { \ + echo 'error_log=/var/log/apache2/php-error.log'; \ + echo 'display_errors=Off'; \ + echo 'log_errors=On'; \ + echo 'display_startup_errors=Off'; \ + echo 'date.timezone=UTC'; \ + } > /usr/local/etc/php/conf.d/php.ini + +RUN set -x \ + && docker-php-source extract \ + && cd /usr/src/php/ext/odbc \ + && phpize \ + && sed -ri 's@^ *test +"\$PHP_.*" *= *"no" *&& *PHP_.*=yes *$@#&@g' configure \ + && chmod +x ./configure \ + && ./configure --with-unixODBC=shared,/usr \ + && docker-php-ext-install odbc \ + && rm -rf /var/lib/apt/lists/* + +RUN rm -rf /tmp/oryx + +ENV LANG="C.UTF-8" \ + LANGUAGE="C.UTF-8" \ + LC_ALL="C.UTF-8" + +## dockerfile + +# Bake Application Insights key from pipeline variable into final image +ARG AI_CONNECTION_STRING +ENV ORYX_AI_CONNECTION_STRING=${AI_CONNECTION_STRING} +#Bake in client certificate path into image to avoid downloading it +ENV PATH_CA_CERTIFICATE="/etc/ssl/certs/ca-certificate.crt" + +# Oryx++ Builder variables +ENV CNB_STACK_ID="oryx.stacks.skeleton" +LABEL io.buildpacks.stack.id="oryx.stacks.skeleton" + +COPY --from=startupCmdGen /opt/startupcmdgen/startupcmdgen /opt/startupcmdgen/startupcmdgen +RUN ln -s /opt/startupcmdgen/startupcmdgen /usr/local/bin/oryx \ + && rm -rf /tmp/oryx \ + # Temporarily making sure apache2-foreground has permission + && chmod +x /usr/local/bin/apache2-foreground + +ENV LANG="C.UTF-8" \ + LANGUAGE="C.UTF-8" \ + LC_ALL="C.UTF-8" \ No newline at end of file diff --git a/images/runtime/php/8.2/bullseye.Dockerfile b/images/runtime/php/8.2/bullseye.Dockerfile new file mode 100644 index 000000000..e0760376b --- /dev/null +++ b/images/runtime/php/8.2/bullseye.Dockerfile @@ -0,0 +1,461 @@ +ARG BASE_IMAGE + +# Startup script generator +FROM mcr.microsoft.com/oss/go/microsoft/golang:1.20-bullseye as startupCmdGen + +# GOPATH is set to "/go" in the base image +WORKDIR /go/src +COPY src/startupscriptgenerator/src . +ARG GIT_COMMIT=unspecified +ARG BUILD_NUMBER=unspecified +ARG RELEASE_TAG_NAME=unspecified +ENV RELEASE_TAG_NAME=${RELEASE_TAG_NAME} +ENV GIT_COMMIT=${GIT_COMMIT} +ENV BUILD_NUMBER=${BUILD_NUMBER} +RUN chmod +x build.sh && ./build.sh php /opt/startupcmdgen/startupcmdgen + +# From https://github.com/docker-library/php.git +FROM ${BASE_IMAGE} +ARG IMAGES_DIR=/tmp/oryx/images + +# Install the Microsoft SQL Server PDO driver on supported versions only. +# - https://docs.microsoft.com/en-us/sql/connect/php/installation-tutorial-linux-mac +# - https://docs.microsoft.com/en-us/sql/connect/odbc/linux-mac/installing-the-microsoft-odbc-driver-for-sql-server +RUN set -eux \ + && apt-get update \ + && apt-get install -y --no-install-recommends \ + gnupg2 \ + apt-transport-https \ + && curl https://packages.microsoft.com/keys/microsoft.asc | apt-key add - \ + && curl https://packages.microsoft.com/config/debian/11/prod.list > /etc/apt/sources.list.d/mssql-release.list \ + && apt-get update \ + && ACCEPT_EULA=Y apt-get install -y msodbcsql17 msodbcsql18=18.1.2.1-1 odbcinst1debian2=2.3.7 odbcinst=2.3.7 unixodbc=2.3.7 unixodbc-dev=2.3.7 + +ENV PHP_INI_DIR /usr/local/etc/php +RUN set -eux; \ + mkdir -p "$PHP_INI_DIR/conf.d"; \ +# allow running as an arbitrary user (https://github.com/docker-library/php/issues/743) + [ ! -d /var/www/html ]; \ + mkdir -p /var/www/html; \ + chown www-data:www-data /var/www/html; \ + chmod 777 /var/www/html +#### +ENV APACHE_CONFDIR /etc/apache2 +ENV APACHE_ENVVARS $APACHE_CONFDIR/envvars + +RUN set -eux; \ + apt-get update; \ + apt-get install -y --no-install-recommends apache2; \ + rm -rf /var/lib/apt/lists/*; \ + \ +# generically convert lines like +# export APACHE_RUN_USER=www-data +# into +# : ${APACHE_RUN_USER:=www-data} +# export APACHE_RUN_USER +# so that they can be overridden at runtime ("-e APACHE_RUN_USER=...") + sed -ri 's/^export ([^=]+)=(.*)$/: ${\1:=\2}\nexport \1/' "$APACHE_ENVVARS"; \ + \ +# setup directories and permissions + . "$APACHE_ENVVARS"; \ + for dir in \ + "$APACHE_LOCK_DIR" \ + "$APACHE_RUN_DIR" \ + "$APACHE_LOG_DIR" \ + ; do \ + rm -rvf "$dir"; \ + mkdir -p "$dir"; \ + chown "$APACHE_RUN_USER:$APACHE_RUN_GROUP" "$dir"; \ +# allow running as an arbitrary user (https://github.com/docker-library/php/issues/743) + chmod 777 "$dir"; \ + done; \ + \ +# delete the "index.html" that installing Apache drops in here + rm -rvf /var/www/html/*; \ + \ +# logs should go to stdout / stderr + ln -sfT /dev/stderr "$APACHE_LOG_DIR/error.log"; \ + ln -sfT /dev/stdout "$APACHE_LOG_DIR/access.log"; \ + ln -sfT /dev/stdout "$APACHE_LOG_DIR/other_vhosts_access.log"; \ + chown -R --no-dereference "$APACHE_RUN_USER:$APACHE_RUN_GROUP" "$APACHE_LOG_DIR" + +# Apache + PHP requires preforking Apache for best results +RUN a2dismod mpm_event && a2enmod mpm_prefork + +# PHP files should be handled by PHP, and should be preferred over any other file type +RUN { \ + echo ''; \ + echo '\tSetHandler application/x-httpd-php'; \ + echo ''; \ + echo; \ + echo 'DirectoryIndex disabled'; \ + echo 'DirectoryIndex index.php index.html'; \ + echo; \ + echo ''; \ + echo '\tOptions -Indexes'; \ + echo '\tAllowOverride All'; \ + echo ''; \ + } | tee "$APACHE_CONFDIR/conf-available/docker-php.conf" \ + && a2enconf docker-php + +ENV PHP_EXTRA_BUILD_DEPS apache2-dev +ENV PHP_EXTRA_CONFIGURE_ARGS --with-apxs2 --disable-cgi ac_cv_func_mmap=no +#### + +# Apply stack smash protection to functions using local buffers and alloca() +# Make PHP's main executable position-independent (improves ASLR security mechanism, and has no performance impact on x86_64) +# Enable optimization (-O2) +# Enable linker optimization (this sorts the hash buckets to improve cache locality, and is non-default) +# Adds GNU HASH segments to generated executables (this is used if present, and is much faster than sysv hash; in this configuration, sysv hash is also generated) +# https://github.com/docker-library/php/issues/272 +# -D_LARGEFILE_SOURCE and -D_FILE_OFFSET_BITS=64 (https://www.php.net/manual/en/intro.filesystem.php) +ENV PHP_CFLAGS="-fstack-protector-strong -fpic -fpie -O2 -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64" +ENV PHP_CPPFLAGS="$PHP_CFLAGS" +ENV PHP_LDFLAGS="-Wl,-O1 -Wl,--hash-style=both -pie" + +ENV GPG_KEYS 1198C0117593497A5EC5C199286AF1F9897469DC 39B641343D8C104B2B146DC3F9C39DC0B9698544 E60913E4DF209907D8E30D96659A97C9CF2A795A + +ENV PHP_VERSION 8.2.17 +ENV PHP_URL="https://www.php.net/get/php-8.2.17.tar.xz/from/this/mirror" PHP_ASC_URL="https://www.php.net/get/php-8.2.17.tar.xz.asc/from/this/mirror" +ENV PHP_SHA256="1cc4ef733ba58f6557db648012471f1916e5bac316303aa165535bedab08ee35" PHP_MD5="" + +RUN set -eux; \ + \ + savedAptMark="$(apt-mark showmanual)"; \ + apt-get update; \ + apt-get install -y --no-install-recommends gnupg dirmngr; \ + rm -rf /var/lib/apt/lists/*; \ + \ + mkdir -p /usr/src; \ + cd /usr/src; \ + \ + curl -fsSL -o php.tar.xz "$PHP_URL"; \ + \ + if [ -n "$PHP_SHA256" ]; then \ + echo "$PHP_SHA256 *php.tar.xz" | sha256sum -c -; \ + fi; \ + if [ -n "$PHP_MD5" ]; then \ + echo "$PHP_MD5 *php.tar.xz" | md5sum -c -; \ + fi; \ + \ + if [ -n "$PHP_ASC_URL" ]; then \ + curl -fsSL -o php.tar.xz.asc "$PHP_ASC_URL"; \ + export GNUPGHOME="$(mktemp -d)"; \ + ${IMAGES_DIR}/receiveGpgKeys.sh $GPG_KEYS; \ + gpg --batch --verify php.tar.xz.asc php.tar.xz; \ + gpgconf --kill all; \ + rm -rf "$GNUPGHOME"; \ + fi; \ + \ + apt-mark auto '.*' > /dev/null; \ + apt-mark manual $savedAptMark > /dev/null; \ + apt-get purge -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false + +COPY images/runtime/php/8.2/docker-php-source /usr/local/bin/ +RUN chmod +x /usr/local/bin/docker-php-source + +RUN set -eux; \ + \ + + savedAptMark="$(apt-mark showmanual)"; \ + apt-get update; \ + apt-get install -y --no-install-recommends \ + libargon2-dev \ + libcurl4-openssl-dev \ + libedit-dev \ + libonig-dev \ + libsodium-dev \ + libsqlite3-dev \ + libssl-dev \ + libxml2-dev \ + zlib1g-dev \ + ${PHP_EXTRA_BUILD_DEPS:-} \ + ; \ + rm -rf /var/lib/apt/lists/*; \ + \ + export \ + CFLAGS="$PHP_CFLAGS" \ + CPPFLAGS="$PHP_CPPFLAGS" \ + LDFLAGS="$PHP_LDFLAGS" \ + ; \ + docker-php-source extract; \ + cd /usr/src/php; \ + gnuArch="$(dpkg-architecture --query DEB_BUILD_GNU_TYPE)"; \ + debMultiarch="$(dpkg-architecture --query DEB_BUILD_MULTIARCH)"; \ +# https://bugs.php.net/bug.php?id=74125 + if [ ! -d /usr/include/curl ]; then \ + ln -sT "/usr/include/$debMultiarch/curl" /usr/local/include/curl; \ + fi; \ + ./configure \ + --build="$gnuArch" \ + --with-config-file-path="$PHP_INI_DIR" \ + --with-config-file-scan-dir="$PHP_INI_DIR/conf.d" \ + \ +# make sure invalid --configure-flags are fatal errors intead of just warnings + --enable-option-checking=fatal \ + \ +# https://github.com/docker-library/php/issues/439 + --with-mhash \ + \ +# --enable-ftp is included here because ftp_ssl_connect() needs ftp to be compiled statically (see https://github.com/docker-library/php/issues/236) + --enable-ftp \ +# --enable-mbstring is included here because otherwise there's no way to get pecl to use it properly (see https://github.com/docker-library/php/issues/195) + --enable-mbstring \ +# --enable-mysqlnd is included here because it's harder to compile after the fact than extensions are (since it's a plugin for several extensions, not an extension in itself) + --enable-mysqlnd \ +# https://wiki.php.net/rfc/argon2_password_hash (7.2+) + --with-password-argon2 \ +# https://wiki.php.net/rfc/libsodium + --with-sodium=shared \ +# always build against system sqlite3 (https://github.com/php/php-src/commit/6083a387a81dbbd66d6316a3a12a63f06d5f7109) + --with-pdo-sqlite=/usr \ + --with-sqlite3=/usr \ + \ + --with-curl \ + --with-libedit \ + --with-openssl \ + --with-zlib \ + \ +# in PHP 7.4+, the pecl/pear installers are officially deprecated (requiring an explicit "--with-pear") and will be removed in PHP 8+; see also https://github.com/docker-library/php/issues/846#issuecomment-505638494 + --with-pear \ + \ +# bundled pcre does not support JIT on s390x +# https://manpages.debian.org/stretch/libpcre3-dev/pcrejit.3.en.html#AVAILABILITY_OF_JIT_SUPPORT + $(test "$gnuArch" = 's390x-linux-gnu' && echo '--without-pcre-jit') \ + --with-libdir="lib/$debMultiarch" \ + \ + ${PHP_EXTRA_CONFIGURE_ARGS:-} \ + ; \ + make -j "$(nproc)"; \ + find -type f -name '*.a' -delete; \ + make install; \ + find /usr/local/bin /usr/local/sbin -type f -executable -exec strip --strip-all '{}' + || true; \ + make clean; \ + \ +# https://github.com/docker-library/php/issues/692 (copy default example "php.ini" files somewhere easily discoverable) + cp -v php.ini-* "$PHP_INI_DIR/"; \ + \ + cd /; \ + docker-php-source delete; \ + \ +# reset apt-mark's "manual" list so that "purge --auto-remove" will remove all build dependencies + apt-mark auto '.*' > /dev/null; \ + [ -z "$savedAptMark" ] || apt-mark manual $savedAptMark; \ + find /usr/local -type f -executable -exec ldd '{}' ';' \ + | awk '/=>/ { print $(NF-1) }' \ + | sort -u \ + | xargs -r dpkg-query --search \ + | cut -d: -f1 \ + | sort -u \ + | xargs -r apt-mark manual \ + ; \ + apt-get purge -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false; \ + \ +# update pecl channel definitions https://github.com/docker-library/php/issues/443 + pecl update-channels; \ + rm -rf /tmp/pear ~/.pearrc; \ +# smoke test + php --version + +COPY images/runtime/php/8.2/docker-php-ext-* images/runtime/php/8.2/docker-php-entrypoint /usr/local/bin/ +RUN chmod +x /usr/local/bin/docker-php-* + +# sodium was built as a shared module (so that it can be replaced later if so desired), so let's enable it too (https://github.com/docker-library/php/issues/598) +RUN docker-php-ext-enable sodium \ + && rm -rf /var/lib/apt/lists/* + +ENTRYPOINT ["docker-php-entrypoint"] +#### +# https://httpd.apache.org/docs/2.4/stopping.html#gracefulstop +STOPSIGNAL SIGWINCH + +COPY images/runtime/php/8.2/apache2-foreground /usr/local/bin/ +RUN chmod +x /usr/local/bin/apache2-foreground +WORKDIR /var/www/html + +EXPOSE 80 +CMD ["apache2-foreground"] +#### + +## base dockerfile +SHELL ["/bin/bash", "-c"] +ARG PHP_VERSION +ENV PHP_VERSION ${PHP_VERSION} + +RUN a2enmod rewrite expires include deflate remoteip headers + +ENV APACHE_RUN_USER www-data +# Edit the default DocumentRoot setting +ENV APACHE_DOCUMENT_ROOT /home/site/wwwroot +RUN sed -ri -e 's!/var/www/html!${APACHE_DOCUMENT_ROOT}!g' /etc/apache2/sites-available/*.conf +RUN sed -ri -e 's!/var/www/!${APACHE_DOCUMENT_ROOT}!g' /etc/apache2/apache2.conf /etc/apache2/conf-available/*.conf +# Edit the default port setting +ENV APACHE_PORT 8080 +RUN sed -ri -e 's!!!g' /etc/apache2/sites-available/*.conf +RUN sed -ri -e 's!!!g' /etc/apache2/sites-available/*.conf +RUN sed -ri -e 's!Listen 80!Listen ${APACHE_PORT}!g' /etc/apache2/ports.conf +# Edit Configuration to instruct Apache on how to process PHP files +RUN echo -e '\n SetHandler application/x-httpd-php\n' >> /etc/apache2/apache2.conf +# Disable Apache2 server signature +RUN echo -e 'ServerSignature Off' >> /etc/apache2/apache2.conf +RUN echo -e 'ServerTokens Prod' >> /etc/apache2/apache2.conf +RUN { \ + echo ''; \ + echo ' Order deny,allow'; \ + echo ' Deny from all'; \ + echo ''; \ +} >> /etc/apache2/apache2.conf + +# Install common PHP extensions +# TEMPORARY: Holding odbc related packages from upgrading. +RUN apt-mark hold msodbcsql18 odbcinst1debian2 odbcinst unixodbc unixodbc-dev \ + && apt-get update \ + && apt-get upgrade -y \ + && ln -s /usr/lib/x86_64-linux-gnu/libldap.so /usr/lib/libldap.so \ + && ln -s /usr/lib/x86_64-linux-gnu/liblber.so /usr/lib/liblber.so \ + && ln -s /usr/include/x86_64-linux-gnu/gmp.h /usr/include/gmp.h + +RUN set -eux; \ + if [[ $PHP_VERSION == 7.4.* || $PHP_VERSION == 8.0.* || $PHP_VERSION == 8.1.* || $PHP_VERSION == 8.2.* || $PHP_VERSION == 8.3.* ]]; then \ + apt-get update \ + && apt-get upgrade -y \ + && apt-get install -y --no-install-recommends apache2-dev \ + && docker-php-ext-configure gd --with-freetype --with-jpeg \ + && PHP_OPENSSL=yes docker-php-ext-configure imap --with-kerberos --with-imap-ssl ; \ + else \ + docker-php-ext-configure gd --with-png-dir=/usr --with-jpeg-dir=/usr \ + && docker-php-ext-configure imap --with-kerberos --with-imap-ssl ; \ + fi + +RUN docker-php-ext-configure pdo_odbc --with-pdo-odbc=unixODBC,/usr \ + && docker-php-ext-install gd \ + mysqli \ + opcache \ + pdo \ + pdo_mysql \ + pdo_pgsql \ + pgsql \ + ldap \ + intl \ + gmp \ + zip \ + bcmath \ + mbstring \ + pcntl \ + calendar \ + exif \ + gettext \ + imap \ + tidy \ + shmop \ + soap \ + sockets \ + sysvmsg \ + sysvsem \ + sysvshm \ + pdo_odbc \ +# deprecated from 7.4, so should be avoided in general template for all php versions +# wddx \ +# xmlrpc \ + xsl + +RUN set -eux; \ + if [[ $PHP_VERSION != 5.* ]]; then \ + pecl install redis && docker-php-ext-enable redis; \ + fi + +# https://github.com/Imagick/imagick/issues/331 +# https://github.com/ihneo/php/pull/24/files +RUN set -eux; \ + if [[ $PHP_VERSION != 8.3.* ]]; then \ + pecl install imagick && docker-php-ext-enable imagick; \ + fi + +# deprecated from 5.*, so should be avoided +RUN set -eux; \ + if [[ $PHP_VERSION != 5.* && $PHP_VERSION != 7.0.* ]]; then \ + echo "pecl/mongodb requires PHP (version >= 7.1.0, version <= 7.99.99)"; \ + pecl install mongodb && docker-php-ext-enable mongodb; \ + fi + +# https://github.com/microsoft/mysqlnd_azure, Supports 7.2*, 7.3* and 7.4* +RUN set -eux; \ + if [[ $PHP_VERSION == 7.2.* || $PHP_VERSION == 7.3.* || $PHP_VERSION == 7.4.* ]]; then \ + echo "pecl/mysqlnd_azure requires PHP (version >= 7.2.*, version <= 7.99.99)"; \ + pecl install mysqlnd_azure \ + && docker-php-ext-enable mysqlnd_azure; \ + fi + +# Install the Microsoft SQL Server PDO driver on supported versions only. +# - https://docs.microsoft.com/en-us/sql/connect/php/installation-tutorial-linux-mac +# - https://docs.microsoft.com/en-us/sql/connect/odbc/linux-mac/installing-the-microsoft-odbc-driver-for-sql-server +# For php|8.0, latest stable version of pecl/sqlsrv, pecl/pdo_sqlsrv is 5.11.0 +RUN set -eux; \ + if [[ $PHP_VERSION == 8.0.* ]]; then \ + pecl install sqlsrv-5.11.0 pdo_sqlsrv-5.11.0 \ + && echo extension=pdo_sqlsrv.so >> $(php --ini | grep "Scan for additional .ini files" | sed -e "s|.*:\s*||")/30-pdo_sqlsrv.ini \ + && echo extension=sqlsrv.so >> $(php --ini | grep "Scan for additional .ini files" | sed -e "s|.*:\s*||")/20-sqlsrv.ini; \ + fi + +# Latest pecl/sqlsrv, pecl/pdo_sqlsrv requires PHP (version >= 8.1.0) +RUN set -eux; \ + if [[ $PHP_VERSION == 8.1.* || $PHP_VERSION == 8.2.* || $PHP_VERSION == 8.3.* ]]; then \ + pecl install sqlsrv pdo_sqlsrv \ + && echo extension=pdo_sqlsrv.so >> `php --ini | grep "Scan for additional .ini files" | sed -e "s|.*:\s*||"`/30-pdo_sqlsrv.ini \ + && echo extension=sqlsrv.so >> `php --ini | grep "Scan for additional .ini files" | sed -e "s|.*:\s*||"`/20-sqlsrv.ini; \ + fi + +RUN { \ + echo 'opcache.memory_consumption=128'; \ + echo 'opcache.interned_strings_buffer=8'; \ + echo 'opcache.max_accelerated_files=4000'; \ + echo 'opcache.revalidate_freq=60'; \ + echo 'opcache.fast_shutdown=1'; \ + echo 'opcache.enable_cli=1'; \ + } > /usr/local/etc/php/conf.d/opcache-recommended.ini + +# NOTE: zend_extension=opcache is already configured via docker-php-ext-install, above +RUN { \ + echo 'error_log=/var/log/apache2/php-error.log'; \ + echo 'display_errors=Off'; \ + echo 'log_errors=On'; \ + echo 'display_startup_errors=Off'; \ + echo 'date.timezone=UTC'; \ + } > /usr/local/etc/php/conf.d/php.ini + +RUN set -x \ + && docker-php-source extract \ + && cd /usr/src/php/ext/odbc \ + && phpize \ + && sed -ri 's@^ *test +"\$PHP_.*" *= *"no" *&& *PHP_.*=yes *$@#&@g' configure \ + && chmod +x ./configure \ + && ./configure --with-unixODBC=shared,/usr \ + && docker-php-ext-install odbc \ + && rm -rf /var/lib/apt/lists/* + +RUN rm -rf /tmp/oryx + +ENV LANG="C.UTF-8" \ + LANGUAGE="C.UTF-8" \ + LC_ALL="C.UTF-8" + +# dockerfile +# Bake Application Insights key from pipeline variable into final image +ARG AI_CONNECTION_STRING +ENV ORYX_AI_CONNECTION_STRING=${AI_CONNECTION_STRING} +#Bake in client certificate path into image to avoid downloading it +ENV PATH_CA_CERTIFICATE="/etc/ssl/certs/ca-certificate.crt" + +# Oryx++ Builder variables +ENV CNB_STACK_ID="oryx.stacks.skeleton" +LABEL io.buildpacks.stack.id="oryx.stacks.skeleton" + +COPY --from=startupCmdGen /opt/startupcmdgen/startupcmdgen /opt/startupcmdgen/startupcmdgen +RUN ln -s /opt/startupcmdgen/startupcmdgen /usr/local/bin/oryx \ + && rm -rf /tmp/oryx \ + # Temporarily making sure apache2-foreground has permission + && chmod +x /usr/local/bin/apache2-foreground + +ENV LANG="C.UTF-8" \ + LANGUAGE="C.UTF-8" \ + LC_ALL="C.UTF-8" \ No newline at end of file diff --git a/images/runtime/php/8.2/buster.Dockerfile b/images/runtime/php/8.2/buster.Dockerfile new file mode 100644 index 000000000..c8f871d6a --- /dev/null +++ b/images/runtime/php/8.2/buster.Dockerfile @@ -0,0 +1,460 @@ +ARG BASE_IMAGE + +# Startup script generator +FROM mcr.microsoft.com/oss/go/microsoft/golang:1.20-buster as startupCmdGen + +# GOPATH is set to "/go" in the base image +WORKDIR /go/src +COPY src/startupscriptgenerator/src . +ARG GIT_COMMIT=unspecified +ARG BUILD_NUMBER=unspecified +ARG RELEASE_TAG_NAME=unspecified +ENV RELEASE_TAG_NAME=${RELEASE_TAG_NAME} +ENV GIT_COMMIT=${GIT_COMMIT} +ENV BUILD_NUMBER=${BUILD_NUMBER} +RUN chmod +x build.sh && ./build.sh php /opt/startupcmdgen/startupcmdgen + +FROM ${BASE_IMAGE} +ARG IMAGES_DIR=/tmp/oryx/images + +# Install the Microsoft SQL Server PDO driver on supported versions only. +# - https://docs.microsoft.com/en-us/sql/connect/php/installation-tutorial-linux-mac +# - https://docs.microsoft.com/en-us/sql/connect/odbc/linux-mac/installing-the-microsoft-odbc-driver-for-sql-server +RUN set -eux \ + && apt-get update \ + && apt-get install -y --no-install-recommends \ + gnupg2 \ + apt-transport-https \ + && curl https://packages.microsoft.com/keys/microsoft.asc | apt-key add - \ + && curl https://packages.microsoft.com/config/debian/10/prod.list > /etc/apt/sources.list.d/mssql-release.list \ + && apt-get update \ + && ACCEPT_EULA=Y apt-get install -y msodbcsql17 msodbcsql18=18.1.2.1-1 odbcinst1debian2=2.3.7 odbcinst=2.3.7 unixodbc=2.3.7 unixodbc-dev=2.3.7 + +ENV PHP_INI_DIR /usr/local/etc/php +RUN set -eux; \ + mkdir -p "$PHP_INI_DIR/conf.d"; \ +# allow running as an arbitrary user (https://github.com/docker-library/php/issues/743) + [ ! -d /var/www/html ]; \ + mkdir -p /var/www/html; \ + chown www-data:www-data /var/www/html; \ + chmod 777 /var/www/html +#### +ENV APACHE_CONFDIR /etc/apache2 +ENV APACHE_ENVVARS $APACHE_CONFDIR/envvars + +RUN set -eux; \ + apt-get update; \ + apt-get install -y --no-install-recommends apache2; \ + rm -rf /var/lib/apt/lists/*; \ + \ +# generically convert lines like +# export APACHE_RUN_USER=www-data +# into +# : ${APACHE_RUN_USER:=www-data} +# export APACHE_RUN_USER +# so that they can be overridden at runtime ("-e APACHE_RUN_USER=...") + sed -ri 's/^export ([^=]+)=(.*)$/: ${\1:=\2}\nexport \1/' "$APACHE_ENVVARS"; \ + \ +# setup directories and permissions + . "$APACHE_ENVVARS"; \ + for dir in \ + "$APACHE_LOCK_DIR" \ + "$APACHE_RUN_DIR" \ + "$APACHE_LOG_DIR" \ + ; do \ + rm -rvf "$dir"; \ + mkdir -p "$dir"; \ + chown "$APACHE_RUN_USER:$APACHE_RUN_GROUP" "$dir"; \ +# allow running as an arbitrary user (https://github.com/docker-library/php/issues/743) + chmod 777 "$dir"; \ + done; \ + \ +# delete the "index.html" that installing Apache drops in here + rm -rvf /var/www/html/*; \ + \ +# logs should go to stdout / stderr + ln -sfT /dev/stderr "$APACHE_LOG_DIR/error.log"; \ + ln -sfT /dev/stdout "$APACHE_LOG_DIR/access.log"; \ + ln -sfT /dev/stdout "$APACHE_LOG_DIR/other_vhosts_access.log"; \ + chown -R --no-dereference "$APACHE_RUN_USER:$APACHE_RUN_GROUP" "$APACHE_LOG_DIR" + +# Apache + PHP requires preforking Apache for best results +RUN a2dismod mpm_event && a2enmod mpm_prefork + +# PHP files should be handled by PHP, and should be preferred over any other file type +RUN { \ + echo ''; \ + echo '\tSetHandler application/x-httpd-php'; \ + echo ''; \ + echo; \ + echo 'DirectoryIndex disabled'; \ + echo 'DirectoryIndex index.php index.html'; \ + echo; \ + echo ''; \ + echo '\tOptions -Indexes'; \ + echo '\tAllowOverride All'; \ + echo ''; \ + } | tee "$APACHE_CONFDIR/conf-available/docker-php.conf" \ + && a2enconf docker-php + +ENV PHP_EXTRA_BUILD_DEPS apache2-dev +ENV PHP_EXTRA_CONFIGURE_ARGS --with-apxs2 --disable-cgi ac_cv_func_mmap=no +#### + +# Apply stack smash protection to functions using local buffers and alloca() +# Make PHP's main executable position-independent (improves ASLR security mechanism, and has no performance impact on x86_64) +# Enable optimization (-O2) +# Enable linker optimization (this sorts the hash buckets to improve cache locality, and is non-default) +# Adds GNU HASH segments to generated executables (this is used if present, and is much faster than sysv hash; in this configuration, sysv hash is also generated) +# https://github.com/docker-library/php/issues/272 +# -D_LARGEFILE_SOURCE and -D_FILE_OFFSET_BITS=64 (https://www.php.net/manual/en/intro.filesystem.php) +ENV PHP_CFLAGS="-fstack-protector-strong -fpic -fpie -O2 -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64" +ENV PHP_CPPFLAGS="$PHP_CFLAGS" +ENV PHP_LDFLAGS="-Wl,-O1 -Wl,--hash-style=both -pie" + +ENV GPG_KEYS 1198C0117593497A5EC5C199286AF1F9897469DC 39B641343D8C104B2B146DC3F9C39DC0B9698544 E60913E4DF209907D8E30D96659A97C9CF2A795A + +ENV PHP_VERSION 8.2.17 +ENV PHP_URL="https://www.php.net/get/php-8.2.17.tar.xz/from/this/mirror" PHP_ASC_URL="https://www.php.net/get/php-8.2.17.tar.xz.asc/from/this/mirror" +ENV PHP_SHA256="1cc4ef733ba58f6557db648012471f1916e5bac316303aa165535bedab08ee35" PHP_MD5="" + +RUN set -eux; \ + \ + savedAptMark="$(apt-mark showmanual)"; \ + apt-get update; \ + apt-get install -y --no-install-recommends gnupg dirmngr; \ + rm -rf /var/lib/apt/lists/*; \ + \ + mkdir -p /usr/src; \ + cd /usr/src; \ + \ + curl -fsSL -o php.tar.xz "$PHP_URL"; \ + \ + if [ -n "$PHP_SHA256" ]; then \ + echo "$PHP_SHA256 *php.tar.xz" | sha256sum -c -; \ + fi; \ + if [ -n "$PHP_MD5" ]; then \ + echo "$PHP_MD5 *php.tar.xz" | md5sum -c -; \ + fi; \ + \ + if [ -n "$PHP_ASC_URL" ]; then \ + curl -fsSL -o php.tar.xz.asc "$PHP_ASC_URL"; \ + export GNUPGHOME="$(mktemp -d)"; \ + ${IMAGES_DIR}/receiveGpgKeys.sh $GPG_KEYS; \ + gpg --batch --verify php.tar.xz.asc php.tar.xz; \ + gpgconf --kill all; \ + rm -rf "$GNUPGHOME"; \ + fi; \ + \ + apt-mark auto '.*' > /dev/null; \ + apt-mark manual $savedAptMark > /dev/null; \ + apt-get purge -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false + +COPY images/runtime/php/8.2/docker-php-source /usr/local/bin/ +RUN chmod +x /usr/local/bin/docker-php-source + +RUN set -eux; \ + \ + + savedAptMark="$(apt-mark showmanual)"; \ + apt-get update; \ + apt-get install -y --no-install-recommends \ + libargon2-dev \ + libcurl4-openssl-dev \ + libedit-dev \ + libonig-dev \ + libsodium-dev \ + libsqlite3-dev \ + libssl-dev \ + libxml2-dev \ + zlib1g-dev \ + ${PHP_EXTRA_BUILD_DEPS:-} \ + ; \ + rm -rf /var/lib/apt/lists/*; \ + \ + export \ + CFLAGS="$PHP_CFLAGS" \ + CPPFLAGS="$PHP_CPPFLAGS" \ + LDFLAGS="$PHP_LDFLAGS" \ + ; \ + docker-php-source extract; \ + cd /usr/src/php; \ + gnuArch="$(dpkg-architecture --query DEB_BUILD_GNU_TYPE)"; \ + debMultiarch="$(dpkg-architecture --query DEB_BUILD_MULTIARCH)"; \ +# https://bugs.php.net/bug.php?id=74125 + if [ ! -d /usr/include/curl ]; then \ + ln -sT "/usr/include/$debMultiarch/curl" /usr/local/include/curl; \ + fi; \ + ./configure \ + --build="$gnuArch" \ + --with-config-file-path="$PHP_INI_DIR" \ + --with-config-file-scan-dir="$PHP_INI_DIR/conf.d" \ + \ +# make sure invalid --configure-flags are fatal errors intead of just warnings + --enable-option-checking=fatal \ + \ +# https://github.com/docker-library/php/issues/439 + --with-mhash \ + \ +# --enable-ftp is included here because ftp_ssl_connect() needs ftp to be compiled statically (see https://github.com/docker-library/php/issues/236) + --enable-ftp \ +# --enable-mbstring is included here because otherwise there's no way to get pecl to use it properly (see https://github.com/docker-library/php/issues/195) + --enable-mbstring \ +# --enable-mysqlnd is included here because it's harder to compile after the fact than extensions are (since it's a plugin for several extensions, not an extension in itself) + --enable-mysqlnd \ +# https://wiki.php.net/rfc/argon2_password_hash (7.2+) + --with-password-argon2 \ +# https://wiki.php.net/rfc/libsodium + --with-sodium=shared \ +# always build against system sqlite3 (https://github.com/php/php-src/commit/6083a387a81dbbd66d6316a3a12a63f06d5f7109) + --with-pdo-sqlite=/usr \ + --with-sqlite3=/usr \ + \ + --with-curl \ + --with-libedit \ + --with-openssl \ + --with-zlib \ + \ +# in PHP 7.4+, the pecl/pear installers are officially deprecated (requiring an explicit "--with-pear") and will be removed in PHP 8+; see also https://github.com/docker-library/php/issues/846#issuecomment-505638494 + --with-pear \ + \ +# bundled pcre does not support JIT on s390x +# https://manpages.debian.org/stretch/libpcre3-dev/pcrejit.3.en.html#AVAILABILITY_OF_JIT_SUPPORT + $(test "$gnuArch" = 's390x-linux-gnu' && echo '--without-pcre-jit') \ + --with-libdir="lib/$debMultiarch" \ + \ + ${PHP_EXTRA_CONFIGURE_ARGS:-} \ + ; \ + make -j "$(nproc)"; \ + find -type f -name '*.a' -delete; \ + make install; \ + find /usr/local/bin /usr/local/sbin -type f -executable -exec strip --strip-all '{}' + || true; \ + make clean; \ + \ +# https://github.com/docker-library/php/issues/692 (copy default example "php.ini" files somewhere easily discoverable) + cp -v php.ini-* "$PHP_INI_DIR/"; \ + \ + cd /; \ + docker-php-source delete; \ + \ +# reset apt-mark's "manual" list so that "purge --auto-remove" will remove all build dependencies + apt-mark auto '.*' > /dev/null; \ + [ -z "$savedAptMark" ] || apt-mark manual $savedAptMark; \ + find /usr/local -type f -executable -exec ldd '{}' ';' \ + | awk '/=>/ { print $(NF-1) }' \ + | sort -u \ + | xargs -r dpkg-query --search \ + | cut -d: -f1 \ + | sort -u \ + | xargs -r apt-mark manual \ + ; \ + apt-get purge -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false; \ + \ +# update pecl channel definitions https://github.com/docker-library/php/issues/443 + pecl update-channels; \ + rm -rf /tmp/pear ~/.pearrc; \ +# smoke test + php --version + +COPY images/runtime/php/8.2/docker-php-ext-* images/runtime/php/8.2/docker-php-entrypoint /usr/local/bin/ +RUN chmod +x /usr/local/bin/docker-php-* + +# sodium was built as a shared module (so that it can be replaced later if so desired), so let's enable it too (https://github.com/docker-library/php/issues/598) +RUN docker-php-ext-enable sodium \ + && rm -rf /var/lib/apt/lists/* + +ENTRYPOINT ["docker-php-entrypoint"] +#### +# https://httpd.apache.org/docs/2.4/stopping.html#gracefulstop +STOPSIGNAL SIGWINCH + +COPY images/runtime/php/8.2/apache2-foreground /usr/local/bin/ +RUN chmod +x /usr/local/bin/apache2-foreground +WORKDIR /var/www/html + +EXPOSE 80 +CMD ["apache2-foreground"] +#### + +## base dockerfile +SHELL ["/bin/bash", "-c"] +ARG PHP_VERSION +ENV PHP_VERSION ${PHP_VERSION} + +RUN a2enmod rewrite expires include deflate remoteip headers + +ENV APACHE_RUN_USER www-data +# Edit the default DocumentRoot setting +ENV APACHE_DOCUMENT_ROOT /home/site/wwwroot +RUN sed -ri -e 's!/var/www/html!${APACHE_DOCUMENT_ROOT}!g' /etc/apache2/sites-available/*.conf +RUN sed -ri -e 's!/var/www/!${APACHE_DOCUMENT_ROOT}!g' /etc/apache2/apache2.conf /etc/apache2/conf-available/*.conf +# Edit the default port setting +ENV APACHE_PORT 8080 +RUN sed -ri -e 's!!!g' /etc/apache2/sites-available/*.conf +RUN sed -ri -e 's!!!g' /etc/apache2/sites-available/*.conf +RUN sed -ri -e 's!Listen 80!Listen ${APACHE_PORT}!g' /etc/apache2/ports.conf +# Edit Configuration to instruct Apache on how to process PHP files +RUN echo -e '\n SetHandler application/x-httpd-php\n' >> /etc/apache2/apache2.conf +# Disable Apache2 server signature +RUN echo -e 'ServerSignature Off' >> /etc/apache2/apache2.conf +RUN echo -e 'ServerTokens Prod' >> /etc/apache2/apache2.conf +RUN { \ + echo ''; \ + echo ' Order deny,allow'; \ + echo ' Deny from all'; \ + echo ''; \ +} >> /etc/apache2/apache2.conf + +# Install common PHP extensions +# TEMPORARY: Holding odbc related packages from upgrading. +RUN apt-mark hold msodbcsql18 odbcinst1debian2 odbcinst unixodbc unixodbc-dev \ + && apt-get update \ + && apt-get upgrade -y \ + && ln -s /usr/lib/x86_64-linux-gnu/libldap.so /usr/lib/libldap.so \ + && ln -s /usr/lib/x86_64-linux-gnu/liblber.so /usr/lib/liblber.so \ + && ln -s /usr/include/x86_64-linux-gnu/gmp.h /usr/include/gmp.h + +RUN set -eux; \ + if [[ $PHP_VERSION == 7.4.* || $PHP_VERSION == 8.0.* || $PHP_VERSION == 8.1.* || $PHP_VERSION == 8.2.* || $PHP_VERSION == 8.3.* ]]; then \ + apt-get update \ + && apt-get upgrade -y \ + && apt-get install -y --no-install-recommends apache2-dev \ + && docker-php-ext-configure gd --with-freetype --with-jpeg \ + && PHP_OPENSSL=yes docker-php-ext-configure imap --with-kerberos --with-imap-ssl ; \ + else \ + docker-php-ext-configure gd --with-png-dir=/usr --with-jpeg-dir=/usr \ + && docker-php-ext-configure imap --with-kerberos --with-imap-ssl ; \ + fi + +RUN docker-php-ext-configure pdo_odbc --with-pdo-odbc=unixODBC,/usr \ + && docker-php-ext-install gd \ + mysqli \ + opcache \ + pdo \ + pdo_mysql \ + pdo_pgsql \ + pgsql \ + ldap \ + intl \ + gmp \ + zip \ + bcmath \ + mbstring \ + pcntl \ + calendar \ + exif \ + gettext \ + imap \ + tidy \ + shmop \ + soap \ + sockets \ + sysvmsg \ + sysvsem \ + sysvshm \ + pdo_odbc \ +# deprecated from 7.4, so should be avoided in general template for all php versions +# wddx \ +# xmlrpc \ + xsl + +RUN set -eux; \ + if [[ $PHP_VERSION != 5.* ]]; then \ + pecl install redis && docker-php-ext-enable redis; \ + fi + +# https://github.com/Imagick/imagick/issues/331 +# https://github.com/ihneo/php/pull/24/files +RUN set -eux; \ + if [[ $PHP_VERSION != 8.3.* ]]; then \ + pecl install imagick && docker-php-ext-enable imagick; \ + fi + +# deprecated from 5.*, so should be avoided +RUN set -eux; \ + if [[ $PHP_VERSION != 5.* && $PHP_VERSION != 7.0.* ]]; then \ + echo "pecl/mongodb requires PHP (version >= 7.1.0, version <= 7.99.99)"; \ + pecl install mongodb && docker-php-ext-enable mongodb; \ + fi + +# https://github.com/microsoft/mysqlnd_azure, Supports 7.2*, 7.3* and 7.4* +RUN set -eux; \ + if [[ $PHP_VERSION == 7.2.* || $PHP_VERSION == 7.3.* || $PHP_VERSION == 7.4.* ]]; then \ + echo "pecl/mysqlnd_azure requires PHP (version >= 7.2.*, version <= 7.99.99)"; \ + pecl install mysqlnd_azure \ + && docker-php-ext-enable mysqlnd_azure; \ + fi + +# Install the Microsoft SQL Server PDO driver on supported versions only. +# - https://docs.microsoft.com/en-us/sql/connect/php/installation-tutorial-linux-mac +# - https://docs.microsoft.com/en-us/sql/connect/odbc/linux-mac/installing-the-microsoft-odbc-driver-for-sql-server +# For php|8.0, latest stable version of pecl/sqlsrv, pecl/pdo_sqlsrv is 5.11.0 +RUN set -eux; \ + if [[ $PHP_VERSION == 8.0.* ]]; then \ + pecl install sqlsrv-5.11.0 pdo_sqlsrv-5.11.0 \ + && echo extension=pdo_sqlsrv.so >> $(php --ini | grep "Scan for additional .ini files" | sed -e "s|.*:\s*||")/30-pdo_sqlsrv.ini \ + && echo extension=sqlsrv.so >> $(php --ini | grep "Scan for additional .ini files" | sed -e "s|.*:\s*||")/20-sqlsrv.ini; \ + fi + +# Latest pecl/sqlsrv, pecl/pdo_sqlsrv requires PHP (version >= 8.1.0) +RUN set -eux; \ + if [[ $PHP_VERSION == 8.1.* || $PHP_VERSION == 8.2.* || $PHP_VERSION == 8.3.* ]]; then \ + pecl install sqlsrv pdo_sqlsrv \ + && echo extension=pdo_sqlsrv.so >> `php --ini | grep "Scan for additional .ini files" | sed -e "s|.*:\s*||"`/30-pdo_sqlsrv.ini \ + && echo extension=sqlsrv.so >> `php --ini | grep "Scan for additional .ini files" | sed -e "s|.*:\s*||"`/20-sqlsrv.ini; \ + fi + +RUN { \ + echo 'opcache.memory_consumption=128'; \ + echo 'opcache.interned_strings_buffer=8'; \ + echo 'opcache.max_accelerated_files=4000'; \ + echo 'opcache.revalidate_freq=60'; \ + echo 'opcache.fast_shutdown=1'; \ + echo 'opcache.enable_cli=1'; \ + } > /usr/local/etc/php/conf.d/opcache-recommended.ini + +# NOTE: zend_extension=opcache is already configured via docker-php-ext-install, above +RUN { \ + echo 'error_log=/var/log/apache2/php-error.log'; \ + echo 'display_errors=Off'; \ + echo 'log_errors=On'; \ + echo 'display_startup_errors=Off'; \ + echo 'date.timezone=UTC'; \ + } > /usr/local/etc/php/conf.d/php.ini + +RUN set -x \ + && docker-php-source extract \ + && cd /usr/src/php/ext/odbc \ + && phpize \ + && sed -ri 's@^ *test +"\$PHP_.*" *= *"no" *&& *PHP_.*=yes *$@#&@g' configure \ + && chmod +x ./configure \ + && ./configure --with-unixODBC=shared,/usr \ + && docker-php-ext-install odbc \ + && rm -rf /var/lib/apt/lists/* + +RUN rm -rf /tmp/oryx + +ENV LANG="C.UTF-8" \ + LANGUAGE="C.UTF-8" \ + LC_ALL="C.UTF-8" + +# dockerfile +# Bake Application Insights key from pipeline variable into final image +ARG AI_CONNECTION_STRING +ENV ORYX_AI_CONNECTION_STRING=${AI_CONNECTION_STRING} +#Bake in client certificate path into image to avoid downloading it +ENV PATH_CA_CERTIFICATE="/etc/ssl/certs/ca-certificate.crt" + +# Oryx++ Builder variables +ENV CNB_STACK_ID="oryx.stacks.skeleton" +LABEL io.buildpacks.stack.id="oryx.stacks.skeleton" + +COPY --from=startupCmdGen /opt/startupcmdgen/startupcmdgen /opt/startupcmdgen/startupcmdgen +RUN ln -s /opt/startupcmdgen/startupcmdgen /usr/local/bin/oryx \ + && rm -rf /tmp/oryx \ + # Temporarily making sure apache2-foreground has permission + && chmod +x /usr/local/bin/apache2-foreground + +ENV LANG="C.UTF-8" \ + LANGUAGE="C.UTF-8" \ + LC_ALL="C.UTF-8" \ No newline at end of file diff --git a/images/runtime/php/8.3/bookworm.Dockerfile b/images/runtime/php/8.3/bookworm.Dockerfile new file mode 100644 index 000000000..b676d7c6d --- /dev/null +++ b/images/runtime/php/8.3/bookworm.Dockerfile @@ -0,0 +1,461 @@ +ARG BASE_IMAGE + +# Startup script generator +FROM mcr.microsoft.com/oss/go/microsoft/golang:1.20-bookworm as startupCmdGen + +# GOPATH is set to "/go" in the base image +WORKDIR /go/src +COPY src/startupscriptgenerator/src . +ARG GIT_COMMIT=unspecified +ARG BUILD_NUMBER=unspecified +ARG RELEASE_TAG_NAME=unspecified +ENV RELEASE_TAG_NAME=${RELEASE_TAG_NAME} +ENV GIT_COMMIT=${GIT_COMMIT} +ENV BUILD_NUMBER=${BUILD_NUMBER} +RUN chmod +x build.sh && ./build.sh php /opt/startupcmdgen/startupcmdgen + +# From https://github.com/docker-library/php.git +FROM ${BASE_IMAGE} +ARG IMAGES_DIR=/tmp/oryx/images + +# Install the Microsoft SQL Server PDO driver on supported versions only. +# - https://docs.microsoft.com/en-us/sql/connect/php/installation-tutorial-linux-mac +# - https://docs.microsoft.com/en-us/sql/connect/odbc/linux-mac/installing-the-microsoft-odbc-driver-for-sql-server +RUN set -eux \ + && apt-get update \ + && apt-get install -y --no-install-recommends \ + gnupg2 \ + apt-transport-https \ + && curl https://packages.microsoft.com/keys/microsoft.asc | apt-key add - \ + && curl https://packages.microsoft.com/config/debian/11/prod.list > /etc/apt/sources.list.d/mssql-release.list \ + && apt-get update \ + && ACCEPT_EULA=Y apt-get install -y msodbcsql17 msodbcsql18=18.1.2.1-1 odbcinst1debian2=2.3.7 odbcinst=2.3.7 unixodbc=2.3.7 unixodbc-dev=2.3.7 + +ENV PHP_INI_DIR /usr/local/etc/php +RUN set -eux; \ + mkdir -p "$PHP_INI_DIR/conf.d"; \ +# allow running as an arbitrary user (https://github.com/docker-library/php/issues/743) + [ ! -d /var/www/html ]; \ + mkdir -p /var/www/html; \ + chown www-data:www-data /var/www/html; \ + chmod 777 /var/www/html +#### +ENV APACHE_CONFDIR /etc/apache2 +ENV APACHE_ENVVARS $APACHE_CONFDIR/envvars + +RUN set -eux; \ + apt-get update; \ + apt-get install -y --no-install-recommends apache2; \ + rm -rf /var/lib/apt/lists/*; \ + \ +# generically convert lines like +# export APACHE_RUN_USER=www-data +# into +# : ${APACHE_RUN_USER:=www-data} +# export APACHE_RUN_USER +# so that they can be overridden at runtime ("-e APACHE_RUN_USER=...") + sed -ri 's/^export ([^=]+)=(.*)$/: ${\1:=\2}\nexport \1/' "$APACHE_ENVVARS"; \ + \ +# setup directories and permissions + . "$APACHE_ENVVARS"; \ + for dir in \ + "$APACHE_LOCK_DIR" \ + "$APACHE_RUN_DIR" \ + "$APACHE_LOG_DIR" \ + ; do \ + rm -rvf "$dir"; \ + mkdir -p "$dir"; \ + chown "$APACHE_RUN_USER:$APACHE_RUN_GROUP" "$dir"; \ +# allow running as an arbitrary user (https://github.com/docker-library/php/issues/743) + chmod 777 "$dir"; \ + done; \ + \ +# delete the "index.html" that installing Apache drops in here + rm -rvf /var/www/html/*; \ + \ +# logs should go to stdout / stderr + ln -sfT /dev/stderr "$APACHE_LOG_DIR/error.log"; \ + ln -sfT /dev/stdout "$APACHE_LOG_DIR/access.log"; \ + ln -sfT /dev/stdout "$APACHE_LOG_DIR/other_vhosts_access.log"; \ + chown -R --no-dereference "$APACHE_RUN_USER:$APACHE_RUN_GROUP" "$APACHE_LOG_DIR" + +# Apache + PHP requires preforking Apache for best results +RUN a2dismod mpm_event && a2enmod mpm_prefork + +# PHP files should be handled by PHP, and should be preferred over any other file type +RUN { \ + echo ''; \ + echo '\tSetHandler application/x-httpd-php'; \ + echo ''; \ + echo; \ + echo 'DirectoryIndex disabled'; \ + echo 'DirectoryIndex index.php index.html'; \ + echo; \ + echo ''; \ + echo '\tOptions -Indexes'; \ + echo '\tAllowOverride All'; \ + echo ''; \ + } | tee "$APACHE_CONFDIR/conf-available/docker-php.conf" \ + && a2enconf docker-php + +ENV PHP_EXTRA_BUILD_DEPS apache2-dev +ENV PHP_EXTRA_CONFIGURE_ARGS --with-apxs2 --disable-cgi ac_cv_func_mmap=no +#### + +# Apply stack smash protection to functions using local buffers and alloca() +# Make PHP's main executable position-independent (improves ASLR security mechanism, and has no performance impact on x86_64) +# Enable optimization (-O2) +# Enable linker optimization (this sorts the hash buckets to improve cache locality, and is non-default) +# Adds GNU HASH segments to generated executables (this is used if present, and is much faster than sysv hash; in this configuration, sysv hash is also generated) +# https://github.com/docker-library/php/issues/272 +# -D_LARGEFILE_SOURCE and -D_FILE_OFFSET_BITS=64 (https://www.php.net/manual/en/intro.filesystem.php) +ENV PHP_CFLAGS="-fstack-protector-strong -fpic -fpie -O2 -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64" +ENV PHP_CPPFLAGS="$PHP_CFLAGS" +ENV PHP_LDFLAGS="-Wl,-O1 -Wl,--hash-style=both -pie" + +ENV GPG_KEYS 1198C0117593497A5EC5C199286AF1F9897469DC AFD8691FDAEDF03BDF6E460563F15A9B715376CA C28D937575603EB4ABB725861C0779DC5C0A9DE4 + +ENV PHP_VERSION 8.3.4 +ENV PHP_URL="https://www.php.net/get/php-8.3.4.tar.xz/from/this/mirror" PHP_ASC_URL="https://www.php.net/get/php-8.3.4.tar.xz.asc/from/this/mirror" +ENV PHP_SHA256="39a337036a546e5c28aea76cf424ac172db5156bd8a8fd85252e389409a5ba63" PHP_MD5="" + +RUN set -eux; \ + \ + savedAptMark="$(apt-mark showmanual)"; \ + apt-get update; \ + apt-get install -y --no-install-recommends gnupg dirmngr; \ + rm -rf /var/lib/apt/lists/*; \ + \ + mkdir -p /usr/src; \ + cd /usr/src; \ + \ + curl -fsSL -o php.tar.xz "$PHP_URL"; \ + \ + if [ -n "$PHP_SHA256" ]; then \ + echo "$PHP_SHA256 *php.tar.xz" | sha256sum -c -; \ + fi; \ + if [ -n "$PHP_MD5" ]; then \ + echo "$PHP_MD5 *php.tar.xz" | md5sum -c -; \ + fi; \ + \ + if [ -n "$PHP_ASC_URL" ]; then \ + curl -fsSL -o php.tar.xz.asc "$PHP_ASC_URL"; \ + export GNUPGHOME="$(mktemp -d)"; \ + ${IMAGES_DIR}/receiveGpgKeys.sh $GPG_KEYS; \ + gpg --batch --verify php.tar.xz.asc php.tar.xz; \ + gpgconf --kill all; \ + rm -rf "$GNUPGHOME"; \ + fi; \ + \ + apt-mark auto '.*' > /dev/null; \ + apt-mark manual $savedAptMark > /dev/null; \ + apt-get purge -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false + +COPY images/runtime/php/8.3/docker-php-source /usr/local/bin/ +RUN chmod +x /usr/local/bin/docker-php-source + +RUN set -eux; \ + \ + + savedAptMark="$(apt-mark showmanual)"; \ + apt-get update; \ + apt-get install -y --no-install-recommends \ + libargon2-dev \ + libcurl4-openssl-dev \ + libedit-dev \ + libonig-dev \ + libsodium-dev \ + libsqlite3-dev \ + libssl-dev \ + libxml2-dev \ + zlib1g-dev \ + ${PHP_EXTRA_BUILD_DEPS:-} \ + ; \ + rm -rf /var/lib/apt/lists/*; \ + \ + export \ + CFLAGS="$PHP_CFLAGS" \ + CPPFLAGS="$PHP_CPPFLAGS" \ + LDFLAGS="$PHP_LDFLAGS" \ + ; \ + docker-php-source extract; \ + cd /usr/src/php; \ + gnuArch="$(dpkg-architecture --query DEB_BUILD_GNU_TYPE)"; \ + debMultiarch="$(dpkg-architecture --query DEB_BUILD_MULTIARCH)"; \ +# https://bugs.php.net/bug.php?id=74125 + if [ ! -d /usr/include/curl ]; then \ + ln -sT "/usr/include/$debMultiarch/curl" /usr/local/include/curl; \ + fi; \ + ./configure \ + --build="$gnuArch" \ + --with-config-file-path="$PHP_INI_DIR" \ + --with-config-file-scan-dir="$PHP_INI_DIR/conf.d" \ + \ +# make sure invalid --configure-flags are fatal errors intead of just warnings + --enable-option-checking=fatal \ + \ +# https://github.com/docker-library/php/issues/439 + --with-mhash \ + \ +# --enable-ftp is included here because ftp_ssl_connect() needs ftp to be compiled statically (see https://github.com/docker-library/php/issues/236) + --enable-ftp \ +# --enable-mbstring is included here because otherwise there's no way to get pecl to use it properly (see https://github.com/docker-library/php/issues/195) + --enable-mbstring \ +# --enable-mysqlnd is included here because it's harder to compile after the fact than extensions are (since it's a plugin for several extensions, not an extension in itself) + --enable-mysqlnd \ +# https://wiki.php.net/rfc/argon2_password_hash (7.2+) + --with-password-argon2 \ +# https://wiki.php.net/rfc/libsodium + --with-sodium=shared \ +# always build against system sqlite3 (https://github.com/php/php-src/commit/6083a387a81dbbd66d6316a3a12a63f06d5f7109) + --with-pdo-sqlite=/usr \ + --with-sqlite3=/usr \ + \ + --with-curl \ + --with-libedit \ + --with-openssl \ + --with-zlib \ + \ +# in PHP 7.4+, the pecl/pear installers are officially deprecated (requiring an explicit "--with-pear") and will be removed in PHP 8+; see also https://github.com/docker-library/php/issues/846#issuecomment-505638494 + --with-pear \ + \ +# bundled pcre does not support JIT on s390x +# https://manpages.debian.org/stretch/libpcre3-dev/pcrejit.3.en.html#AVAILABILITY_OF_JIT_SUPPORT + $(test "$gnuArch" = 's390x-linux-gnu' && echo '--without-pcre-jit') \ + --with-libdir="lib/$debMultiarch" \ + \ + ${PHP_EXTRA_CONFIGURE_ARGS:-} \ + ; \ + make -j "$(nproc)"; \ + find -type f -name '*.a' -delete; \ + make install; \ + find /usr/local/bin /usr/local/sbin -type f -executable -exec strip --strip-all '{}' + || true; \ + make clean; \ + \ +# https://github.com/docker-library/php/issues/692 (copy default example "php.ini" files somewhere easily discoverable) + cp -v php.ini-* "$PHP_INI_DIR/"; \ + \ + cd /; \ + docker-php-source delete; \ + \ +# reset apt-mark's "manual" list so that "purge --auto-remove" will remove all build dependencies + apt-mark auto '.*' > /dev/null; \ + [ -z "$savedAptMark" ] || apt-mark manual $savedAptMark; \ + find /usr/local -type f -executable -exec ldd '{}' ';' \ + | awk '/=>/ { print $(NF-1) }' \ + | sort -u \ + | xargs -r dpkg-query --search \ + | cut -d: -f1 \ + | sort -u \ + | xargs -r apt-mark manual \ + ; \ + #apt-get purge -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false; \ + #\ +# update pecl channel definitions https://github.com/docker-library/php/issues/443 + pecl update-channels; \ + rm -rf /tmp/pear ~/.pearrc; \ +# smoke test + php --version + +COPY images/runtime/php/8.3/docker-php-ext-* images/runtime/php/8.3/docker-php-entrypoint /usr/local/bin/ +RUN chmod +x /usr/local/bin/docker-php-* + +# sodium was built as a shared module (so that it can be replaced later if so desired), so let's enable it too (https://github.com/docker-library/php/issues/598) +RUN docker-php-ext-enable sodium \ + && rm -rf /var/lib/apt/lists/* + +ENTRYPOINT ["docker-php-entrypoint"] +#### +# https://httpd.apache.org/docs/2.4/stopping.html#gracefulstop +STOPSIGNAL SIGWINCH + +COPY images/runtime/php/8.3/apache2-foreground /usr/local/bin/ +RUN chmod +x /usr/local/bin/apache2-foreground +WORKDIR /var/www/html + +EXPOSE 80 +CMD ["apache2-foreground"] +#### + +## base dockerfile +SHELL ["/bin/bash", "-c"] +ARG PHP_VERSION +ENV PHP_VERSION ${PHP_VERSION} + +RUN a2enmod rewrite expires include deflate remoteip headers + +ENV APACHE_RUN_USER www-data +# Edit the default DocumentRoot setting +ENV APACHE_DOCUMENT_ROOT /home/site/wwwroot +RUN sed -ri -e 's!/var/www/html!${APACHE_DOCUMENT_ROOT}!g' /etc/apache2/sites-available/*.conf +RUN sed -ri -e 's!/var/www/!${APACHE_DOCUMENT_ROOT}!g' /etc/apache2/apache2.conf /etc/apache2/conf-available/*.conf +# Edit the default port setting +ENV APACHE_PORT 8080 +RUN sed -ri -e 's!!!g' /etc/apache2/sites-available/*.conf +RUN sed -ri -e 's!!!g' /etc/apache2/sites-available/*.conf +RUN sed -ri -e 's!Listen 80!Listen ${APACHE_PORT}!g' /etc/apache2/ports.conf +# Edit Configuration to instruct Apache on how to process PHP files +RUN echo -e '\n SetHandler application/x-httpd-php\n' >> /etc/apache2/apache2.conf +# Disable Apache2 server signature +RUN echo -e 'ServerSignature Off' >> /etc/apache2/apache2.conf +RUN echo -e 'ServerTokens Prod' >> /etc/apache2/apache2.conf +RUN { \ + echo ''; \ + echo ' Order deny,allow'; \ + echo ' Deny from all'; \ + echo ''; \ +} >> /etc/apache2/apache2.conf + +# Install common PHP extensions +# TEMPORARY: Holding odbc related packages from upgrading. +RUN apt-mark hold msodbcsql18 odbcinst1debian2 odbcinst unixodbc unixodbc-dev \ + && apt-get update \ + && apt-get upgrade -y \ + && ln -s /usr/lib/x86_64-linux-gnu/libldap.so /usr/lib/libldap.so \ + && ln -s /usr/lib/x86_64-linux-gnu/liblber.so /usr/lib/liblber.so \ + && ln -s /usr/include/x86_64-linux-gnu/gmp.h /usr/include/gmp.h + +RUN set -eux; \ + if [[ $PHP_VERSION == 7.4.* || $PHP_VERSION == 8.0.* || $PHP_VERSION == 8.1.* || $PHP_VERSION == 8.2.* || $PHP_VERSION == 8.3.* ]]; then \ + apt-get update \ + && apt-get upgrade -y \ + && apt-get install -y --no-install-recommends apache2-dev \ + && docker-php-ext-configure gd --with-freetype --with-jpeg \ + && PHP_OPENSSL=yes docker-php-ext-configure imap --with-kerberos --with-imap-ssl ; \ + else \ + docker-php-ext-configure gd --with-png-dir=/usr --with-jpeg-dir=/usr \ + && docker-php-ext-configure imap --with-kerberos --with-imap-ssl ; \ + fi + +RUN docker-php-ext-configure pdo_odbc --with-pdo-odbc=unixODBC,/usr \ + && docker-php-ext-install gd \ + mysqli \ + opcache \ + pdo \ + pdo_mysql \ + pdo_pgsql \ + pgsql \ + ldap \ + intl \ + gmp \ + zip \ + bcmath \ + mbstring \ + pcntl \ + calendar \ + exif \ + gettext \ + imap \ + tidy \ + shmop \ + soap \ + sockets \ + sysvmsg \ + sysvsem \ + sysvshm \ + pdo_odbc \ +# deprecated from 7.4, so should be avoided in general template for all php versions +# wddx \ +# xmlrpc \ + xsl + +RUN set -eux; \ + if [[ $PHP_VERSION != 5.* ]]; then \ + pecl install redis && docker-php-ext-enable redis; \ + fi + +# https://github.com/Imagick/imagick/issues/331 +# https://github.com/ihneo/php/pull/24/files +RUN set -eux; \ + if [[ $PHP_VERSION != 8.3.* ]]; then \ + pecl install imagick && docker-php-ext-enable imagick; \ + fi + +# deprecated from 5.*, so should be avoided +RUN set -eux; \ + if [[ $PHP_VERSION != 5.* && $PHP_VERSION != 7.0.* ]]; then \ + echo "pecl/mongodb requires PHP (version >= 7.1.0, version <= 7.99.99)"; \ + pecl install mongodb && docker-php-ext-enable mongodb; \ + fi + +# https://github.com/microsoft/mysqlnd_azure, Supports 7.2*, 7.3* and 7.4* +RUN set -eux; \ + if [[ $PHP_VERSION == 7.2.* || $PHP_VERSION == 7.3.* || $PHP_VERSION == 7.4.* ]]; then \ + echo "pecl/mysqlnd_azure requires PHP (version >= 7.2.*, version <= 7.99.99)"; \ + pecl install mysqlnd_azure \ + && docker-php-ext-enable mysqlnd_azure; \ + fi + +# Install the Microsoft SQL Server PDO driver on supported versions only. +# - https://docs.microsoft.com/en-us/sql/connect/php/installation-tutorial-linux-mac +# - https://docs.microsoft.com/en-us/sql/connect/odbc/linux-mac/installing-the-microsoft-odbc-driver-for-sql-server +# For php|8.0, latest stable version of pecl/sqlsrv, pecl/pdo_sqlsrv is 5.11.0 +RUN set -eux; \ + if [[ $PHP_VERSION == 8.0.* ]]; then \ + pecl install sqlsrv-5.11.0 pdo_sqlsrv-5.11.0 \ + && echo extension=pdo_sqlsrv.so >> $(php --ini | grep "Scan for additional .ini files" | sed -e "s|.*:\s*||")/30-pdo_sqlsrv.ini \ + && echo extension=sqlsrv.so >> $(php --ini | grep "Scan for additional .ini files" | sed -e "s|.*:\s*||")/20-sqlsrv.ini; \ + fi + +# Latest pecl/sqlsrv, pecl/pdo_sqlsrv requires PHP (version >= 8.1.0) +RUN set -eux; \ + if [[ $PHP_VERSION == 8.1.* || $PHP_VERSION == 8.2.* || $PHP_VERSION == 8.3.* ]]; then \ + pecl install sqlsrv pdo_sqlsrv \ + && echo extension=pdo_sqlsrv.so >> `php --ini | grep "Scan for additional .ini files" | sed -e "s|.*:\s*||"`/30-pdo_sqlsrv.ini \ + && echo extension=sqlsrv.so >> `php --ini | grep "Scan for additional .ini files" | sed -e "s|.*:\s*||"`/20-sqlsrv.ini; \ + fi + +RUN { \ + echo 'opcache.memory_consumption=128'; \ + echo 'opcache.interned_strings_buffer=8'; \ + echo 'opcache.max_accelerated_files=4000'; \ + echo 'opcache.revalidate_freq=60'; \ + echo 'opcache.fast_shutdown=1'; \ + echo 'opcache.enable_cli=1'; \ + } > /usr/local/etc/php/conf.d/opcache-recommended.ini + +# NOTE: zend_extension=opcache is already configured via docker-php-ext-install, above +RUN { \ + echo 'error_log=/var/log/apache2/php-error.log'; \ + echo 'display_errors=Off'; \ + echo 'log_errors=On'; \ + echo 'display_startup_errors=Off'; \ + echo 'date.timezone=UTC'; \ + } > /usr/local/etc/php/conf.d/php.ini + +RUN set -x \ + && docker-php-source extract \ + && cd /usr/src/php/ext/odbc \ + && phpize \ + && sed -ri 's@^ *test +"\$PHP_.*" *= *"no" *&& *PHP_.*=yes *$@#&@g' configure \ + && chmod +x ./configure \ + && ./configure --with-unixODBC=shared,/usr \ + && docker-php-ext-install odbc \ + && rm -rf /var/lib/apt/lists/* + +RUN rm -rf /tmp/oryx + +ENV LANG="C.UTF-8" \ + LANGUAGE="C.UTF-8" \ + LC_ALL="C.UTF-8" + +# dockerfile +# Bake Application Insights key from pipeline variable into final image +ARG AI_CONNECTION_STRING +ENV ORYX_AI_CONNECTION_STRING=${AI_CONNECTION_STRING} +#Bake in client certificate path into image to avoid downloading it +ENV PATH_CA_CERTIFICATE="/etc/ssl/certs/ca-certificate.crt" + +# Oryx++ Builder variables +ENV CNB_STACK_ID="oryx.stacks.skeleton" +LABEL io.buildpacks.stack.id="oryx.stacks.skeleton" + +COPY --from=startupCmdGen /opt/startupcmdgen/startupcmdgen /opt/startupcmdgen/startupcmdgen +RUN ln -s /opt/startupcmdgen/startupcmdgen /usr/local/bin/oryx \ + && rm -rf /tmp/oryx \ + # Temporarily making sure apache2-foreground has permission + && chmod +x /usr/local/bin/apache2-foreground + +ENV LANG="C.UTF-8" \ + LANGUAGE="C.UTF-8" \ + LC_ALL="C.UTF-8" \ No newline at end of file diff --git a/images/runtime/php/8.3/bullseye.Dockerfile b/images/runtime/php/8.3/bullseye.Dockerfile new file mode 100644 index 000000000..abf5f0ebc --- /dev/null +++ b/images/runtime/php/8.3/bullseye.Dockerfile @@ -0,0 +1,461 @@ +ARG BASE_IMAGE + +# Startup script generator +FROM mcr.microsoft.com/oss/go/microsoft/golang:1.20-bullseye as startupCmdGen + +# GOPATH is set to "/go" in the base image +WORKDIR /go/src +COPY src/startupscriptgenerator/src . +ARG GIT_COMMIT=unspecified +ARG BUILD_NUMBER=unspecified +ARG RELEASE_TAG_NAME=unspecified +ENV RELEASE_TAG_NAME=${RELEASE_TAG_NAME} +ENV GIT_COMMIT=${GIT_COMMIT} +ENV BUILD_NUMBER=${BUILD_NUMBER} +RUN chmod +x build.sh && ./build.sh php /opt/startupcmdgen/startupcmdgen + +# From https://github.com/docker-library/php.git +FROM ${BASE_IMAGE} +ARG IMAGES_DIR=/tmp/oryx/images + +# Install the Microsoft SQL Server PDO driver on supported versions only. +# - https://docs.microsoft.com/en-us/sql/connect/php/installation-tutorial-linux-mac +# - https://docs.microsoft.com/en-us/sql/connect/odbc/linux-mac/installing-the-microsoft-odbc-driver-for-sql-server +RUN set -eux \ + && apt-get update \ + && apt-get install -y --no-install-recommends \ + gnupg2 \ + apt-transport-https \ + && curl https://packages.microsoft.com/keys/microsoft.asc | apt-key add - \ + && curl https://packages.microsoft.com/config/debian/11/prod.list > /etc/apt/sources.list.d/mssql-release.list \ + && apt-get update \ + && ACCEPT_EULA=Y apt-get install -y msodbcsql17 msodbcsql18=18.1.2.1-1 odbcinst1debian2=2.3.7 odbcinst=2.3.7 unixodbc=2.3.7 unixodbc-dev=2.3.7 + +ENV PHP_INI_DIR /usr/local/etc/php +RUN set -eux; \ + mkdir -p "$PHP_INI_DIR/conf.d"; \ +# allow running as an arbitrary user (https://github.com/docker-library/php/issues/743) + [ ! -d /var/www/html ]; \ + mkdir -p /var/www/html; \ + chown www-data:www-data /var/www/html; \ + chmod 777 /var/www/html +#### +ENV APACHE_CONFDIR /etc/apache2 +ENV APACHE_ENVVARS $APACHE_CONFDIR/envvars + +RUN set -eux; \ + apt-get update; \ + apt-get install -y --no-install-recommends apache2; \ + rm -rf /var/lib/apt/lists/*; \ + \ +# generically convert lines like +# export APACHE_RUN_USER=www-data +# into +# : ${APACHE_RUN_USER:=www-data} +# export APACHE_RUN_USER +# so that they can be overridden at runtime ("-e APACHE_RUN_USER=...") + sed -ri 's/^export ([^=]+)=(.*)$/: ${\1:=\2}\nexport \1/' "$APACHE_ENVVARS"; \ + \ +# setup directories and permissions + . "$APACHE_ENVVARS"; \ + for dir in \ + "$APACHE_LOCK_DIR" \ + "$APACHE_RUN_DIR" \ + "$APACHE_LOG_DIR" \ + ; do \ + rm -rvf "$dir"; \ + mkdir -p "$dir"; \ + chown "$APACHE_RUN_USER:$APACHE_RUN_GROUP" "$dir"; \ +# allow running as an arbitrary user (https://github.com/docker-library/php/issues/743) + chmod 777 "$dir"; \ + done; \ + \ +# delete the "index.html" that installing Apache drops in here + rm -rvf /var/www/html/*; \ + \ +# logs should go to stdout / stderr + ln -sfT /dev/stderr "$APACHE_LOG_DIR/error.log"; \ + ln -sfT /dev/stdout "$APACHE_LOG_DIR/access.log"; \ + ln -sfT /dev/stdout "$APACHE_LOG_DIR/other_vhosts_access.log"; \ + chown -R --no-dereference "$APACHE_RUN_USER:$APACHE_RUN_GROUP" "$APACHE_LOG_DIR" + +# Apache + PHP requires preforking Apache for best results +RUN a2dismod mpm_event && a2enmod mpm_prefork + +# PHP files should be handled by PHP, and should be preferred over any other file type +RUN { \ + echo ''; \ + echo '\tSetHandler application/x-httpd-php'; \ + echo ''; \ + echo; \ + echo 'DirectoryIndex disabled'; \ + echo 'DirectoryIndex index.php index.html'; \ + echo; \ + echo ''; \ + echo '\tOptions -Indexes'; \ + echo '\tAllowOverride All'; \ + echo ''; \ + } | tee "$APACHE_CONFDIR/conf-available/docker-php.conf" \ + && a2enconf docker-php + +ENV PHP_EXTRA_BUILD_DEPS apache2-dev +ENV PHP_EXTRA_CONFIGURE_ARGS --with-apxs2 --disable-cgi ac_cv_func_mmap=no +#### + +# Apply stack smash protection to functions using local buffers and alloca() +# Make PHP's main executable position-independent (improves ASLR security mechanism, and has no performance impact on x86_64) +# Enable optimization (-O2) +# Enable linker optimization (this sorts the hash buckets to improve cache locality, and is non-default) +# Adds GNU HASH segments to generated executables (this is used if present, and is much faster than sysv hash; in this configuration, sysv hash is also generated) +# https://github.com/docker-library/php/issues/272 +# -D_LARGEFILE_SOURCE and -D_FILE_OFFSET_BITS=64 (https://www.php.net/manual/en/intro.filesystem.php) +ENV PHP_CFLAGS="-fstack-protector-strong -fpic -fpie -O2 -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64" +ENV PHP_CPPFLAGS="$PHP_CFLAGS" +ENV PHP_LDFLAGS="-Wl,-O1 -Wl,--hash-style=both -pie" + +ENV GPG_KEYS 1198C0117593497A5EC5C199286AF1F9897469DC AFD8691FDAEDF03BDF6E460563F15A9B715376CA C28D937575603EB4ABB725861C0779DC5C0A9DE4 + +ENV PHP_VERSION 8.3.4 +ENV PHP_URL="https://www.php.net/get/php-8.3.4.tar.xz/from/this/mirror" PHP_ASC_URL="https://www.php.net/get/php-8.3.4.tar.xz.asc/from/this/mirror" +ENV PHP_SHA256="39a337036a546e5c28aea76cf424ac172db5156bd8a8fd85252e389409a5ba63" PHP_MD5="" + +RUN set -eux; \ + \ + savedAptMark="$(apt-mark showmanual)"; \ + apt-get update; \ + apt-get install -y --no-install-recommends gnupg dirmngr; \ + rm -rf /var/lib/apt/lists/*; \ + \ + mkdir -p /usr/src; \ + cd /usr/src; \ + \ + curl -fsSL -o php.tar.xz "$PHP_URL"; \ + \ + if [ -n "$PHP_SHA256" ]; then \ + echo "$PHP_SHA256 *php.tar.xz" | sha256sum -c -; \ + fi; \ + if [ -n "$PHP_MD5" ]; then \ + echo "$PHP_MD5 *php.tar.xz" | md5sum -c -; \ + fi; \ + \ + if [ -n "$PHP_ASC_URL" ]; then \ + curl -fsSL -o php.tar.xz.asc "$PHP_ASC_URL"; \ + export GNUPGHOME="$(mktemp -d)"; \ + ${IMAGES_DIR}/receiveGpgKeys.sh $GPG_KEYS; \ + gpg --batch --verify php.tar.xz.asc php.tar.xz; \ + gpgconf --kill all; \ + rm -rf "$GNUPGHOME"; \ + fi; \ + \ + apt-mark auto '.*' > /dev/null; \ + apt-mark manual $savedAptMark > /dev/null; \ + apt-get purge -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false + +COPY images/runtime/php/8.3/docker-php-source /usr/local/bin/ +RUN chmod +x /usr/local/bin/docker-php-source + +RUN set -eux; \ + \ + + savedAptMark="$(apt-mark showmanual)"; \ + apt-get update; \ + apt-get install -y --no-install-recommends \ + libargon2-dev \ + libcurl4-openssl-dev \ + libedit-dev \ + libonig-dev \ + libsodium-dev \ + libsqlite3-dev \ + libssl-dev \ + libxml2-dev \ + zlib1g-dev \ + ${PHP_EXTRA_BUILD_DEPS:-} \ + ; \ + rm -rf /var/lib/apt/lists/*; \ + \ + export \ + CFLAGS="$PHP_CFLAGS" \ + CPPFLAGS="$PHP_CPPFLAGS" \ + LDFLAGS="$PHP_LDFLAGS" \ + ; \ + docker-php-source extract; \ + cd /usr/src/php; \ + gnuArch="$(dpkg-architecture --query DEB_BUILD_GNU_TYPE)"; \ + debMultiarch="$(dpkg-architecture --query DEB_BUILD_MULTIARCH)"; \ +# https://bugs.php.net/bug.php?id=74125 + if [ ! -d /usr/include/curl ]; then \ + ln -sT "/usr/include/$debMultiarch/curl" /usr/local/include/curl; \ + fi; \ + ./configure \ + --build="$gnuArch" \ + --with-config-file-path="$PHP_INI_DIR" \ + --with-config-file-scan-dir="$PHP_INI_DIR/conf.d" \ + \ +# make sure invalid --configure-flags are fatal errors intead of just warnings + --enable-option-checking=fatal \ + \ +# https://github.com/docker-library/php/issues/439 + --with-mhash \ + \ +# --enable-ftp is included here because ftp_ssl_connect() needs ftp to be compiled statically (see https://github.com/docker-library/php/issues/236) + --enable-ftp \ +# --enable-mbstring is included here because otherwise there's no way to get pecl to use it properly (see https://github.com/docker-library/php/issues/195) + --enable-mbstring \ +# --enable-mysqlnd is included here because it's harder to compile after the fact than extensions are (since it's a plugin for several extensions, not an extension in itself) + --enable-mysqlnd \ +# https://wiki.php.net/rfc/argon2_password_hash (7.2+) + --with-password-argon2 \ +# https://wiki.php.net/rfc/libsodium + --with-sodium=shared \ +# always build against system sqlite3 (https://github.com/php/php-src/commit/6083a387a81dbbd66d6316a3a12a63f06d5f7109) + --with-pdo-sqlite=/usr \ + --with-sqlite3=/usr \ + \ + --with-curl \ + --with-libedit \ + --with-openssl \ + --with-zlib \ + \ +# in PHP 7.4+, the pecl/pear installers are officially deprecated (requiring an explicit "--with-pear") and will be removed in PHP 8+; see also https://github.com/docker-library/php/issues/846#issuecomment-505638494 + --with-pear \ + \ +# bundled pcre does not support JIT on s390x +# https://manpages.debian.org/stretch/libpcre3-dev/pcrejit.3.en.html#AVAILABILITY_OF_JIT_SUPPORT + $(test "$gnuArch" = 's390x-linux-gnu' && echo '--without-pcre-jit') \ + --with-libdir="lib/$debMultiarch" \ + \ + ${PHP_EXTRA_CONFIGURE_ARGS:-} \ + ; \ + make -j "$(nproc)"; \ + find -type f -name '*.a' -delete; \ + make install; \ + find /usr/local/bin /usr/local/sbin -type f -executable -exec strip --strip-all '{}' + || true; \ + make clean; \ + \ +# https://github.com/docker-library/php/issues/692 (copy default example "php.ini" files somewhere easily discoverable) + cp -v php.ini-* "$PHP_INI_DIR/"; \ + \ + cd /; \ + docker-php-source delete; \ + \ +# reset apt-mark's "manual" list so that "purge --auto-remove" will remove all build dependencies + apt-mark auto '.*' > /dev/null; \ + [ -z "$savedAptMark" ] || apt-mark manual $savedAptMark; \ + find /usr/local -type f -executable -exec ldd '{}' ';' \ + | awk '/=>/ { print $(NF-1) }' \ + | sort -u \ + | xargs -r dpkg-query --search \ + | cut -d: -f1 \ + | sort -u \ + | xargs -r apt-mark manual \ + ; \ + apt-get purge -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false; \ + \ +# update pecl channel definitions https://github.com/docker-library/php/issues/443 + pecl update-channels; \ + rm -rf /tmp/pear ~/.pearrc; \ +# smoke test + php --version + +COPY images/runtime/php/8.3/docker-php-ext-* images/runtime/php/8.3/docker-php-entrypoint /usr/local/bin/ +RUN chmod +x /usr/local/bin/docker-php-* + +# sodium was built as a shared module (so that it can be replaced later if so desired), so let's enable it too (https://github.com/docker-library/php/issues/598) +RUN docker-php-ext-enable sodium \ + && rm -rf /var/lib/apt/lists/* + +ENTRYPOINT ["docker-php-entrypoint"] +#### +# https://httpd.apache.org/docs/2.4/stopping.html#gracefulstop +STOPSIGNAL SIGWINCH + +COPY images/runtime/php/8.3/apache2-foreground /usr/local/bin/ +RUN chmod +x /usr/local/bin/apache2-foreground +WORKDIR /var/www/html + +EXPOSE 80 +CMD ["apache2-foreground"] +#### + +## base dockerfile +SHELL ["/bin/bash", "-c"] +ARG PHP_VERSION +ENV PHP_VERSION ${PHP_VERSION} + +RUN a2enmod rewrite expires include deflate remoteip headers + +ENV APACHE_RUN_USER www-data +# Edit the default DocumentRoot setting +ENV APACHE_DOCUMENT_ROOT /home/site/wwwroot +RUN sed -ri -e 's!/var/www/html!${APACHE_DOCUMENT_ROOT}!g' /etc/apache2/sites-available/*.conf +RUN sed -ri -e 's!/var/www/!${APACHE_DOCUMENT_ROOT}!g' /etc/apache2/apache2.conf /etc/apache2/conf-available/*.conf +# Edit the default port setting +ENV APACHE_PORT 8080 +RUN sed -ri -e 's!!!g' /etc/apache2/sites-available/*.conf +RUN sed -ri -e 's!!!g' /etc/apache2/sites-available/*.conf +RUN sed -ri -e 's!Listen 80!Listen ${APACHE_PORT}!g' /etc/apache2/ports.conf +# Edit Configuration to instruct Apache on how to process PHP files +RUN echo -e '\n SetHandler application/x-httpd-php\n' >> /etc/apache2/apache2.conf +# Disable Apache2 server signature +RUN echo -e 'ServerSignature Off' >> /etc/apache2/apache2.conf +RUN echo -e 'ServerTokens Prod' >> /etc/apache2/apache2.conf +RUN { \ + echo ''; \ + echo ' Order deny,allow'; \ + echo ' Deny from all'; \ + echo ''; \ +} >> /etc/apache2/apache2.conf + +# Install common PHP extensions +# TEMPORARY: Holding odbc related packages from upgrading. +RUN apt-mark hold msodbcsql18 odbcinst1debian2 odbcinst unixodbc unixodbc-dev \ + && apt-get update \ + && apt-get upgrade -y \ + && ln -s /usr/lib/x86_64-linux-gnu/libldap.so /usr/lib/libldap.so \ + && ln -s /usr/lib/x86_64-linux-gnu/liblber.so /usr/lib/liblber.so \ + && ln -s /usr/include/x86_64-linux-gnu/gmp.h /usr/include/gmp.h + +RUN set -eux; \ + if [[ $PHP_VERSION == 7.4.* || $PHP_VERSION == 8.0.* || $PHP_VERSION == 8.1.* || $PHP_VERSION == 8.2.* || $PHP_VERSION == 8.3.* ]]; then \ + apt-get update \ + && apt-get upgrade -y \ + && apt-get install -y --no-install-recommends apache2-dev \ + && docker-php-ext-configure gd --with-freetype --with-jpeg \ + && PHP_OPENSSL=yes docker-php-ext-configure imap --with-kerberos --with-imap-ssl ; \ + else \ + docker-php-ext-configure gd --with-png-dir=/usr --with-jpeg-dir=/usr \ + && docker-php-ext-configure imap --with-kerberos --with-imap-ssl ; \ + fi + +RUN docker-php-ext-configure pdo_odbc --with-pdo-odbc=unixODBC,/usr \ + && docker-php-ext-install gd \ + mysqli \ + opcache \ + pdo \ + pdo_mysql \ + pdo_pgsql \ + pgsql \ + ldap \ + intl \ + gmp \ + zip \ + bcmath \ + mbstring \ + pcntl \ + calendar \ + exif \ + gettext \ + imap \ + tidy \ + shmop \ + soap \ + sockets \ + sysvmsg \ + sysvsem \ + sysvshm \ + pdo_odbc \ +# deprecated from 7.4, so should be avoided in general template for all php versions +# wddx \ +# xmlrpc \ + xsl + +RUN set -eux; \ + if [[ $PHP_VERSION != 5.* ]]; then \ + pecl install redis && docker-php-ext-enable redis; \ + fi + +# https://github.com/Imagick/imagick/issues/331 +# https://github.com/ihneo/php/pull/24/files +RUN set -eux; \ + if [[ $PHP_VERSION != 8.3.* ]]; then \ + pecl install imagick && docker-php-ext-enable imagick; \ + fi + +# deprecated from 5.*, so should be avoided +RUN set -eux; \ + if [[ $PHP_VERSION != 5.* && $PHP_VERSION != 7.0.* ]]; then \ + echo "pecl/mongodb requires PHP (version >= 7.1.0, version <= 7.99.99)"; \ + pecl install mongodb && docker-php-ext-enable mongodb; \ + fi + +# https://github.com/microsoft/mysqlnd_azure, Supports 7.2*, 7.3* and 7.4* +RUN set -eux; \ + if [[ $PHP_VERSION == 7.2.* || $PHP_VERSION == 7.3.* || $PHP_VERSION == 7.4.* ]]; then \ + echo "pecl/mysqlnd_azure requires PHP (version >= 7.2.*, version <= 7.99.99)"; \ + pecl install mysqlnd_azure \ + && docker-php-ext-enable mysqlnd_azure; \ + fi + +# Install the Microsoft SQL Server PDO driver on supported versions only. +# - https://docs.microsoft.com/en-us/sql/connect/php/installation-tutorial-linux-mac +# - https://docs.microsoft.com/en-us/sql/connect/odbc/linux-mac/installing-the-microsoft-odbc-driver-for-sql-server +# For php|8.0, latest stable version of pecl/sqlsrv, pecl/pdo_sqlsrv is 5.11.0 +RUN set -eux; \ + if [[ $PHP_VERSION == 8.0.* ]]; then \ + pecl install sqlsrv-5.11.0 pdo_sqlsrv-5.11.0 \ + && echo extension=pdo_sqlsrv.so >> $(php --ini | grep "Scan for additional .ini files" | sed -e "s|.*:\s*||")/30-pdo_sqlsrv.ini \ + && echo extension=sqlsrv.so >> $(php --ini | grep "Scan for additional .ini files" | sed -e "s|.*:\s*||")/20-sqlsrv.ini; \ + fi + +# Latest pecl/sqlsrv, pecl/pdo_sqlsrv requires PHP (version >= 8.1.0) +RUN set -eux; \ + if [[ $PHP_VERSION == 8.1.* || $PHP_VERSION == 8.2.* || $PHP_VERSION == 8.3.* ]]; then \ + pecl install sqlsrv pdo_sqlsrv \ + && echo extension=pdo_sqlsrv.so >> `php --ini | grep "Scan for additional .ini files" | sed -e "s|.*:\s*||"`/30-pdo_sqlsrv.ini \ + && echo extension=sqlsrv.so >> `php --ini | grep "Scan for additional .ini files" | sed -e "s|.*:\s*||"`/20-sqlsrv.ini; \ + fi + +RUN { \ + echo 'opcache.memory_consumption=128'; \ + echo 'opcache.interned_strings_buffer=8'; \ + echo 'opcache.max_accelerated_files=4000'; \ + echo 'opcache.revalidate_freq=60'; \ + echo 'opcache.fast_shutdown=1'; \ + echo 'opcache.enable_cli=1'; \ + } > /usr/local/etc/php/conf.d/opcache-recommended.ini + +# NOTE: zend_extension=opcache is already configured via docker-php-ext-install, above +RUN { \ + echo 'error_log=/var/log/apache2/php-error.log'; \ + echo 'display_errors=Off'; \ + echo 'log_errors=On'; \ + echo 'display_startup_errors=Off'; \ + echo 'date.timezone=UTC'; \ + } > /usr/local/etc/php/conf.d/php.ini + +RUN set -x \ + && docker-php-source extract \ + && cd /usr/src/php/ext/odbc \ + && phpize \ + && sed -ri 's@^ *test +"\$PHP_.*" *= *"no" *&& *PHP_.*=yes *$@#&@g' configure \ + && chmod +x ./configure \ + && ./configure --with-unixODBC=shared,/usr \ + && docker-php-ext-install odbc \ + && rm -rf /var/lib/apt/lists/* + +RUN rm -rf /tmp/oryx + +ENV LANG="C.UTF-8" \ + LANGUAGE="C.UTF-8" \ + LC_ALL="C.UTF-8" + +# dockerfile +# Bake Application Insights key from pipeline variable into final image +ARG AI_CONNECTION_STRING +ENV ORYX_AI_CONNECTION_STRING=${AI_CONNECTION_STRING} +#Bake in client certificate path into image to avoid downloading it +ENV PATH_CA_CERTIFICATE="/etc/ssl/certs/ca-certificate.crt" + +# Oryx++ Builder variables +ENV CNB_STACK_ID="oryx.stacks.skeleton" +LABEL io.buildpacks.stack.id="oryx.stacks.skeleton" + +COPY --from=startupCmdGen /opt/startupcmdgen/startupcmdgen /opt/startupcmdgen/startupcmdgen +RUN ln -s /opt/startupcmdgen/startupcmdgen /usr/local/bin/oryx \ + && rm -rf /tmp/oryx \ + # Temporarily making sure apache2-foreground has permission + && chmod +x /usr/local/bin/apache2-foreground + +ENV LANG="C.UTF-8" \ + LANGUAGE="C.UTF-8" \ + LC_ALL="C.UTF-8" \ No newline at end of file diff --git a/images/runtime/php/8.3/buster.Dockerfile b/images/runtime/php/8.3/buster.Dockerfile new file mode 100644 index 000000000..371bbdc7b --- /dev/null +++ b/images/runtime/php/8.3/buster.Dockerfile @@ -0,0 +1,462 @@ +ARG BASE_IMAGE + +# Startup script generator +FROM mcr.microsoft.com/oss/go/microsoft/golang:1.20-bullseye as startupCmdGen + +# GOPATH is set to "/go" in the base image +WORKDIR /go/src +COPY src/startupscriptgenerator/src . +ARG GIT_COMMIT=unspecified +ARG BUILD_NUMBER=unspecified +ARG RELEASE_TAG_NAME=unspecified +ENV RELEASE_TAG_NAME=${RELEASE_TAG_NAME} +ENV GIT_COMMIT=${GIT_COMMIT} +ENV BUILD_NUMBER=${BUILD_NUMBER} +RUN chmod +x build.sh && ./build.sh php /opt/startupcmdgen/startupcmdgen + +# From https://github.com/docker-library/php.git +FROM ${BASE_IMAGE} +ARG IMAGES_DIR=/tmp/oryx/images + +# Install the Microsoft SQL Server PDO driver on supported versions only. +# - https://docs.microsoft.com/en-us/sql/connect/php/installation-tutorial-linux-mac +# - https://docs.microsoft.com/en-us/sql/connect/odbc/linux-mac/installing-the-microsoft-odbc-driver-for-sql-server +RUN set -eux \ + && apt-get update \ + && apt-get install -y --no-install-recommends \ + gnupg2 \ + apt-transport-https \ + && curl https://packages.microsoft.com/keys/microsoft.asc | apt-key add - \ + && curl https://packages.microsoft.com/config/debian/10/prod.list > /etc/apt/sources.list.d/mssql-release.list \ + && apt-get update \ + && ACCEPT_EULA=Y apt-get install -y msodbcsql17 msodbcsql18=18.1.2.1-1 odbcinst1debian2=2.3.7 odbcinst=2.3.7 unixodbc=2.3.7 unixodbc-dev=2.3.7 + +ENV PHP_INI_DIR /usr/local/etc/php +RUN set -eux; \ + mkdir -p "$PHP_INI_DIR/conf.d"; \ +# allow running as an arbitrary user (https://github.com/docker-library/php/issues/743) + [ ! -d /var/www/html ]; \ + mkdir -p /var/www/html; \ + chown www-data:www-data /var/www/html; \ + chmod 777 /var/www/html +#### +ENV APACHE_CONFDIR /etc/apache2 +ENV APACHE_ENVVARS $APACHE_CONFDIR/envvars + +RUN set -eux; \ + apt-get update; \ + apt-get install -y --no-install-recommends apache2; \ + rm -rf /var/lib/apt/lists/*; \ + \ +# generically convert lines like +# export APACHE_RUN_USER=www-data +# into +# : ${APACHE_RUN_USER:=www-data} +# export APACHE_RUN_USER +# so that they can be overridden at runtime ("-e APACHE_RUN_USER=...") + sed -ri 's/^export ([^=]+)=(.*)$/: ${\1:=\2}\nexport \1/' "$APACHE_ENVVARS"; \ + \ +# setup directories and permissions + . "$APACHE_ENVVARS"; \ + for dir in \ + "$APACHE_LOCK_DIR" \ + "$APACHE_RUN_DIR" \ + "$APACHE_LOG_DIR" \ + ; do \ + rm -rvf "$dir"; \ + mkdir -p "$dir"; \ + chown "$APACHE_RUN_USER:$APACHE_RUN_GROUP" "$dir"; \ +# allow running as an arbitrary user (https://github.com/docker-library/php/issues/743) + chmod 777 "$dir"; \ + done; \ + \ +# delete the "index.html" that installing Apache drops in here + rm -rvf /var/www/html/*; \ + \ +# logs should go to stdout / stderr + ln -sfT /dev/stderr "$APACHE_LOG_DIR/error.log"; \ + ln -sfT /dev/stdout "$APACHE_LOG_DIR/access.log"; \ + ln -sfT /dev/stdout "$APACHE_LOG_DIR/other_vhosts_access.log"; \ + chown -R --no-dereference "$APACHE_RUN_USER:$APACHE_RUN_GROUP" "$APACHE_LOG_DIR" + +# Apache + PHP requires preforking Apache for best results +RUN a2dismod mpm_event && a2enmod mpm_prefork + +# PHP files should be handled by PHP, and should be preferred over any other file type +RUN { \ + echo ''; \ + echo '\tSetHandler application/x-httpd-php'; \ + echo ''; \ + echo; \ + echo 'DirectoryIndex disabled'; \ + echo 'DirectoryIndex index.php index.html'; \ + echo; \ + echo ''; \ + echo '\tOptions -Indexes'; \ + echo '\tAllowOverride All'; \ + echo ''; \ + } | tee "$APACHE_CONFDIR/conf-available/docker-php.conf" \ + && a2enconf docker-php + +ENV PHP_EXTRA_BUILD_DEPS apache2-dev +ENV PHP_EXTRA_CONFIGURE_ARGS --with-apxs2 --disable-cgi ac_cv_func_mmap=no +#### + +# Apply stack smash protection to functions using local buffers and alloca() +# Make PHP's main executable position-independent (improves ASLR security mechanism, and has no performance impact on x86_64) +# Enable optimization (-O2) +# Enable linker optimization (this sorts the hash buckets to improve cache locality, and is non-default) +# Adds GNU HASH segments to generated executables (this is used if present, and is much faster than sysv hash; in this configuration, sysv hash is also generated) +# https://github.com/docker-library/php/issues/272 +# -D_LARGEFILE_SOURCE and -D_FILE_OFFSET_BITS=64 (https://www.php.net/manual/en/intro.filesystem.php) +ENV PHP_CFLAGS="-fstack-protector-strong -fpic -fpie -O2 -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64" +ENV PHP_CPPFLAGS="$PHP_CFLAGS" +ENV PHP_LDFLAGS="-Wl,-O1 -Wl,--hash-style=both -pie" + +ENV GPG_KEYS 1198C0117593497A5EC5C199286AF1F9897469DC AFD8691FDAEDF03BDF6E460563F15A9B715376CA C28D937575603EB4ABB725861C0779DC5C0A9DE4 + +ENV PHP_VERSION 8.3.4 +ENV PHP_URL="https://www.php.net/get/php-8.3.4.tar.xz/from/this/mirror" PHP_ASC_URL="https://www.php.net/get/php-8.3.4.tar.xz.asc/from/this/mirror" +ENV PHP_SHA256="39a337036a546e5c28aea76cf424ac172db5156bd8a8fd85252e389409a5ba63" PHP_MD5="" + +RUN set -eux; \ + \ + savedAptMark="$(apt-mark showmanual)"; \ + apt-get update; \ + apt-get install -y --no-install-recommends gnupg dirmngr; \ + rm -rf /var/lib/apt/lists/*; \ + \ + mkdir -p /usr/src; \ + cd /usr/src; \ + \ + curl -fsSL -o php.tar.xz "$PHP_URL"; \ + \ + if [ -n "$PHP_SHA256" ]; then \ + echo "$PHP_SHA256 *php.tar.xz" | sha256sum -c -; \ + fi; \ + if [ -n "$PHP_MD5" ]; then \ + echo "$PHP_MD5 *php.tar.xz" | md5sum -c -; \ + fi; \ + \ + if [ -n "$PHP_ASC_URL" ]; then \ + curl -fsSL -o php.tar.xz.asc "$PHP_ASC_URL"; \ + export GNUPGHOME="$(mktemp -d)"; \ + ${IMAGES_DIR}/receiveGpgKeys.sh $GPG_KEYS; \ + gpg --batch --verify php.tar.xz.asc php.tar.xz; \ + gpgconf --kill all; \ + rm -rf "$GNUPGHOME"; \ + fi; \ + \ + apt-mark auto '.*' > /dev/null; \ + apt-mark manual $savedAptMark > /dev/null; \ + apt-get purge -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false + +COPY images/runtime/php/8.3/docker-php-source /usr/local/bin/ +RUN chmod +x /usr/local/bin/docker-php-source + +RUN set -eux; \ + \ + + savedAptMark="$(apt-mark showmanual)"; \ + apt-get update; \ + apt-get install -y --no-install-recommends \ + libargon2-dev \ + libcurl4-openssl-dev \ + libedit-dev \ + libonig-dev \ + libsodium-dev \ + libsqlite3-dev \ + libssl-dev \ + libxml2-dev \ + zlib1g-dev \ + ${PHP_EXTRA_BUILD_DEPS:-} \ + ; \ + rm -rf /var/lib/apt/lists/*; \ + \ + export \ + CFLAGS="$PHP_CFLAGS" \ + CPPFLAGS="$PHP_CPPFLAGS" \ + LDFLAGS="$PHP_LDFLAGS" \ + ; \ + docker-php-source extract; \ + cd /usr/src/php; \ + gnuArch="$(dpkg-architecture --query DEB_BUILD_GNU_TYPE)"; \ + debMultiarch="$(dpkg-architecture --query DEB_BUILD_MULTIARCH)"; \ +# https://bugs.php.net/bug.php?id=74125 + if [ ! -d /usr/include/curl ]; then \ + ln -sT "/usr/include/$debMultiarch/curl" /usr/local/include/curl; \ + fi; \ + ./configure \ + --build="$gnuArch" \ + --with-config-file-path="$PHP_INI_DIR" \ + --with-config-file-scan-dir="$PHP_INI_DIR/conf.d" \ + \ +# make sure invalid --configure-flags are fatal errors intead of just warnings + --enable-option-checking=fatal \ + \ +# https://github.com/docker-library/php/issues/439 + --with-mhash \ + \ +# --enable-ftp is included here because ftp_ssl_connect() needs ftp to be compiled statically (see https://github.com/docker-library/php/issues/236) + --enable-ftp \ +# --enable-mbstring is included here because otherwise there's no way to get pecl to use it properly (see https://github.com/docker-library/php/issues/195) + --enable-mbstring \ +# --enable-mysqlnd is included here because it's harder to compile after the fact than extensions are (since it's a plugin for several extensions, not an extension in itself) + --enable-mysqlnd \ +# https://wiki.php.net/rfc/argon2_password_hash (7.2+) + --with-password-argon2 \ +# https://wiki.php.net/rfc/libsodium + --with-sodium=shared \ +# always build against system sqlite3 (https://github.com/php/php-src/commit/6083a387a81dbbd66d6316a3a12a63f06d5f7109) + --with-pdo-sqlite=/usr \ + --with-sqlite3=/usr \ + \ + --with-curl \ + --with-libedit \ + --with-openssl \ + --with-zlib \ + \ +# in PHP 7.4+, the pecl/pear installers are officially deprecated (requiring an explicit "--with-pear") and will be removed in PHP 8+; see also https://github.com/docker-library/php/issues/846#issuecomment-505638494 + --with-pear \ + \ +# bundled pcre does not support JIT on s390x +# https://manpages.debian.org/stretch/libpcre3-dev/pcrejit.3.en.html#AVAILABILITY_OF_JIT_SUPPORT + $(test "$gnuArch" = 's390x-linux-gnu' && echo '--without-pcre-jit') \ + --with-libdir="lib/$debMultiarch" \ + \ + ${PHP_EXTRA_CONFIGURE_ARGS:-} \ + ; \ + make -j "$(nproc)"; \ + find -type f -name '*.a' -delete; \ + make install; \ + find /usr/local/bin /usr/local/sbin -type f -executable -exec strip --strip-all '{}' + || true; \ + make clean; \ + \ +# https://github.com/docker-library/php/issues/692 (copy default example "php.ini" files somewhere easily discoverable) + cp -v php.ini-* "$PHP_INI_DIR/"; \ + \ + cd /; \ + docker-php-source delete; \ + \ +# reset apt-mark's "manual" list so that "purge --auto-remove" will remove all build dependencies + apt-mark auto '.*' > /dev/null; \ + [ -z "$savedAptMark" ] || apt-mark manual $savedAptMark; \ + find /usr/local -type f -executable -exec ldd '{}' ';' \ + | awk '/=>/ { print $(NF-1) }' \ + | sort -u \ + | xargs -r dpkg-query --search \ + | cut -d: -f1 \ + | sort -u \ + | xargs -r apt-mark manual \ + ; \ + apt-get purge -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false; \ + \ +# update pecl channel definitions https://github.com/docker-library/php/issues/443 + pecl update-channels; \ + rm -rf /tmp/pear ~/.pearrc; \ +# smoke test + php --version + +COPY images/runtime/php/8.3/docker-php-ext-* images/runtime/php/8.3/docker-php-entrypoint /usr/local/bin/ +RUN chmod +x /usr/local/bin/docker-php-* + +# sodium was built as a shared module (so that it can be replaced later if so desired), so let's enable it too (https://github.com/docker-library/php/issues/598) +RUN docker-php-ext-enable sodium \ + && rm -rf /var/lib/apt/lists/* + +ENTRYPOINT ["docker-php-entrypoint"] +#### +# https://httpd.apache.org/docs/2.4/stopping.html#gracefulstop +STOPSIGNAL SIGWINCH + +COPY images/runtime/php/8.3/apache2-foreground /usr/local/bin/ +RUN chmod +x /usr/local/bin/apache2-foreground +WORKDIR /var/www/html + +EXPOSE 80 +CMD ["apache2-foreground"] +#### + +## base dockerfile +SHELL ["/bin/bash", "-c"] + +ARG PHP_VERSION +ENV PHP_VERSION ${PHP_VERSION} + +RUN a2enmod rewrite expires include deflate remoteip headers + +ENV APACHE_RUN_USER www-data +# Edit the default DocumentRoot setting +ENV APACHE_DOCUMENT_ROOT /home/site/wwwroot +RUN sed -ri -e 's!/var/www/html!${APACHE_DOCUMENT_ROOT}!g' /etc/apache2/sites-available/*.conf +RUN sed -ri -e 's!/var/www/!${APACHE_DOCUMENT_ROOT}!g' /etc/apache2/apache2.conf /etc/apache2/conf-available/*.conf +# Edit the default port setting +ENV APACHE_PORT 8080 +RUN sed -ri -e 's!!!g' /etc/apache2/sites-available/*.conf +RUN sed -ri -e 's!!!g' /etc/apache2/sites-available/*.conf +RUN sed -ri -e 's!Listen 80!Listen ${APACHE_PORT}!g' /etc/apache2/ports.conf +# Edit Configuration to instruct Apache on how to process PHP files +RUN echo -e '\n SetHandler application/x-httpd-php\n' >> /etc/apache2/apache2.conf +# Disable Apache2 server signature +RUN echo -e 'ServerSignature Off' >> /etc/apache2/apache2.conf +RUN echo -e 'ServerTokens Prod' >> /etc/apache2/apache2.conf +RUN { \ + echo ''; \ + echo ' Order deny,allow'; \ + echo ' Deny from all'; \ + echo ''; \ +} >> /etc/apache2/apache2.conf + +# Install common PHP extensions +# TEMPORARY: Holding odbc related packages from upgrading. +RUN apt-mark hold msodbcsql18 odbcinst1debian2 odbcinst unixodbc unixodbc-dev \ + && apt-get update \ + && apt-get upgrade -y \ + && ln -s /usr/lib/x86_64-linux-gnu/libldap.so /usr/lib/libldap.so \ + && ln -s /usr/lib/x86_64-linux-gnu/liblber.so /usr/lib/liblber.so \ + && ln -s /usr/include/x86_64-linux-gnu/gmp.h /usr/include/gmp.h + +RUN set -eux; \ + if [[ $PHP_VERSION == 7.4.* || $PHP_VERSION == 8.0.* || $PHP_VERSION == 8.1.* || $PHP_VERSION == 8.2.* || $PHP_VERSION == 8.3.* ]]; then \ + apt-get update \ + && apt-get upgrade -y \ + && apt-get install -y --no-install-recommends apache2-dev \ + && docker-php-ext-configure gd --with-freetype --with-jpeg \ + && PHP_OPENSSL=yes docker-php-ext-configure imap --with-kerberos --with-imap-ssl ; \ + else \ + docker-php-ext-configure gd --with-png-dir=/usr --with-jpeg-dir=/usr \ + && docker-php-ext-configure imap --with-kerberos --with-imap-ssl ; \ + fi + +RUN docker-php-ext-configure pdo_odbc --with-pdo-odbc=unixODBC,/usr \ + && docker-php-ext-install gd \ + mysqli \ + opcache \ + pdo \ + pdo_mysql \ + pdo_pgsql \ + pgsql \ + ldap \ + intl \ + gmp \ + zip \ + bcmath \ + mbstring \ + pcntl \ + calendar \ + exif \ + gettext \ + imap \ + tidy \ + shmop \ + soap \ + sockets \ + sysvmsg \ + sysvsem \ + sysvshm \ + pdo_odbc \ +# deprecated from 7.4, so should be avoided in general template for all php versions +# wddx \ +# xmlrpc \ + xsl + +RUN set -eux; \ + if [[ $PHP_VERSION != 5.* ]]; then \ + pecl install redis && docker-php-ext-enable redis; \ + fi + +# https://github.com/Imagick/imagick/issues/331 +# https://github.com/ihneo/php/pull/24/files +RUN set -eux; \ + if [[ $PHP_VERSION != 8.3.* ]]; then \ + pecl install imagick && docker-php-ext-enable imagick; \ + fi + +# deprecated from 5.*, so should be avoided +RUN set -eux; \ + if [[ $PHP_VERSION != 5.* && $PHP_VERSION != 7.0.* ]]; then \ + echo "pecl/mongodb requires PHP (version >= 7.1.0, version <= 7.99.99)"; \ + pecl install mongodb && docker-php-ext-enable mongodb; \ + fi + +# https://github.com/microsoft/mysqlnd_azure, Supports 7.2*, 7.3* and 7.4* +RUN set -eux; \ + if [[ $PHP_VERSION == 7.2.* || $PHP_VERSION == 7.3.* || $PHP_VERSION == 7.4.* ]]; then \ + echo "pecl/mysqlnd_azure requires PHP (version >= 7.2.*, version <= 7.99.99)"; \ + pecl install mysqlnd_azure \ + && docker-php-ext-enable mysqlnd_azure; \ + fi + +# Install the Microsoft SQL Server PDO driver on supported versions only. +# - https://docs.microsoft.com/en-us/sql/connect/php/installation-tutorial-linux-mac +# - https://docs.microsoft.com/en-us/sql/connect/odbc/linux-mac/installing-the-microsoft-odbc-driver-for-sql-server +# For php|8.0, latest stable version of pecl/sqlsrv, pecl/pdo_sqlsrv is 5.11.0 +RUN set -eux; \ + if [[ $PHP_VERSION == 8.0.* ]]; then \ + pecl install sqlsrv-5.11.0 pdo_sqlsrv-5.11.0 \ + && echo extension=pdo_sqlsrv.so >> $(php --ini | grep "Scan for additional .ini files" | sed -e "s|.*:\s*||")/30-pdo_sqlsrv.ini \ + && echo extension=sqlsrv.so >> $(php --ini | grep "Scan for additional .ini files" | sed -e "s|.*:\s*||")/20-sqlsrv.ini; \ + fi + +# Latest pecl/sqlsrv, pecl/pdo_sqlsrv requires PHP (version >= 8.1.0) +RUN set -eux; \ + if [[ $PHP_VERSION == 8.1.* || $PHP_VERSION == 8.2.* || $PHP_VERSION == 8.3.* ]]; then \ + pecl install sqlsrv pdo_sqlsrv \ + && echo extension=pdo_sqlsrv.so >> `php --ini | grep "Scan for additional .ini files" | sed -e "s|.*:\s*||"`/30-pdo_sqlsrv.ini \ + && echo extension=sqlsrv.so >> `php --ini | grep "Scan for additional .ini files" | sed -e "s|.*:\s*||"`/20-sqlsrv.ini; \ + fi + +RUN { \ + echo 'opcache.memory_consumption=128'; \ + echo 'opcache.interned_strings_buffer=8'; \ + echo 'opcache.max_accelerated_files=4000'; \ + echo 'opcache.revalidate_freq=60'; \ + echo 'opcache.fast_shutdown=1'; \ + echo 'opcache.enable_cli=1'; \ + } > /usr/local/etc/php/conf.d/opcache-recommended.ini + +# NOTE: zend_extension=opcache is already configured via docker-php-ext-install, above +RUN { \ + echo 'error_log=/var/log/apache2/php-error.log'; \ + echo 'display_errors=Off'; \ + echo 'log_errors=On'; \ + echo 'display_startup_errors=Off'; \ + echo 'date.timezone=UTC'; \ + } > /usr/local/etc/php/conf.d/php.ini + +RUN set -x \ + && docker-php-source extract \ + && cd /usr/src/php/ext/odbc \ + && phpize \ + && sed -ri 's@^ *test +"\$PHP_.*" *= *"no" *&& *PHP_.*=yes *$@#&@g' configure \ + && chmod +x ./configure \ + && ./configure --with-unixODBC=shared,/usr \ + && docker-php-ext-install odbc \ + && rm -rf /var/lib/apt/lists/* + +RUN rm -rf /tmp/oryx + +ENV LANG="C.UTF-8" \ + LANGUAGE="C.UTF-8" \ + LC_ALL="C.UTF-8" + +# dockerfile +# Bake Application Insights key from pipeline variable into final image +ARG AI_CONNECTION_STRING +ENV ORYX_AI_CONNECTION_STRING=${AI_CONNECTION_STRING} +#Bake in client certificate path into image to avoid downloading it +ENV PATH_CA_CERTIFICATE="/etc/ssl/certs/ca-certificate.crt" + +# Oryx++ Builder variables +ENV CNB_STACK_ID="oryx.stacks.skeleton" +LABEL io.buildpacks.stack.id="oryx.stacks.skeleton" + +COPY --from=startupCmdGen /opt/startupcmdgen/startupcmdgen /opt/startupcmdgen/startupcmdgen +RUN ln -s /opt/startupcmdgen/startupcmdgen /usr/local/bin/oryx \ + && rm -rf /tmp/oryx \ + # Temporarily making sure apache2-foreground has permission + && chmod +x /usr/local/bin/apache2-foreground + +ENV LANG="C.UTF-8" \ + LANGUAGE="C.UTF-8" \ + LC_ALL="C.UTF-8" \ No newline at end of file diff --git a/images/runtime/python/template.Dockerfile b/images/runtime/python/template.Dockerfile index adfdb0bc6..c7626a8a6 100644 --- a/images/runtime/python/template.Dockerfile +++ b/images/runtime/python/template.Dockerfile @@ -1,4 +1,6 @@ ARG DEBIAN_FLAVOR +ARG BASE_IMAGE + # Startup script generator FROM mcr.microsoft.com/oss/go/microsoft/golang:1.20-${DEBIAN_FLAVOR} as startupCmdGen # GOPATH is set to "/go" in the base image @@ -12,13 +14,15 @@ ENV GIT_COMMIT=${GIT_COMMIT} ENV BUILD_NUMBER=${BUILD_NUMBER} #Bake in client certificate path into image to avoid downloading it ENV PATH_CA_CERTIFICATE="/etc/ssl/certs/ca-certificate.crt" -RUN ./build.sh python /opt/startupcmdgen/startupcmdgen +RUN chmod +x build.sh && ./build.sh python /opt/startupcmdgen/startupcmdgen + +FROM ${BASE_IMAGE} as main -FROM oryxdevmcr.azurecr.io/private/oryx/%BASE_TAG% as main -ARG DEBIAN_FLAVOR ARG IMAGES_DIR=/tmp/oryx/images ARG BUILD_DIR=/tmp/oryx/build ARG SDK_STORAGE_BASE_URL_VALUE + +ARG DEBIAN_FLAVOR ENV DEBIAN_FLAVOR=${DEBIAN_FLAVOR} ENV ORYX_SDK_STORAGE_BASE_URL=${SDK_STORAGE_BASE_URL_VALUE} @@ -35,7 +39,11 @@ ADD build ${BUILD_DIR} RUN find ${IMAGES_DIR} -type f -iname "*.sh" -exec chmod +x {} \; RUN find ${BUILD_DIR} -type f -iname "*.sh" -exec chmod +x {} \; -ENV PYTHON_VERSION %PYTHON_FULL_VERSION% +ARG PYTHON_FULL_VERSION +ARG PYTHON_VERSION +ARG PYTHON_MAJOR_VERSION + +ENV PYTHON_VERSION ${PYTHON_FULL_VERSION} RUN true COPY build/__pythonVersions.sh ${BUILD_DIR} RUN true @@ -58,17 +66,17 @@ RUN --mount=type=secret,id=oryx_sdk_storage_account_access_token \ RUN set -ex \ && cd /opt/python/ \ - && ln -s %PYTHON_FULL_VERSION% %PYTHON_VERSION% \ - && ln -s %PYTHON_VERSION% %PYTHON_MAJOR_VERSION% \ - && echo /opt/python/%PYTHON_MAJOR_VERSION%/lib >> /etc/ld.so.conf.d/python.conf \ + && ln -s ${PYTHON_FULL_VERSION} ${PYTHON_VERSION} \ + && ln -s ${PYTHON_VERSION} ${PYTHON_MAJOR_VERSION} \ + && echo /opt/python/${PYTHON_MAJOR_VERSION}/lib >> /etc/ld.so.conf.d/python.conf \ && ldconfig \ - && if [ "%PYTHON_MAJOR_VERSION%" = "3" ]; then cd /opt/python/%PYTHON_MAJOR_VERSION%/bin \ + && if [ "${PYTHON_MAJOR_VERSION}" = "3" ]; then cd /opt/python/${PYTHON_MAJOR_VERSION}/bin \ && ln -nsf idle3 idle \ && ln -nsf pydoc3 pydoc \ && ln -nsf python3-config python-config; fi \ && rm -rf /var/lib/apt/lists/* -ENV PATH="/opt/python/%PYTHON_MAJOR_VERSION%/bin:${PATH}" +ENV PATH="/opt/python/${PYTHON_MAJOR_VERSION}/bin:${PATH}" # Bake Application Insights key from pipeline variable into final image ARG AI_CONNECTION_STRING @@ -87,8 +95,8 @@ RUN pip install --upgrade pip \ && pip install viztracer==0.15.6 \ && pip install vizplugins==0.1.3 \ # Removing orjson only for 3.12 due to build errors - && if [ "%PYTHON_VERSION%" != "3.12" ] && [ "%PYTHON_VERSION%" != "3.7" ]; then pip install orjson==3.10.1; fi \ - && if [ "%PYTHON_VERSION%" = "3.7" ] || [ "%PYTHON_VERSION%" = "3.8" ]; then curl -LO http://ftp.de.debian.org/debian/pool/main/libf/libffi/libffi6_3.2.1-9_amd64.deb \ + && if [ "${PYTHON_VERSION}" != "3.12" ] && [ "${PYTHON_VERSION}" != "3.7" ]; then pip install orjson==3.10.1; fi \ + && if [ "${PYTHON_VERSION}" = "3.7" ] || [ "${PYTHON_VERSION}" = "3.8" ]; then curl -LO http://ftp.de.debian.org/debian/pool/main/libf/libffi/libffi6_3.2.1-9_amd64.deb \ && dpkg -i libffi6_3.2.1-9_amd64.deb \ && rm libffi6_3.2.1-9_amd64.deb; fi \ && ln -s /opt/startupcmdgen/startupcmdgen /usr/local/bin/oryx \ diff --git a/images/yarn-v1.22.15.tar.gz b/images/yarn-v1.22.15.tar.gz new file mode 100644 index 0000000000000000000000000000000000000000..d8b1c9b7d9df3bed84badd580c427f7c5c67e25d GIT binary patch literal 1246203 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�l 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� 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 z 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Ⓢ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 z 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

  • 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 |u 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
  • B$Ht(_h976Cp6!!ej@N15A!EIl;sZ=lL`R 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

    fi$cDBs}Q;dCZ1gB_Wqq6R~s9%ID>j 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 /tmp/curlError.txt 1> /tmp/curlOut.txt - grep "HTTP/1.1 200 OK" /tmp/curlOut.txt &> /dev/null - exitCode=$? - rm -f /tmp/curlOut.txt - rm -f /tmp/curlError.txt - if [ $exitCode -eq 0 ]; then + + echo "Checking if blob exists..." + if grep "$blobName" "$inStorageAccountFile"; then + echo "Exists in storage account" return 0 else + echo "Does not exist in storage account" return 1 fi } @@ -129,8 +123,8 @@ shouldOverwritePlatformSdk() { } isDefaultVersionFile() { - $blobName="$1" - if [[ "$blobName" == "defaultVersion"* ]]; then + blobName="$1" + if [[ $blobName == defaultVersion* ]]; then return 0 else return 1 diff --git a/platforms/nodejs/Dockerfile b/platforms/nodejs/Dockerfile index 30615a7f8..db9dc337b 100644 --- a/platforms/nodejs/Dockerfile +++ b/platforms/nodejs/Dockerfile @@ -15,6 +15,14 @@ RUN apt-get update \ jq \ && rm -rf /var/lib/apt/lists/* RUN curl -sL https://git.io/n-install | bash -s -- -ny - + RUN mkdir -p /tmp/scripts COPY platforms/nodejs/build.sh /tmp/scripts -RUN chmod +x /tmp/scripts/build.sh \ No newline at end of file +RUN chmod +x /tmp/scripts/build.sh + +COPY platforms /tmp/platforms +COPY build /tmp/build +RUN chmod +x /tmp/platforms/**/*.sh +RUN chmod +x /tmp/build/**/*.sh +RUN mkdir /tmp/sdk +RUN /tmp/platforms/nodejs/getNode.sh ${DEBIAN_FLAVOR} "" \ No newline at end of file diff --git a/platforms/nodejs/build.sh b/platforms/nodejs/build.sh index 19485199d..1a3e6ffbb 100644 --- a/platforms/nodejs/build.sh +++ b/platforms/nodejs/build.sh @@ -42,6 +42,5 @@ upgradeNpm() { ~/n/bin/n -d $version upgradeNpm $version cd /usr/local/n/versions/node/$version -mkdir -p /tmp/compressedSdk -tar -zcf /tmp/compressedSdk/$tarFileName . -rm -rf /usr/local/n ~/n +mkdir -p /tmp/compressedSdk/nodejs +tar -zcf /tmp/compressedSdk/nodejs/$tarFileName . diff --git a/platforms/nodejs/getNode.sh b/platforms/nodejs/getNode.sh index 45d13a616..ae1d20dbd 100755 --- a/platforms/nodejs/getNode.sh +++ b/platforms/nodejs/getNode.sh @@ -6,17 +6,17 @@ set -ex -declare -r REPO_DIR=$( cd $( dirname "$0" ) && cd .. && cd .. && pwd ) +declare -r REPO_DIR="/tmp" source $REPO_DIR/platforms/__common.sh nodePlatformDir="$REPO_DIR/platforms/nodejs" -hostNodeArtifactsDir="$volumeHostDir/nodejs" +outputDir="/tmp/compressedSdk/nodejs" debianFlavor="$1" sdkStorageAccountUrl="$2" -mkdir -p "$hostNodeArtifactsDir" -builtNodeImage=false +mkdir -p "$outputDir" + getNode() { local version="$1" @@ -27,14 +27,14 @@ getNode() { if [ "$debianFlavor" == "stretch" ]; then # Use default sdk file name tarFileName=nodejs-$version.tar.gz - metadataFile="$hostNodeArtifactsDir/nodejs-$version-metadata.txt" + metadataFile="$outputDir/nodejs-$version-metadata.txt" # Continue adding the version metadata with the name of Version # which is what our legacy CLI will use sdkVersionMetadataName="$LEGACY_SDK_VERSION_METADATA_NAME" - cp "$nodePlatformDir/versions/$debianFlavor/defaultVersion.txt" "$hostNodeArtifactsDir/defaultVersion.txt" + cp "$nodePlatformDir/versions/$debianFlavor/defaultVersion.txt" "$outputDir/defaultVersion.txt" else tarFileName=nodejs-$debianFlavor-$version.tar.gz - metadataFile="$hostNodeArtifactsDir/nodejs-$debianFlavor-$version-metadata.txt" + metadataFile="$outputDir/nodejs-$debianFlavor-$version-metadata.txt" sdkVersionMetadataName="$SDK_VERSION_METADATA_NAME" fi @@ -42,19 +42,7 @@ getNode() { echo "Getting Node version '$version'..." echo - if ! $builtNodeImage; then - docker build \ - --build-arg DEBIAN_FLAVOR=$debianFlavor \ - -f "$nodePlatformDir/Dockerfile" \ - -t $imageName \ - $REPO_DIR - builtNodeImage=true - fi - - docker run \ - -v /$hostNodeArtifactsDir:$volumeContainerDir \ - $imageName \ - bash -c "/tmp/scripts/build.sh $version && cp -f /tmp/compressedSdk/* /tmp/sdk" + /tmp/scripts/build.sh $version echo "$sdkVersionMetadataName=$version" >> $metadataFile echo "$OS_TYPE_METADATA_NAME=$debianFlavor" >> $metadataFile @@ -66,4 +54,4 @@ echo buildPlatform "$nodePlatformDir/versions/$debianFlavor/versionsToBuild.txt" getNode # Write the default version -cp "$nodePlatformDir/versions/$debianFlavor/defaultVersion.txt" "$hostNodeArtifactsDir/defaultVersion.$debianFlavor.txt" +cp "$nodePlatformDir/versions/$debianFlavor/defaultVersion.txt" "$outputDir/defaultVersion.$debianFlavor.txt" diff --git a/platforms/php/Dockerfile b/platforms/php/Dockerfile index 44e9f274f..46e2af2cb 100644 --- a/platforms/php/Dockerfile +++ b/platforms/php/Dockerfile @@ -1,11 +1,49 @@ -FROM oryxdevmcr.azurecr.io/private/oryx/php-build-prereqs AS php73-build -ARG PHP_VERSION -ARG GPG_KEYS -ARG PHP_SHA256 +ARG DEBIAN_FLAVOR +FROM mcr.microsoft.com/mirror/docker/library/buildpack-deps:${DEBIAN_FLAVOR} AS php-buildpack-prereqs ARG DEBIAN_FLAVOR ENV DEBIAN_FLAVOR=$DEBIAN_FLAVOR +COPY platforms/php/prereqs /php +COPY build/__phpVersions.sh /php/ +COPY platforms/php/prereqs/build.sh /tmp/ +COPY images/receiveGpgKeys.sh /tmp/receiveGpgKeys.sh -RUN PHP_VERSION=$PHP_VERSION \ - GPG_KEYS=$GPG_KEYS \ - PHP_SHA256=$PHP_SHA256 \ - /php/build.sh \ No newline at end of file +RUN if [ "${DEBIAN_FLAVOR}" = "stretch" ]; then \ + sed -i 's/^deb http:\/\/deb.debian.org\/debian stretch-updates/# deb http:\/\/deb.debian.org\/debian stretch-updates/g' /etc/apt/sources.list \ + && sed -i 's/^deb http:\/\/security.debian.org\/debian-security stretch/deb http:\/\/archive.debian.org\/debian-security stretch/g' /etc/apt/sources.list \ + && sed -i 's/^deb http:\/\/deb.debian.org\/debian stretch/deb http:\/\/archive.debian.org\/debian stretch/g' /etc/apt/sources.list ; \ + fi + +RUN chmod +x /tmp/*.sh && chmod +x /php/*.sh +RUN if [ "${DEBIAN_FLAVOR}" = "buster" ]; then \ + apt-get update \ + && apt-get upgrade -y \ + && apt-get install -y \ + $PHPIZE_DEPS \ + ca-certificates \ + curl \ + xz-utils \ + libsodium-dev \ + libncurses5 \ + --no-install-recommends && rm -r /var/lib/apt/lists/* ; \ + else \ + export DEBIAN_FLAVOR=${DEBIAN_FLAVOR} ; \ + . /php/installPrereqs.sh ; \ + fi + +COPY platforms /tmp/platforms +COPY build /tmp/build +RUN chmod +x /tmp/platforms/**/*.sh +RUN chmod +x /tmp/build/**/*.sh +RUN mkdir /tmp/sdk +RUN /tmp/platforms/php/buildPhp.sh ${DEBIAN_FLAVOR} "" "php" + +# ARG PHP_VERSION +# ARG GPG_KEYS +# ARG PHP_SHA256 +# ARG DEBIAN_FLAVOR +# ENV DEBIAN_FLAVOR=$DEBIAN_FLAVOR + +# RUN PHP_VERSION=$PHP_VERSION \ +# GPG_KEYS=$GPG_KEYS \ +# PHP_SHA256=$PHP_SHA256 \ +# /php/build.sh \ No newline at end of file diff --git a/platforms/php/buildPhp.sh b/platforms/php/buildPhp.sh index e0a02f7bf..4ab5bf31b 100755 --- a/platforms/php/buildPhp.sh +++ b/platforms/php/buildPhp.sh @@ -12,27 +12,15 @@ source $REPO_DIR/platforms/__common.sh source $REPO_DIR/build/__phpVersions.sh debianFlavor=$1 sdkStorageAccountUrl="$2" +phpType=$3 phpPlatformDir="$REPO_DIR/platforms/php" -builtPhpPrereqs=false -buildPhpPrereqsImage() { - if ! $builtPhpPrereqs; then - echo "Building Php pre-requisites image..." - echo - docker build \ - --build-arg DEBIAN_FLAVOR=$debianFlavor \ - -f "$phpPlatformDir/prereqs/Dockerfile" \ - -t "oryxdevmcr.azurecr.io/private/oryx/php-build-prereqs" $REPO_DIR - builtPhpPrereqs=true - fi -} - buildPhp() { local version="$1" local sha="$2" local gpgKeys="$3" local imageName="oryx/php-sdk" - local targetDir="$volumeHostDir/php" + local targetDir="/tmp/compressedSdk/php" local phpSdkFileName="" local metadataFile="" local sdkVersionMetadataName="" @@ -56,22 +44,21 @@ buildPhp() { cp "$phpPlatformDir/versions/$debianFlavor/defaultVersion.txt" "$targetDir/defaultVersion.$debianFlavor.txt" if shouldBuildSdk php $phpSdkFileName $sdkStorageAccountUrl || shouldOverwriteSdk || shouldOverwritePlatformSdk php; then - if ! $builtPhpPrereqs; then - buildPhpPrereqsImage - fi echo "Building Php version '$version' in a docker image..." echo - docker build \ - -f "$phpPlatformDir/Dockerfile" \ - --build-arg PHP_VERSION=$version \ - --build-arg PHP_SHA256=$sha \ - --build-arg GPG_KEYS="$gpgKeys" \ - -t $imageName \ - $REPO_DIR + PHP_VERSION=$version GPG_KEYS=$gpgKeys PHP_SHA256=$sha /php/build.sh - getSdkFromImage $imageName "$targetDir" + rm -r /opt/php/* + + # docker build \ + # -f "$phpPlatformDir/Dockerfile" \ + # --build-arg PHP_VERSION=$version \ + # --build-arg PHP_SHA256=$sha \ + # --build-arg GPG_KEYS="$gpgKeys" \ + # -t $imageName \ + # $REPO_DIR echo "$sdkVersionMetadataName=$version" >> $metadataFile echo "$OS_TYPE_METADATA_NAME=$debianFlavor" >> $metadataFile @@ -82,7 +69,7 @@ buildPhpComposer() { local version="$1" local sha="$2" local imageName="oryx/php-composer-sdk" - local targetDir="$volumeHostDir/php-composer" + local targetDir="/tmp/compressedSdk/php-composer" local composerSdkFileName="php-composer-$version.tar.gz" local metadataFile="" local sdkVersionMetadataName="" @@ -105,39 +92,55 @@ buildPhpComposer() { fi if shouldBuildSdk php-composer $composerSdkFileName $sdkStorageAccountUrl || shouldOverwriteSdk || shouldOverwritePlatformSdk php-composer; then - if ! $builtPhpPrereqs; then - buildPhpPrereqsImage - fi echo "Php composer version '$version' not present in blob storage. Building it in a docker image..." echo + PHP_VERSION=$PHP81_VERSION GPG_KEYS=$PHP81_KEYS PHP_SHA256=$PHP81_TAR_SHA256 /php/build.sh + # Installing PHP composer requires having PHP installed in an first image first, so we try installing # a version here. - docker build \ - -f "$phpPlatformDir/composer/Dockerfile" \ - --build-arg PHP_VERSION="$PHP81_VERSION" \ - --build-arg DEBIAN_FLAVOR=$debianFlavor \ - --build-arg PHP_SHA256="$PHP81_TAR_SHA256" \ - --build-arg GPG_KEYS="$PHP81_KEYS" \ - --build-arg COMPOSER_VERSION="$version" \ - --build-arg COMPOSER_SETUP_SHA384="$COMPOSER_SETUP_SHA384" \ - -t $imageName \ - $REPO_DIR + # docker build \ + # -f "$phpPlatformDir/composer/Dockerfile" \ + # --build-arg PHP_VERSION="$PHP81_VERSION" \ + # --build-arg DEBIAN_FLAVOR=$debianFlavor \ + # --build-arg PHP_SHA256="$PHP81_TAR_SHA256" \ + # --build-arg GPG_KEYS="$PHP81_KEYS" \ + # --build-arg COMPOSER_VERSION="$version" \ + # --build-arg COMPOSER_SETUP_SHA384="$COMPOSER_SETUP_SHA384" \ + # -t $imageName \ + # $REPO_DIR + + set -ex + composerDir="/opt/php-composer/$version" + mkdir -p "$composerDir" + export phpbin="/opt/php/$PHP81_VERSION/bin/php" + $phpbin /tmp/platforms/php/composer-setup.php --version=$version --install-dir="$composerDir" + compressedSdkDir="/tmp/compressedSdk/php-composer" + mkdir -p "$compressedSdkDir" + cd "$composerDir" + echo 'debian flavor is: $debianFlavor' + composerSdkFile="php-composer-$debianFlavor-$version.tar.gz" + if [ "$debianFlavor" = "stretch" ]; then + echo 'somehow debian flavor is: $debianFlavor' + composerSdkFile="php-composer-$version.tar.gz" + fi; + tar -zcf "$compressedSdkDir/$composerSdkFile" . + + rm -r ./* + rm -r /opt/php/* - getSdkFromImage $imageName "$targetDir" - echo "$sdkVersionMetadataName=$version" >> $metadataFile echo "$OS_TYPE_METADATA_NAME=$debianFlavor" >> $metadataFile fi } -echo "Building Php..." -echo -buildPlatform "$phpPlatformDir/versions/$debianFlavor/versionsToBuild.txt" buildPhp - -echo -echo "Building Php composer..." -echo -buildPlatform "$phpPlatformDir/composer/versions/$debianFlavor/versionsToBuild.txt" buildPhpComposer - +if [ "$phpType" == "php" ]; then + echo "Building Php..." + echo + buildPlatform "$phpPlatformDir/versions/$debianFlavor/versionsToBuild.txt" buildPhp +else + echo "Building Php composer..." + echo + buildPlatform "$phpPlatformDir/composer/versions/$debianFlavor/versionsToBuild.txt" buildPhpComposer +fi diff --git a/platforms/php/composer-setup.php b/platforms/php/composer-setup.php new file mode 100644 index 000000000..a5efbedbb --- /dev/null +++ b/platforms/php/composer-setup.php @@ -0,0 +1,1748 @@ + + * Jordi Boggiano + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +setupEnvironment(); +process(is_array($argv) ? $argv : array()); + +/** + * Initializes various values + * + * @throws RuntimeException If uopz extension prevents exit calls + */ +function setupEnvironment() +{ + ini_set('display_errors', 1); + + if (extension_loaded('uopz') && !(ini_get('uopz.disable') || ini_get('uopz.exit'))) { + // uopz works at opcode level and disables exit calls + if (function_exists('uopz_allow_exit')) { + @uopz_allow_exit(true); + } else { + throw new RuntimeException('The uopz extension ignores exit calls and breaks this installer.'); + } + } + + $installer = 'ComposerInstaller'; + + if (defined('PHP_WINDOWS_VERSION_MAJOR')) { + if ($version = getenv('COMPOSERSETUP')) { + $installer = sprintf('Composer-Setup.exe/%s', $version); + } + } + + define('COMPOSER_INSTALLER', $installer); +} + +/** + * Processes the installer + */ +function process($argv) +{ + // Determine ANSI output from --ansi and --no-ansi flags + setUseAnsi($argv); + + $help = in_array('--help', $argv) || in_array('-h', $argv); + if ($help) { + displayHelp(); + exit(0); + } + + $check = in_array('--check', $argv); + $force = in_array('--force', $argv); + $quiet = in_array('--quiet', $argv); + $channel = 'stable'; + if (in_array('--snapshot', $argv)) { + $channel = 'snapshot'; + } elseif (in_array('--preview', $argv)) { + $channel = 'preview'; + } elseif (in_array('--1', $argv)) { + $channel = '1'; + } elseif (in_array('--2', $argv)) { + $channel = '2'; + } elseif (in_array('--2.2', $argv)) { + $channel = '2.2'; + } + $disableTls = in_array('--disable-tls', $argv); + $installDir = getOptValue('--install-dir', $argv, false); + $version = getOptValue('--version', $argv, false); + $filename = getOptValue('--filename', $argv, 'composer.phar'); + $cafile = getOptValue('--cafile', $argv, false); + + if (!checkParams($installDir, $version, $cafile)) { + exit(1); + } + + $ok = checkPlatform($warnings, $quiet, $disableTls, true); + + if ($check) { + // Only show warnings if we haven't output any errors + if ($ok) { + showWarnings($warnings); + showSecurityWarning($disableTls); + } + exit($ok ? 0 : 1); + } + + if ($ok || $force) { + if ($channel === '1' && !$quiet) { + out('Warning: You forced the install of Composer 1.x via --1, but Composer 2.x is the latest stable version. Updating to it via composer self-update --stable is recommended.', 'error'); + } + + $installer = new Installer($quiet, $disableTls, $cafile); + if ($installer->run($version, $installDir, $filename, $channel)) { + showWarnings($warnings); + showSecurityWarning($disableTls); + exit(0); + } + } + + exit(1); +} + +/** + * Displays the help + */ +function displayHelp() +{ + echo << $value) { + $next = $key + 1; + if (0 === strpos($value, $opt)) { + if ($optLength === strlen($value) && isset($argv[$next])) { + return trim($argv[$next]); + } else { + return trim(substr($value, $optLength + 1)); + } + } + } + + return $default; +} + +/** + * Checks that user-supplied params are valid + * + * @param mixed $installDir The required istallation directory + * @param mixed $version The required composer version to install + * @param mixed $cafile Certificate Authority file + * + * @return bool True if the supplied params are okay + */ +function checkParams($installDir, $version, $cafile) +{ + $result = true; + + if (false !== $installDir && !is_dir($installDir)) { + out("The defined install dir ({$installDir}) does not exist.", 'info'); + $result = false; + } + + if (false !== $version && 1 !== preg_match('/^\d+\.\d+\.\d+(\-(alpha|beta|RC)\d*)*$/', $version)) { + out("The defined install version ({$version}) does not match release pattern.", 'info'); + $result = false; + } + + if (false !== $cafile && (!file_exists($cafile) || !is_readable($cafile))) { + out("The defined Certificate Authority (CA) cert file ({$cafile}) does not exist or is not readable.", 'info'); + $result = false; + } + return $result; +} + +/** + * Checks the platform for possible issues running Composer + * + * Errors are written to the output, warnings are saved for later display. + * + * @param array $warnings Populated by method, to be shown later + * @param bool $quiet Quiet mode + * @param bool $disableTls Bypass tls + * @param bool $install If we are installing, rather than diagnosing + * + * @return bool True if there are no errors + */ +function checkPlatform(&$warnings, $quiet, $disableTls, $install) +{ + getPlatformIssues($errors, $warnings, $install); + + // Make openssl warning an error if tls has not been specifically disabled + if (isset($warnings['openssl']) && !$disableTls) { + $errors['openssl'] = $warnings['openssl']; + unset($warnings['openssl']); + } + + if (!empty($errors)) { + // Composer-Setup.exe uses "Some settings" to flag platform errors + out('Some settings on your machine make Composer unable to work properly.', 'error'); + out('Make sure that you fix the issues listed below and run this script again:', 'error'); + outputIssues($errors); + return false; + } + + if (empty($warnings) && !$quiet) { + out('All settings correct for using Composer', 'success'); + } + return true; +} + +/** + * Checks platform configuration for common incompatibility issues + * + * @param array $errors Populated by method + * @param array $warnings Populated by method + * @param bool $install If we are installing, rather than diagnosing + * + * @return bool If any errors or warnings have been found + */ +function getPlatformIssues(&$errors, &$warnings, $install) +{ + $errors = array(); + $warnings = array(); + + if ($iniPath = php_ini_loaded_file()) { + $iniMessage = PHP_EOL.'The php.ini used by your command-line PHP is: ' . $iniPath; + } else { + $iniMessage = PHP_EOL.'A php.ini file does not exist. You will have to create one.'; + } + $iniMessage .= PHP_EOL.'If you can not modify the ini file, you can also run `php -d option=value` to modify ini values on the fly. You can use -d multiple times.'; + + if (ini_get('detect_unicode')) { + $errors['unicode'] = array( + 'The detect_unicode setting must be disabled.', + 'Add the following to the end of your `php.ini`:', + ' detect_unicode = Off', + $iniMessage + ); + } + + if (extension_loaded('suhosin')) { + $suhosin = ini_get('suhosin.executor.include.whitelist'); + $suhosinBlacklist = ini_get('suhosin.executor.include.blacklist'); + if (false === stripos($suhosin, 'phar') && (!$suhosinBlacklist || false !== stripos($suhosinBlacklist, 'phar'))) { + $errors['suhosin'] = array( + 'The suhosin.executor.include.whitelist setting is incorrect.', + 'Add the following to the end of your `php.ini` or suhosin.ini (Example path [for Debian]: /etc/php5/cli/conf.d/suhosin.ini):', + ' suhosin.executor.include.whitelist = phar '.$suhosin, + $iniMessage + ); + } + } + + if (!function_exists('json_decode')) { + $errors['json'] = array( + 'The json extension is missing.', + 'Install it or recompile php without --disable-json' + ); + } + + if (!extension_loaded('Phar')) { + $errors['phar'] = array( + 'The phar extension is missing.', + 'Install it or recompile php without --disable-phar' + ); + } + + if (!extension_loaded('filter')) { + $errors['filter'] = array( + 'The filter extension is missing.', + 'Install it or recompile php without --disable-filter' + ); + } + + if (!extension_loaded('hash')) { + $errors['hash'] = array( + 'The hash extension is missing.', + 'Install it or recompile php without --disable-hash' + ); + } + + if (!extension_loaded('iconv') && !extension_loaded('mbstring')) { + $errors['iconv_mbstring'] = array( + 'The iconv OR mbstring extension is required and both are missing.', + 'Install either of them or recompile php without --disable-iconv' + ); + } + + if (!ini_get('allow_url_fopen')) { + $errors['allow_url_fopen'] = array( + 'The allow_url_fopen setting is incorrect.', + 'Add the following to the end of your `php.ini`:', + ' allow_url_fopen = On', + $iniMessage + ); + } + + if (extension_loaded('ionCube Loader') && ioncube_loader_iversion() < 40009) { + $ioncube = ioncube_loader_version(); + $errors['ioncube'] = array( + 'Your ionCube Loader extension ('.$ioncube.') is incompatible with Phar files.', + 'Upgrade to ionCube 4.0.9 or higher or remove this line (path may be different) from your `php.ini` to disable it:', + ' zend_extension = /usr/lib/php5/20090626+lfs/ioncube_loader_lin_5.3.so', + $iniMessage + ); + } + + if (version_compare(PHP_VERSION, '5.3.2', '<')) { + $errors['php'] = array( + 'Your PHP ('.PHP_VERSION.') is too old, you must upgrade to PHP 5.3.2 or higher.' + ); + } + + if (version_compare(PHP_VERSION, '5.3.4', '<')) { + $warnings['php'] = array( + 'Your PHP ('.PHP_VERSION.') is quite old, upgrading to PHP 5.3.4 or higher is recommended.', + 'Composer works with 5.3.2+ for most people, but there might be edge case issues.' + ); + } + + if (!extension_loaded('openssl')) { + $warnings['openssl'] = array( + 'The openssl extension is missing, which means that secure HTTPS transfers are impossible.', + 'If possible you should enable it or recompile php with --with-openssl' + ); + } + + if (extension_loaded('openssl') && OPENSSL_VERSION_NUMBER < 0x1000100f) { + // Attempt to parse version number out, fallback to whole string value. + $opensslVersion = trim(strstr(OPENSSL_VERSION_TEXT, ' ')); + $opensslVersion = substr($opensslVersion, 0, strpos($opensslVersion, ' ')); + $opensslVersion = $opensslVersion ? $opensslVersion : OPENSSL_VERSION_TEXT; + + $warnings['openssl_version'] = array( + 'The OpenSSL library ('.$opensslVersion.') used by PHP does not support TLSv1.2 or TLSv1.1.', + 'If possible you should upgrade OpenSSL to version 1.0.1 or above.' + ); + } + + if (!defined('HHVM_VERSION') && !extension_loaded('apcu') && ini_get('apc.enable_cli')) { + $warnings['apc_cli'] = array( + 'The apc.enable_cli setting is incorrect.', + 'Add the following to the end of your `php.ini`:', + ' apc.enable_cli = Off', + $iniMessage + ); + } + + if (!$install && extension_loaded('xdebug')) { + $warnings['xdebug_loaded'] = array( + 'The xdebug extension is loaded, this can slow down Composer a little.', + 'Disabling it when using Composer is recommended.' + ); + + if (ini_get('xdebug.profiler_enabled')) { + $warnings['xdebug_profile'] = array( + 'The xdebug.profiler_enabled setting is enabled, this can slow down Composer a lot.', + 'Add the following to the end of your `php.ini` to disable it:', + ' xdebug.profiler_enabled = 0', + $iniMessage + ); + } + } + + if (!extension_loaded('zlib')) { + $warnings['zlib'] = array( + 'The zlib extension is not loaded, this can slow down Composer a lot.', + 'If possible, install it or recompile php with --with-zlib', + $iniMessage + ); + } + + if (defined('PHP_WINDOWS_VERSION_BUILD') + && (version_compare(PHP_VERSION, '7.2.23', '<') + || (version_compare(PHP_VERSION, '7.3.0', '>=') + && version_compare(PHP_VERSION, '7.3.10', '<')))) { + $warnings['onedrive'] = array( + 'The Windows OneDrive folder is not supported on PHP versions below 7.2.23 and 7.3.10.', + 'Upgrade your PHP ('.PHP_VERSION.') to use this location with Composer.' + ); + } + + if (extension_loaded('uopz') && !(ini_get('uopz.disable') || ini_get('uopz.exit'))) { + $warnings['uopz'] = array( + 'The uopz extension ignores exit calls and may not work with all Composer commands.', + 'Disabling it when using Composer is recommended.' + ); + } + + ob_start(); + phpinfo(INFO_GENERAL); + $phpinfo = ob_get_clean(); + if (preg_match('{Configure Command(?: *| *=> *)(.*?)(?:|$)}m', $phpinfo, $match)) { + $configure = $match[1]; + + if (false !== strpos($configure, '--enable-sigchild')) { + $warnings['sigchild'] = array( + 'PHP was compiled with --enable-sigchild which can cause issues on some platforms.', + 'Recompile it without this flag if possible, see also:', + ' https://bugs.php.net/bug.php?id=22999' + ); + } + + if (false !== strpos($configure, '--with-curlwrappers')) { + $warnings['curlwrappers'] = array( + 'PHP was compiled with --with-curlwrappers which will cause issues with HTTP authentication and GitHub.', + 'Recompile it without this flag if possible' + ); + } + } + + // Stringify the message arrays + foreach ($errors as $key => $value) { + $errors[$key] = PHP_EOL.implode(PHP_EOL, $value); + } + + foreach ($warnings as $key => $value) { + $warnings[$key] = PHP_EOL.implode(PHP_EOL, $value); + } + + return !empty($errors) || !empty($warnings); +} + + +/** + * Outputs an array of issues + * + * @param array $issues + */ +function outputIssues($issues) +{ + foreach ($issues as $issue) { + out($issue, 'info'); + } + out(''); +} + +/** + * Outputs any warnings found + * + * @param array $warnings + */ +function showWarnings($warnings) +{ + if (!empty($warnings)) { + out('Some settings on your machine may cause stability issues with Composer.', 'error'); + out('If you encounter issues, try to change the following:', 'error'); + outputIssues($warnings); + } +} + +/** + * Outputs an end of process warning if tls has been bypassed + * + * @param bool $disableTls Bypass tls + */ +function showSecurityWarning($disableTls) +{ + if ($disableTls) { + out('You have instructed the Installer not to enforce SSL/TLS security on remote HTTPS requests.', 'info'); + out('This will leave all downloads during installation vulnerable to Man-In-The-Middle (MITM) attacks', 'info'); + } +} + +/** + * colorize output + */ +function out($text, $color = null, $newLine = true) +{ + $styles = array( + 'success' => "\033[0;32m%s\033[0m", + 'error' => "\033[31;31m%s\033[0m", + 'info' => "\033[33;33m%s\033[0m" + ); + + $format = '%s'; + + if (isset($styles[$color]) && USE_ANSI) { + $format = $styles[$color]; + } + + if ($newLine) { + $format .= PHP_EOL; + } + + printf($format, $text); +} + +/** + * Returns the system-dependent Composer home location, which may not exist + * + * @return string + */ +function getHomeDir() +{ + $home = getenv('COMPOSER_HOME'); + if ($home) { + return $home; + } + + $userDir = getUserDir(); + + if (defined('PHP_WINDOWS_VERSION_MAJOR')) { + return $userDir.'/Composer'; + } + + $dirs = array(); + + if (useXdg()) { + // XDG Base Directory Specifications + $xdgConfig = getenv('XDG_CONFIG_HOME'); + if (!$xdgConfig) { + $xdgConfig = $userDir . '/.config'; + } + + $dirs[] = $xdgConfig . '/composer'; + } + + $dirs[] = $userDir . '/.composer'; + + // select first dir which exists of: $XDG_CONFIG_HOME/composer or ~/.composer + foreach ($dirs as $dir) { + if (is_dir($dir)) { + return $dir; + } + } + + // if none exists, we default to first defined one (XDG one if system uses it, or ~/.composer otherwise) + return $dirs[0]; +} + +/** + * Returns the location of the user directory from the environment + * @throws RuntimeException If the environment value does not exists + * + * @return string + */ +function getUserDir() +{ + $userEnv = defined('PHP_WINDOWS_VERSION_MAJOR') ? 'APPDATA' : 'HOME'; + $userDir = getenv($userEnv); + + if (!$userDir) { + throw new RuntimeException('The '.$userEnv.' or COMPOSER_HOME environment variable must be set for composer to run correctly'); + } + + return rtrim(strtr($userDir, '\\', '/'), '/'); +} + +/** + * @return bool + */ +function useXdg() +{ + foreach (array_keys($_SERVER) as $key) { + if (strpos($key, 'XDG_') === 0) { + return true; + } + } + + if (is_dir('/etc/xdg')) { + return true; + } + + return false; +} + +function validateCaFile($contents) +{ + // assume the CA is valid if php is vulnerable to + // https://www.sektioneins.de/advisories/advisory-012013-php-openssl_x509_parse-memory-corruption-vulnerability.html + if ( + PHP_VERSION_ID <= 50327 + || (PHP_VERSION_ID >= 50400 && PHP_VERSION_ID < 50422) + || (PHP_VERSION_ID >= 50500 && PHP_VERSION_ID < 50506) + ) { + return !empty($contents); + } + + return (bool) openssl_x509_parse($contents); +} + +class Installer +{ + private $quiet; + private $disableTls; + private $cafile; + private $displayPath; + private $target; + private $tmpFile; + private $tmpCafile; + private $baseUrl; + private $algo; + private $errHandler; + private $httpClient; + private $pubKeys = array(); + private $installs = array(); + + /** + * Constructor - must not do anything that throws an exception + * + * @param bool $quiet Quiet mode + * @param bool $disableTls Bypass tls + * @param mixed $cafile Path to CA bundle, or false + */ + public function __construct($quiet, $disableTls, $caFile) + { + if (($this->quiet = $quiet)) { + ob_start(); + } + $this->disableTls = $disableTls; + $this->cafile = $caFile; + $this->errHandler = new ErrorHandler(); + } + + /** + * Runs the installer + * + * @param mixed $version Specific version to install, or false + * @param mixed $installDir Specific installation directory, or false + * @param string $filename Specific filename to save to, or composer.phar + * @param string $channel Specific version channel to use + * @throws Exception If anything other than a RuntimeException is caught + * + * @return bool If the installation succeeded + */ + public function run($version, $installDir, $filename, $channel) + { + try { + $this->initTargets($installDir, $filename); + $this->initTls(); + $this->httpClient = new HttpClient($this->disableTls, $this->cafile); + $result = $this->install($version, $channel); + + // in case --1 or --2 is passed, we leave the default channel for next self-update to stable + if (1 === preg_match('{^\d+$}D', $channel)) { + $channel = 'stable'; + } + + if ($result && $channel !== 'stable' && !$version && defined('PHP_BINARY')) { + $null = (defined('PHP_WINDOWS_VERSION_MAJOR') ? 'NUL' : '/dev/null'); + @exec(escapeshellarg(PHP_BINARY) .' '.escapeshellarg($this->target).' self-update --'.$channel.' --set-channel-only -q > '.$null.' 2> '.$null, $output); + } + } catch (Exception $e) { + $result = false; + } + + // Always clean up + $this->cleanUp($result); + + if (isset($e)) { + // Rethrow anything that is not a RuntimeException + if (!$e instanceof RuntimeException) { + throw $e; + } + out($e->getMessage(), 'error'); + } + return $result; + } + + /** + * Initialization methods to set the required filenames and composer url + * + * @param mixed $installDir Specific installation directory, or false + * @param string $filename Specific filename to save to, or composer.phar + * @throws RuntimeException If the installation directory is not writable + */ + protected function initTargets($installDir, $filename) + { + $this->displayPath = ($installDir ? rtrim($installDir, '/').'/' : '').$filename; + $installDir = $installDir ? realpath($installDir) : getcwd(); + + if (!is_writeable($installDir)) { + throw new RuntimeException('The installation directory "'.$installDir.'" is not writable'); + } + + $this->target = $installDir.DIRECTORY_SEPARATOR.$filename; + $this->tmpFile = $installDir.DIRECTORY_SEPARATOR.basename($this->target, '.phar').'-temp.phar'; + + $uriScheme = $this->disableTls ? 'http' : 'https'; + $this->baseUrl = $uriScheme.'://getcomposer.org'; + } + + /** + * A wrapper around methods to check tls and write public keys + * @throws RuntimeException If SHA384 is not supported + */ + protected function initTls() + { + if ($this->disableTls) { + return; + } + + if (!in_array('sha384', array_map('strtolower', openssl_get_md_methods()))) { + throw new RuntimeException('SHA384 is not supported by your openssl extension'); + } + + $this->algo = defined('OPENSSL_ALGO_SHA384') ? OPENSSL_ALGO_SHA384 : 'SHA384'; + $home = $this->getComposerHome(); + + $this->pubKeys = array( + 'dev' => $this->installKey(self::getPKDev(), $home, 'keys.dev.pub'), + 'tags' => $this->installKey(self::getPKTags(), $home, 'keys.tags.pub') + ); + + if (empty($this->cafile) && !HttpClient::getSystemCaRootBundlePath()) { + $this->cafile = $this->tmpCafile = $this->installKey(HttpClient::getPackagedCaFile(), $home, 'cacert-temp.pem'); + } + } + + /** + * Returns the Composer home directory, creating it if required + * @throws RuntimeException If the directory cannot be created + * + * @return string + */ + protected function getComposerHome() + { + $home = getHomeDir(); + + if (!is_dir($home)) { + $this->errHandler->start(); + + if (!mkdir($home, 0777, true)) { + throw new RuntimeException(sprintf( + 'Unable to create Composer home directory "%s": %s', + $home, + $this->errHandler->message + )); + } + $this->installs[] = $home; + $this->errHandler->stop(); + } + return $home; + } + + /** + * Writes public key data to disc + * + * @param string $data The public key(s) in pem format + * @param string $path The directory to write to + * @param string $filename The name of the file + * @throws RuntimeException If the file cannot be written + * + * @return string The path to the saved data + */ + protected function installKey($data, $path, $filename) + { + $this->errHandler->start(); + + $target = $path.DIRECTORY_SEPARATOR.$filename; + $installed = file_exists($target); + $write = file_put_contents($target, $data, LOCK_EX); + @chmod($target, 0644); + + $this->errHandler->stop(); + + if (!$write) { + throw new RuntimeException(sprintf('Unable to write %s to: %s', $filename, $path)); + } + + if (!$installed) { + $this->installs[] = $target; + } + + return $target; + } + + /** + * The main install function + * + * @param mixed $version Specific version to install, or false + * @param string $channel Version channel to use + * + * @return bool If the installation succeeded + */ + protected function install($version, $channel) + { + $retries = 3; + $result = false; + $infoMsg = 'Downloading...'; + $infoType = 'info'; + + while ($retries--) { + if (!$this->quiet) { + out($infoMsg, $infoType); + $infoMsg = 'Retrying...'; + $infoType = 'error'; + } + + if (!$this->getVersion($channel, $version, $url, $error)) { + out($error, 'error'); + continue; + } + + if (!$this->downloadToTmp($url, $signature, $error)) { + out($error, 'error'); + continue; + } + + if (!$this->verifyAndSave($version, $signature, $error)) { + out($error, 'error'); + continue; + } + + $result = true; + break; + } + + if (!$this->quiet) { + if ($result) { + out(PHP_EOL."Composer (version {$version}) successfully installed to: {$this->target}", 'success'); + out("Use it: php {$this->displayPath}", 'info'); + out(''); + } else { + out('The download failed repeatedly, aborting.', 'error'); + } + } + return $result; + } + + /** + * Sets the version url, downloading version data if required + * + * @param string $channel Version channel to use + * @param false|string $version Version to install, or set by method + * @param null|string $url The versioned url, set by method + * @param null|string $error Set by method on failure + * + * @return bool If the operation succeeded + */ + protected function getVersion($channel, &$version, &$url, &$error) + { + $error = ''; + + if ($version) { + if (empty($url)) { + $url = $this->baseUrl."/download/{$version}/composer.phar"; + } + return true; + } + + $this->errHandler->start(); + + if ($this->downloadVersionData($data, $error)) { + $this->parseVersionData($data, $channel, $version, $url); + } + + $this->errHandler->stop(); + return empty($error); + } + + /** + * Downloads and json-decodes version data + * + * @param null|array $data Downloaded version data, set by method + * @param null|string $error Set by method on failure + * + * @return bool If the operation succeeded + */ + protected function downloadVersionData(&$data, &$error) + { + $url = $this->baseUrl.'/versions'; + $errFmt = 'The "%s" file could not be %s: %s'; + + if (!$json = $this->httpClient->get($url)) { + $error = sprintf($errFmt, $url, 'downloaded', $this->errHandler->message); + return false; + } + + if (!$data = json_decode($json, true)) { + $error = sprintf($errFmt, $url, 'json-decoded', $this->getJsonError()); + return false; + } + return true; + } + + /** + * A wrapper around the methods needed to download and save the phar + * + * @param string $url The versioned download url + * @param null|string $signature Set by method on successful download + * @param null|string $error Set by method on failure + * + * @return bool If the operation succeeded + */ + protected function downloadToTmp($url, &$signature, &$error) + { + $error = ''; + $errFmt = 'The "%s" file could not be downloaded: %s'; + $sigUrl = $url.'.sig'; + $this->errHandler->start(); + + if (!$fh = fopen($this->tmpFile, 'w')) { + $error = sprintf('Could not create file "%s": %s', $this->tmpFile, $this->errHandler->message); + + } elseif (!$this->getSignature($sigUrl, $signature)) { + $error = sprintf($errFmt, $sigUrl, $this->errHandler->message); + + } elseif (!fwrite($fh, $this->httpClient->get($url))) { + $error = sprintf($errFmt, $url, $this->errHandler->message); + } + + if (is_resource($fh)) { + fclose($fh); + } + $this->errHandler->stop(); + return empty($error); + } + + /** + * Verifies the downloaded file and saves it to the target location + * + * @param string $version The composer version downloaded + * @param string $signature The digital signature to check + * @param null|string $error Set by method on failure + * + * @return bool If the operation succeeded + */ + protected function verifyAndSave($version, $signature, &$error) + { + $error = ''; + + if (!$this->validatePhar($this->tmpFile, $pharError)) { + $error = 'The download is corrupt: '.$pharError; + + } elseif (!$this->verifySignature($version, $signature, $this->tmpFile)) { + $error = 'Signature mismatch, could not verify the phar file integrity'; + + } else { + $this->errHandler->start(); + + if (!rename($this->tmpFile, $this->target)) { + $error = sprintf('Could not write to file "%s": %s', $this->target, $this->errHandler->message); + } + chmod($this->target, 0755); + $this->errHandler->stop(); + } + + return empty($error); + } + + /** + * Parses an array of version data to match the required channel + * + * @param array $data Downloaded version data + * @param mixed $channel Version channel to use + * @param false|string $version Set by method + * @param mixed $url The versioned url, set by method + */ + protected function parseVersionData(array $data, $channel, &$version, &$url) + { + foreach ($data[$channel] as $candidate) { + if ($candidate['min-php'] <= PHP_VERSION_ID) { + $version = $candidate['version']; + $url = $this->baseUrl.$candidate['path']; + break; + } + } + + if (!$version) { + $error = sprintf( + 'None of the %d %s version(s) of Composer matches your PHP version (%s / ID: %d)', + count($data[$channel]), + $channel, + PHP_VERSION, + PHP_VERSION_ID + ); + throw new RuntimeException($error); + } + } + + /** + * Downloads the digital signature of required phar file + * + * @param string $url The signature url + * @param null|string $signature Set by method on success + * + * @return bool If the download succeeded + */ + protected function getSignature($url, &$signature) + { + if (!$result = $this->disableTls) { + $signature = $this->httpClient->get($url); + + if ($signature) { + $signature = json_decode($signature, true); + $signature = base64_decode($signature['sha384']); + $result = true; + } + } + + return $result; + } + + /** + * Verifies the signature of the downloaded phar + * + * @param string $version The composer versione + * @param string $signature The downloaded digital signature + * @param string $file The temp phar file + * + * @return bool If the operation succeeded + */ + protected function verifySignature($version, $signature, $file) + { + if (!$result = $this->disableTls) { + $path = preg_match('{^[0-9a-f]{40}$}', $version) ? $this->pubKeys['dev'] : $this->pubKeys['tags']; + $pubkeyid = openssl_pkey_get_public('file://'.$path); + + $result = 1 === openssl_verify( + file_get_contents($file), + $signature, + $pubkeyid, + $this->algo + ); + + // PHP 8 automatically frees the key instance and deprecates the function + if (PHP_VERSION_ID < 80000) { + openssl_free_key($pubkeyid); + } + } + + return $result; + } + + /** + * Validates the downloaded phar file + * + * @param string $pharFile The temp phar file + * @param null|string $error Set by method on failure + * + * @return bool If the operation succeeded + */ + protected function validatePhar($pharFile, &$error) + { + if (ini_get('phar.readonly')) { + return true; + } + + try { + // Test the phar validity + $phar = new Phar($pharFile); + // Free the variable to unlock the file + unset($phar); + $result = true; + + } catch (Exception $e) { + if (!$e instanceof UnexpectedValueException && !$e instanceof PharException) { + throw $e; + } + $error = $e->getMessage(); + $result = false; + } + return $result; + } + + /** + * Returns a string representation of the last json error + * + * @return string The error string or code + */ + protected function getJsonError() + { + if (function_exists('json_last_error_msg')) { + return json_last_error_msg(); + } else { + return 'json_last_error = '.json_last_error(); + } + } + + /** + * Cleans up resources at the end of the installation + * + * @param bool $result If the installation succeeded + */ + protected function cleanUp($result) + { + if (!$result) { + // Output buffered errors + if ($this->quiet) { + $this->outputErrors(); + } + // Clean up stuff we created + $this->uninstall(); + } elseif ($this->tmpCafile) { + @unlink($this->tmpCafile); + } + } + + /** + * Outputs unique errors when in quiet mode + * + */ + protected function outputErrors() + { + $errors = explode(PHP_EOL, ob_get_clean()); + $shown = array(); + + foreach ($errors as $error) { + if ($error && !in_array($error, $shown)) { + out($error, 'error'); + $shown[] = $error; + } + } + } + + /** + * Uninstalls newly-created files and directories on failure + * + */ + protected function uninstall() + { + foreach (array_reverse($this->installs) as $target) { + if (is_file($target)) { + @unlink($target); + } elseif (is_dir($target)) { + @rmdir($target); + } + } + + if ($this->tmpFile !== null && file_exists($this->tmpFile)) { + @unlink($this->tmpFile); + } + } + + public static function getPKDev() + { + return <<message) { + $this->message .= PHP_EOL; + } + $this->message .= preg_replace('{^file_get_contents\(.*?\): }', '', $msg); + } + + /** + * Starts error-handling if not already active + * + * Any message is cleared + */ + public function start() + { + if (!$this->active) { + set_error_handler(array($this, 'handleError')); + $this->active = true; + } + $this->message = ''; + } + + /** + * Stops error-handling if active + * + * Any message is preserved until the next call to start() + */ + public function stop() + { + if ($this->active) { + restore_error_handler(); + $this->active = false; + } + } +} + +class NoProxyPattern +{ + private $composerInNoProxy = false; + private $rulePorts = array(); + + public function __construct($pattern) + { + $rules = preg_split('{[\s,]+}', $pattern, null, PREG_SPLIT_NO_EMPTY); + + if ($matches = preg_grep('{getcomposer\.org(?::\d+)?}i', $rules)) { + $this->composerInNoProxy = true; + + foreach ($matches as $match) { + if (strpos($match, ':') !== false) { + list(, $port) = explode(':', $match); + $this->rulePorts[] = (int) $port; + } + } + } + } + + /** + * Returns true if NO_PROXY contains getcomposer.org + * + * @param string $url http(s)://getcomposer.org + * + * @return bool + */ + public function test($url) + { + if (!$this->composerInNoProxy) { + return false; + } + + if (empty($this->rulePorts)) { + return true; + } + + if (strpos($url, 'http://') === 0) { + $port = 80; + } else { + $port = 443; + } + + return in_array($port, $this->rulePorts); + } +} + +class HttpClient { + + /** @var null|string */ + private static $caPath; + + private $options = array('http' => array()); + private $disableTls = false; + + public function __construct($disableTls = false, $cafile = false) + { + $this->disableTls = $disableTls; + if ($this->disableTls === false) { + if (!empty($cafile) && !is_dir($cafile)) { + if (!is_readable($cafile) || !validateCaFile(file_get_contents($cafile))) { + throw new RuntimeException('The configured cafile (' .$cafile. ') was not valid or could not be read.'); + } + } + $options = $this->getTlsStreamContextDefaults($cafile); + $this->options = array_replace_recursive($this->options, $options); + } + } + + public function get($url) + { + $context = $this->getStreamContext($url); + $result = file_get_contents($url, false, $context); + + if ($result && extension_loaded('zlib')) { + $decode = false; + foreach ($http_response_header as $header) { + if (preg_match('{^content-encoding: *gzip *$}i', $header)) { + $decode = true; + continue; + } elseif (preg_match('{^HTTP/}i', $header)) { + $decode = false; + } + } + + if ($decode) { + if (version_compare(PHP_VERSION, '5.4.0', '>=')) { + $result = zlib_decode($result); + } else { + // work around issue with gzuncompress & co that do not work with all gzip checksums + $result = file_get_contents('compress.zlib://data:application/octet-stream;base64,'.base64_encode($result)); + } + + if (!$result) { + throw new RuntimeException('Failed to decode zlib stream'); + } + } + } + + return $result; + } + + protected function getStreamContext($url) + { + if ($this->disableTls === false) { + if (PHP_VERSION_ID < 50600) { + $this->options['ssl']['SNI_server_name'] = parse_url($url, PHP_URL_HOST); + } + } + // Keeping the above mostly isolated from the code copied from Composer. + return $this->getMergedStreamContext($url); + } + + protected function getTlsStreamContextDefaults($cafile) + { + $ciphers = implode(':', array( + 'ECDHE-RSA-AES128-GCM-SHA256', + 'ECDHE-ECDSA-AES128-GCM-SHA256', + 'ECDHE-RSA-AES256-GCM-SHA384', + 'ECDHE-ECDSA-AES256-GCM-SHA384', + 'DHE-RSA-AES128-GCM-SHA256', + 'DHE-DSS-AES128-GCM-SHA256', + 'kEDH+AESGCM', + 'ECDHE-RSA-AES128-SHA256', + 'ECDHE-ECDSA-AES128-SHA256', + 'ECDHE-RSA-AES128-SHA', + 'ECDHE-ECDSA-AES128-SHA', + 'ECDHE-RSA-AES256-SHA384', + 'ECDHE-ECDSA-AES256-SHA384', + 'ECDHE-RSA-AES256-SHA', + 'ECDHE-ECDSA-AES256-SHA', + 'DHE-RSA-AES128-SHA256', + 'DHE-RSA-AES128-SHA', + 'DHE-DSS-AES128-SHA256', + 'DHE-RSA-AES256-SHA256', + 'DHE-DSS-AES256-SHA', + 'DHE-RSA-AES256-SHA', + 'AES128-GCM-SHA256', + 'AES256-GCM-SHA384', + 'AES128-SHA256', + 'AES256-SHA256', + 'AES128-SHA', + 'AES256-SHA', + 'AES', + 'CAMELLIA', + 'DES-CBC3-SHA', + '!aNULL', + '!eNULL', + '!EXPORT', + '!DES', + '!RC4', + '!MD5', + '!PSK', + '!aECDH', + '!EDH-DSS-DES-CBC3-SHA', + '!EDH-RSA-DES-CBC3-SHA', + '!KRB5-DES-CBC3-SHA', + )); + + /** + * CN_match and SNI_server_name are only known once a URL is passed. + * They will be set in the getOptionsForUrl() method which receives a URL. + * + * cafile or capath can be overridden by passing in those options to constructor. + */ + $options = array( + 'ssl' => array( + 'ciphers' => $ciphers, + 'verify_peer' => true, + 'verify_depth' => 7, + 'SNI_enabled' => true, + ) + ); + + /** + * Attempt to find a local cafile or throw an exception. + * The user may go download one if this occurs. + */ + if (!$cafile) { + $cafile = self::getSystemCaRootBundlePath(); + } + if (is_dir($cafile)) { + $options['ssl']['capath'] = $cafile; + } elseif ($cafile) { + $options['ssl']['cafile'] = $cafile; + } else { + throw new RuntimeException('A valid cafile could not be located automatically.'); + } + + /** + * Disable TLS compression to prevent CRIME attacks where supported. + */ + if (version_compare(PHP_VERSION, '5.4.13') >= 0) { + $options['ssl']['disable_compression'] = true; + } + + return $options; + } + + /** + * function copied from Composer\Util\StreamContextFactory::initOptions + * + * Any changes should be applied there as well, or backported here. + * + * @param string $url URL the context is to be used for + * @return resource Default context + * @throws \RuntimeException if https proxy required and OpenSSL uninstalled + */ + protected function getMergedStreamContext($url) + { + $options = $this->options; + + // Handle HTTP_PROXY/http_proxy on CLI only for security reasons + if ((PHP_SAPI === 'cli' || PHP_SAPI === 'phpdbg') && (!empty($_SERVER['HTTP_PROXY']) || !empty($_SERVER['http_proxy']))) { + $proxy = parse_url(!empty($_SERVER['http_proxy']) ? $_SERVER['http_proxy'] : $_SERVER['HTTP_PROXY']); + } + + // Prefer CGI_HTTP_PROXY if available + if (!empty($_SERVER['CGI_HTTP_PROXY'])) { + $proxy = parse_url($_SERVER['CGI_HTTP_PROXY']); + } + + // Override with HTTPS proxy if present and URL is https + if (preg_match('{^https://}i', $url) && (!empty($_SERVER['HTTPS_PROXY']) || !empty($_SERVER['https_proxy']))) { + $proxy = parse_url(!empty($_SERVER['https_proxy']) ? $_SERVER['https_proxy'] : $_SERVER['HTTPS_PROXY']); + } + + // Remove proxy if URL matches no_proxy directive + if (!empty($_SERVER['NO_PROXY']) || !empty($_SERVER['no_proxy']) && parse_url($url, PHP_URL_HOST)) { + $pattern = new NoProxyPattern(!empty($_SERVER['no_proxy']) ? $_SERVER['no_proxy'] : $_SERVER['NO_PROXY']); + if ($pattern->test($url)) { + unset($proxy); + } + } + + if (!empty($proxy)) { + $proxyURL = isset($proxy['scheme']) ? $proxy['scheme'] . '://' : ''; + $proxyURL .= isset($proxy['host']) ? $proxy['host'] : ''; + + if (isset($proxy['port'])) { + $proxyURL .= ":" . $proxy['port']; + } elseif (strpos($proxyURL, 'http://') === 0) { + $proxyURL .= ":80"; + } elseif (strpos($proxyURL, 'https://') === 0) { + $proxyURL .= ":443"; + } + + // check for a secure proxy + if (strpos($proxyURL, 'https://') === 0) { + if (!extension_loaded('openssl')) { + throw new RuntimeException('You must enable the openssl extension to use a secure proxy.'); + } + if (strpos($url, 'https://') === 0) { + throw new RuntimeException('PHP does not support https requests through a secure proxy.'); + } + } + + // http(s):// is not supported in proxy + $proxyURL = str_replace(array('http://', 'https://'), array('tcp://', 'ssl://'), $proxyURL); + + $options['http'] = array( + 'proxy' => $proxyURL, + ); + + // add request_fulluri for http requests + if ('http' === parse_url($url, PHP_URL_SCHEME)) { + $options['http']['request_fulluri'] = true; + } + + // handle proxy auth if present + if (isset($proxy['user'])) { + $auth = rawurldecode($proxy['user']); + if (isset($proxy['pass'])) { + $auth .= ':' . rawurldecode($proxy['pass']); + } + $auth = base64_encode($auth); + + $options['http']['header'] = "Proxy-Authorization: Basic {$auth}\r\n"; + } + } + + if (isset($options['http']['header'])) { + $options['http']['header'] .= "Connection: close\r\n"; + } else { + $options['http']['header'] = "Connection: close\r\n"; + } + if (extension_loaded('zlib')) { + $options['http']['header'] .= "Accept-Encoding: gzip\r\n"; + } + $options['http']['header'] .= "User-Agent: ".COMPOSER_INSTALLER."\r\n"; + $options['http']['protocol_version'] = 1.1; + $options['http']['timeout'] = 600; + + return stream_context_create($options); + } + + /** + * This method was adapted from Sslurp. + * https://github.com/EvanDotPro/Sslurp + * + * (c) Evan Coury + * + * For the full copyright and license information, please see below: + * + * Copyright (c) 2013, Evan Coury + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without modification, + * are permitted provided that the following conditions are met: + * + * * Redistributions of source code must retain the above copyright notice, + * this list of conditions and the following disclaimer. + * + * * Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following disclaimer in the documentation + * and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR + * ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON + * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + public static function getSystemCaRootBundlePath() + { + if (self::$caPath !== null) { + return self::$caPath; + } + + // If SSL_CERT_FILE env variable points to a valid certificate/bundle, use that. + // This mimics how OpenSSL uses the SSL_CERT_FILE env variable. + $envCertFile = getenv('SSL_CERT_FILE'); + if ($envCertFile && is_readable($envCertFile) && validateCaFile(file_get_contents($envCertFile))) { + return self::$caPath = $envCertFile; + } + + // If SSL_CERT_DIR env variable points to a valid certificate/bundle, use that. + // This mimics how OpenSSL uses the SSL_CERT_FILE env variable. + $envCertDir = getenv('SSL_CERT_DIR'); + if ($envCertDir && is_dir($envCertDir) && is_readable($envCertDir)) { + return self::$caPath = $envCertDir; + } + + $configured = ini_get('openssl.cafile'); + if ($configured && strlen($configured) > 0 && is_readable($configured) && validateCaFile(file_get_contents($configured))) { + return self::$caPath = $configured; + } + + $configured = ini_get('openssl.capath'); + if ($configured && is_dir($configured) && is_readable($configured)) { + return self::$caPath = $configured; + } + + $caBundlePaths = array( + '/etc/pki/tls/certs/ca-bundle.crt', // Fedora, RHEL, CentOS (ca-certificates package) + '/etc/ssl/certs/ca-certificates.crt', // Debian, Ubuntu, Gentoo, Arch Linux (ca-certificates package) + '/etc/ssl/ca-bundle.pem', // SUSE, openSUSE (ca-certificates package) + '/usr/local/share/certs/ca-root-nss.crt', // FreeBSD (ca_root_nss_package) + '/usr/ssl/certs/ca-bundle.crt', // Cygwin + '/opt/local/share/curl/curl-ca-bundle.crt', // OS X macports, curl-ca-bundle package + '/usr/local/share/curl/curl-ca-bundle.crt', // Default cURL CA bunde path (without --with-ca-bundle option) + '/usr/share/ssl/certs/ca-bundle.crt', // Really old RedHat? + '/etc/ssl/cert.pem', // OpenBSD + '/usr/local/etc/ssl/cert.pem', // FreeBSD 10.x + '/usr/local/etc/openssl/cert.pem', // OS X homebrew, openssl package + '/usr/local/etc/openssl@1.1/cert.pem', // OS X homebrew, openssl@1.1 package + '/opt/homebrew/etc/openssl@3/cert.pem', // macOS silicon homebrew, openssl@3 package + '/opt/homebrew/etc/openssl@1.1/cert.pem', // macOS silicon homebrew, openssl@1.1 package + ); + + foreach ($caBundlePaths as $caBundle) { + if (@is_readable($caBundle) && validateCaFile(file_get_contents($caBundle))) { + return self::$caPath = $caBundle; + } + } + + foreach ($caBundlePaths as $caBundle) { + $caBundle = dirname($caBundle); + if (is_dir($caBundle) && glob($caBundle.'/*')) { + return self::$caPath = $caBundle; + } + } + + return self::$caPath = false; + } + + public static function getPackagedCaFile() + { + return <<> $metadataFile echo "$OS_TYPE_METADATA_NAME=$debianFlavor" >> $metadataFile fi diff --git a/platforms/python/prereqs/build.sh b/platforms/python/prereqs/build.sh index e49f4e714..260453ef8 100755 --- a/platforms/python/prereqs/build.sh +++ b/platforms/python/prereqs/build.sh @@ -176,7 +176,7 @@ if [ -n "$pipReqSetPath" ]; then sed -i 's|logger\.debug('\''Cleaning up\.\.\.'\'')|logger\.info('\''Cleaning up\.\.\.'\'')|' "$pipReqSetPath" fi -compressedSdkDir="/tmp/compressedSdk" +compressedSdkDir="/tmp/compressedSdk/python" mkdir -p $compressedSdkDir cd "$INSTALLATION_PREFIX" tar -zcf $compressedSdkDir/$pythonSdkFileName . diff --git a/src/BuildScriptGenerator.Common/SdkStorageConstants.cs b/src/BuildScriptGenerator.Common/SdkStorageConstants.cs index 234c3ea4a..2693cdbff 100644 --- a/src/BuildScriptGenerator.Common/SdkStorageConstants.cs +++ b/src/BuildScriptGenerator.Common/SdkStorageConstants.cs @@ -6,14 +6,7 @@ namespace Microsoft.Oryx.BuildScriptGenerator.Common { public const string EnableDynamicInstallKey = "ENABLE_DYNAMIC_INSTALL"; public const string SdkStorageBaseUrlKeyName = "ORYX_SDK_STORAGE_BASE_URL"; - public const string TestingSdkStorageUrlKeyName = "ORYX_TEST_SDK_STORAGE_URL"; - public const string PrivateStagingStorageSasTokenKey = "ORYX_SDK_STORAGE_ACCOUNT_ACCESS_TOKEN"; public const string OryxKeyvaultUri = "https://oryx.vault.azure.net"; - public const string StagingStorageSasTokenKeyvaultSecretName = "ORYX-SDK-STAGING-PRIVATE-SAS-TOKEN"; - public const string PrivateStagingSdkStorageBaseUrl = "https://oryxsdksstaging.blob.core.windows.net"; - public const string DevSdkStorageBaseUrl = "https://oryxsdksdev.blob.core.windows.net"; - public const string SandboxSdkStorageBaseUrl = "https://oryxsdkssandbox.blob.core.windows.net"; - public const string PrivateSdkStorageBaseUrl = "https://oryxsdksprivate.blob.core.windows.net"; public const string ProdSdkStorageBaseUrl = "https://oryxsdksprod.blob.core.windows.net"; public const string ProdBackupSdkStorageBaseUrl = "https://oryxsdksprodbackup.blob.core.windows.net"; public const string ProdSdkCdnStorageBaseUrl = "https://oryx-cdn.microsoft.io"; @@ -21,7 +14,7 @@ namespace Microsoft.Oryx.BuildScriptGenerator.Common public const string DefaultVersionFilePrefix = "defaultVersion"; public const string DefaultVersionFileType = "txt"; public const string VersionsToBuildFileName = "versionsToBuild.txt"; - public const string ContainerMetadataUrlFormat = "{0}/{1}?restype=container&comp=list&include=metadata&marker={2}&{3}"; + public const string ContainerMetadataUrlFormat = "{0}/{1}?restype=container&comp=list&include=metadata&marker={2}"; public const string SdkDownloadSentinelFileName = ".oryx-sdkdownload-sentinel"; public const string SdkVersionMetadataName = "Sdk_version"; public const string LegacySdkVersionMetadataName = "Version"; diff --git a/src/BuildScriptGenerator.Common/ShellScriptBuilder.cs b/src/BuildScriptGenerator.Common/ShellScriptBuilder.cs index 50433c315..29cf261bb 100644 --- a/src/BuildScriptGenerator.Common/ShellScriptBuilder.cs +++ b/src/BuildScriptGenerator.Common/ShellScriptBuilder.cs @@ -183,21 +183,6 @@ namespace Microsoft.Oryx.BuildScriptGenerator.Common /// public ShellScriptBuilder AddDefaultTestEnvironmentVariables() { - var testStorageAccountUrl = Environment.GetEnvironmentVariable(SdkStorageConstants.TestingSdkStorageUrlKeyName); - - if (string.IsNullOrEmpty(testStorageAccountUrl)) - { - testStorageAccountUrl = SdkStorageConstants.PrivateStagingSdkStorageBaseUrl; - } - - this.SetEnvironmentVariable(SdkStorageConstants.SdkStorageBaseUrlKeyName, testStorageAccountUrl); - if (testStorageAccountUrl == SdkStorageConstants.PrivateStagingSdkStorageBaseUrl) - { - string stagingStorageSasToken = Environment.GetEnvironmentVariable(SdkStorageConstants.PrivateStagingStorageSasTokenKey) ?? - KeyVaultHelper.GetKeyVaultSecretValue(SdkStorageConstants.OryxKeyvaultUri, SdkStorageConstants.StagingStorageSasTokenKeyvaultSecretName); - this.SetEnvironmentVariable(SdkStorageConstants.PrivateStagingStorageSasTokenKey, stagingStorageSasToken); - } - return this; } diff --git a/src/BuildScriptGenerator/DotNetCore/VersionProviders/DotNetCoreSdkStorageVersionProvider.cs b/src/BuildScriptGenerator/DotNetCore/VersionProviders/DotNetCoreSdkStorageVersionProvider.cs index cf072c0c9..7b95480c8 100644 --- a/src/BuildScriptGenerator/DotNetCore/VersionProviders/DotNetCoreSdkStorageVersionProvider.cs +++ b/src/BuildScriptGenerator/DotNetCore/VersionProviders/DotNetCoreSdkStorageVersionProvider.cs @@ -57,8 +57,7 @@ namespace Microsoft.Oryx.BuildScriptGenerator.DotNetCore { var httpClient = this.HttpClientFactory.CreateClient("general"); var sdkStorageBaseUrl = this.GetPlatformBinariesStorageBaseUrl(); - var oryxSdkStorageAccountAccessToken = this.commonOptions.OryxSdkStorageAccountAccessToken; - var xdoc = ListBlobsHelper.GetAllBlobs(sdkStorageBaseUrl, DotNetCoreConstants.PlatformName, httpClient, oryxSdkStorageAccountAccessToken); + var xdoc = ListBlobsHelper.GetAllBlobs(sdkStorageBaseUrl, DotNetCoreConstants.PlatformName, httpClient); // keys represent runtime version, values represent sdk version var supportedVersions = new Dictionary(StringComparer.OrdinalIgnoreCase); diff --git a/src/BuildScriptGenerator/Helpers/ListBlobsHelper.cs b/src/BuildScriptGenerator/Helpers/ListBlobsHelper.cs index d74bf32e1..9c9661332 100644 --- a/src/BuildScriptGenerator/Helpers/ListBlobsHelper.cs +++ b/src/BuildScriptGenerator/Helpers/ListBlobsHelper.cs @@ -12,11 +12,9 @@ namespace Microsoft.Oryx.BuildScriptGenerator { internal static class ListBlobsHelper { - public static XDocument GetAllBlobs(string sdkStorageBaseUrl, string platform, HttpClient httpClient, string oryxSdkStorageAccountAccessToken) + public static XDocument GetAllBlobs(string sdkStorageBaseUrl, string platform, HttpClient httpClient) { - var oryxSdkStorageAccountAccessArgs = oryxSdkStorageAccountAccessToken?.TrimStart(new char[] { '?' }) ?? string.Empty; - - var url = string.Format(SdkStorageConstants.ContainerMetadataUrlFormat, sdkStorageBaseUrl, platform, string.Empty, oryxSdkStorageAccountAccessArgs); + var url = string.Format(SdkStorageConstants.ContainerMetadataUrlFormat, sdkStorageBaseUrl, platform, string.Empty); string blobList; try { @@ -44,7 +42,7 @@ namespace Microsoft.Oryx.BuildScriptGenerator // and consolidate blobs from all the pages. do { - url = string.Format(SdkStorageConstants.ContainerMetadataUrlFormat, sdkStorageBaseUrl, platform, marker, oryxSdkStorageAccountAccessArgs); + url = string.Format(SdkStorageConstants.ContainerMetadataUrlFormat, sdkStorageBaseUrl, platform, marker); var blobListFromNextMarker = httpClient.GetStringAsync(url).Result; var xdocFromNextMarker = XDocument.Parse(blobListFromNextMarker); marker = xdocFromNextMarker.Root.Element("NextMarker").Value; diff --git a/src/BuildScriptGenerator/Options/BuildScriptGeneratorOptions.cs b/src/BuildScriptGenerator/Options/BuildScriptGeneratorOptions.cs index d70f51394..c2f5fe22b 100644 --- a/src/BuildScriptGenerator/Options/BuildScriptGeneratorOptions.cs +++ b/src/BuildScriptGenerator/Options/BuildScriptGeneratorOptions.cs @@ -65,8 +65,6 @@ namespace Microsoft.Oryx.BuildScriptGenerator public string OryxSdkStorageBaseUrl { get; set; } - public string OryxSdkStorageAccountAccessToken { get; set; } - public bool EnableTelemetry { get; set; } public string PreBuildScriptPath { get; set; } diff --git a/src/BuildScriptGenerator/PlatformInstallerBase.cs b/src/BuildScriptGenerator/PlatformInstallerBase.cs index 35724aaf9..773446015 100644 --- a/src/BuildScriptGenerator/PlatformInstallerBase.cs +++ b/src/BuildScriptGenerator/PlatformInstallerBase.cs @@ -116,7 +116,6 @@ namespace Microsoft.Oryx.BuildScriptGenerator string directoryToInstall = null) { var sdkStorageBaseUrl = this.GetPlatformBinariesStorageBaseUrl(); - var sdkStorageAccountAccessToken = this.CommonOptions.OryxSdkStorageAccountAccessToken; var versionDirInTemp = directoryToInstall; if (string.IsNullOrEmpty(versionDirInTemp)) diff --git a/src/BuildScriptGenerator/SdkStorageVersionProviderBase.cs b/src/BuildScriptGenerator/SdkStorageVersionProviderBase.cs index 1b0916277..feb4438b5 100644 --- a/src/BuildScriptGenerator/SdkStorageVersionProviderBase.cs +++ b/src/BuildScriptGenerator/SdkStorageVersionProviderBase.cs @@ -50,8 +50,7 @@ namespace Microsoft.Oryx.BuildScriptGenerator this.logger.LogDebug("Getting list of available versions for platform {platformName}.", platformName); var httpClient = this.HttpClientFactory.CreateClient("general"); var sdkStorageBaseUrl = this.GetPlatformBinariesStorageBaseUrl(); - var oryxSdkStorageAccountAccessToken = this.commonOptions.OryxSdkStorageAccountAccessToken; - var xdoc = ListBlobsHelper.GetAllBlobs(sdkStorageBaseUrl, platformName, httpClient, oryxSdkStorageAccountAccessToken); + var xdoc = ListBlobsHelper.GetAllBlobs(sdkStorageBaseUrl, platformName, httpClient); var supportedVersions = new List(); var isStretch = string.Equals(this.commonOptions.DebianFlavor, OsTypes.DebianStretch, StringComparison.OrdinalIgnoreCase); @@ -101,7 +100,7 @@ namespace Microsoft.Oryx.BuildScriptGenerator try { defaultVersionContent = httpClient - .GetStringAsync($"{defaultVersionUrl}{this.commonOptions.OryxSdkStorageAccountAccessToken}") + .GetStringAsync($"{defaultVersionUrl}") .Result; } catch (AggregateException ae) diff --git a/src/BuildScriptGeneratorCli/Options/BuildScriptGeneratorOptionsSetup.cs b/src/BuildScriptGeneratorCli/Options/BuildScriptGeneratorOptionsSetup.cs index a46293f10..44e11bdf2 100644 --- a/src/BuildScriptGeneratorCli/Options/BuildScriptGeneratorOptionsSetup.cs +++ b/src/BuildScriptGeneratorCli/Options/BuildScriptGeneratorOptionsSetup.cs @@ -51,7 +51,6 @@ namespace Microsoft.Oryx.BuildScriptGeneratorCli.Options options.PostBuildScriptPath = this.GetStringValue(SettingsKeys.PostBuildScriptPath); options.PostBuildCommand = this.GetStringValue(SettingsKeys.PostBuildCommand); options.OryxSdkStorageBaseUrl = this.GetStringValue(SettingsKeys.OryxSdkStorageBaseUrl); - options.OryxSdkStorageAccountAccessToken = this.GetStringValue(SettingsKeys.OryxSdkStorageAccountAccessToken); options.AppType = this.GetStringValue(SettingsKeys.AppType); options.BuildCommandsFileName = this.GetStringValue(SettingsKeys.BuildCommandsFileName); options.CompressDestinationDir = this.GetBooleanValue(SettingsKeys.CompressDestinationDir); diff --git a/src/BuildScriptGeneratorCli/SettingsKeys.cs b/src/BuildScriptGeneratorCli/SettingsKeys.cs index 7d84169f4..bc8edce48 100644 --- a/src/BuildScriptGeneratorCli/SettingsKeys.cs +++ b/src/BuildScriptGeneratorCli/SettingsKeys.cs @@ -64,7 +64,6 @@ namespace Microsoft.Oryx.BuildScriptGeneratorCli public const string YarnTimeOutConfig = "YARN_TIMEOUT_CONFIG"; public const string PythonVirtualEnvironmentName = "VIRTUALENV_NAME"; public const string OryxSdkStorageBaseUrl = "ORYX_SDK_STORAGE_BASE_URL"; - public const string OryxSdkStorageAccountAccessToken = "ORYX_SDK_STORAGE_ACCOUNT_ACCESS_TOKEN"; public const string AppType = "ORYX_APP_TYPE"; public const string BuildCommandsFileName = "BUILDCOMMANDS_FILE"; public const string DynamicInstallRootDir = "DYNAMIC_INSTALL_ROOT_DIR"; diff --git a/tests/Oryx.BuildImage.Tests/CommandTests/ExecCommandTest.cs b/tests/Oryx.BuildImage.Tests/CommandTests/ExecCommandTest.cs index 85625683b..df04b9004 100644 --- a/tests/Oryx.BuildImage.Tests/CommandTests/ExecCommandTest.cs +++ b/tests/Oryx.BuildImage.Tests/CommandTests/ExecCommandTest.cs @@ -29,7 +29,7 @@ namespace Oryx.BuildImage.Tests public void ExecutesCommand_AfterInstallingPlatformIfNotPresentAlready() { // Arrange - var nodeVersion = "4.4.7"; + var nodeVersion = "17.6.0"; var volume = CreateWebFrontEndVolume(); var appDir = volume.ContainerDir; var subDir = Guid.NewGuid(); @@ -67,7 +67,7 @@ namespace Oryx.BuildImage.Tests public void ExecutesCommand_AfterInstallingPlatformVersionSpecifiedByBuildEnvFile() { // Arrange - var nodeVersion = "4.4.7"; + var nodeVersion = "17.6.0"; var volume = CreateWebFrontEndVolume(); var appDir = volume.ContainerDir; var subDir = Guid.NewGuid(); diff --git a/tests/Oryx.BuildImage.Tests/CommandTests/PlatformsCommandTest.cs b/tests/Oryx.BuildImage.Tests/CommandTests/PlatformsCommandTest.cs index 330797522..3e51a226a 100644 --- a/tests/Oryx.BuildImage.Tests/CommandTests/PlatformsCommandTest.cs +++ b/tests/Oryx.BuildImage.Tests/CommandTests/PlatformsCommandTest.cs @@ -54,10 +54,10 @@ namespace Microsoft.Oryx.BuildImage.Tests Assert.NotNull(dotNetCorePlatform); Assert.NotNull(dotNetCorePlatform.Versions); Assert.True(dotNetCorePlatform.Versions.Any()); - Assert.True(dotNetCorePlatform.Versions.Contains("1.1.13")); - Assert.True(dotNetCorePlatform.Versions.Contains("5.0.0-preview.3.20214.6")); - Assert.True(dotNetCorePlatform.Versions.Contains("6.0.0-rc.1.21451.13")); - Assert.True(dotNetCorePlatform.Versions.Contains("7.0.0-preview.1.22076.8")); + Assert.True(dotNetCorePlatform.Versions.Contains("2.1.23")); + Assert.True(dotNetCorePlatform.Versions.Contains("5.0.17")); + Assert.True(dotNetCorePlatform.Versions.Contains("6.0.0-preview.7.21377.19")); + Assert.True(dotNetCorePlatform.Versions.Contains("7.0.3")); var nodePlatform = actualResults .Where(pr => pr.Name.EqualsIgnoreCase(NodeConstants.PlatformName)) @@ -65,7 +65,7 @@ namespace Microsoft.Oryx.BuildImage.Tests Assert.NotNull(nodePlatform); Assert.NotNull(nodePlatform.Versions); Assert.True(nodePlatform.Versions.Any()); - Assert.True(nodePlatform.Versions.Contains("4.4.7")); + Assert.True(nodePlatform.Versions.Contains("17.6.0")); var pythonPlatform = actualResults .Where(pr => pr.Name.EqualsIgnoreCase(PythonConstants.PlatformName)) @@ -73,9 +73,9 @@ namespace Microsoft.Oryx.BuildImage.Tests Assert.NotNull(pythonPlatform); Assert.NotNull(pythonPlatform.Versions); Assert.True(pythonPlatform.Versions.Any()); - Assert.True(pythonPlatform.Versions.Contains("2.7.17")); - Assert.True(pythonPlatform.Versions.Contains("3.8.4rc1")); - Assert.True(pythonPlatform.Versions.Contains("3.9.0b1")); + Assert.True(pythonPlatform.Versions.Contains("3.6.12")); + Assert.True(pythonPlatform.Versions.Contains("3.7.9")); + Assert.True(pythonPlatform.Versions.Contains("3.9.15")); Assert.True(pythonPlatform.Versions.Contains("3.9.0")); Assert.True(pythonPlatform.Versions.Contains("3.10.4")); @@ -85,7 +85,7 @@ namespace Microsoft.Oryx.BuildImage.Tests Assert.NotNull(phpPlatform); Assert.NotNull(phpPlatform.Versions); Assert.True(phpPlatform.Versions.Any()); - Assert.True(phpPlatform.Versions.Contains("8.1.6")); + Assert.True(phpPlatform.Versions.Contains("7.4.14")); var hugoPlatform = actualResults .Where(pr => pr.Name.EqualsIgnoreCase(HugoConstants.PlatformName)) @@ -94,16 +94,6 @@ namespace Microsoft.Oryx.BuildImage.Tests Assert.NotNull(hugoPlatform.Versions); Assert.True(hugoPlatform.Versions.Any()); Assert.True(hugoPlatform.Versions.Contains(HugoConstants.Version)); - - var rubyPlatform = actualResults - .Where(pr => pr.Name.EqualsIgnoreCase(RubyConstants.PlatformName)) - .FirstOrDefault(); - Assert.NotNull(rubyPlatform); - Assert.NotNull(rubyPlatform.Versions); - Assert.True(rubyPlatform.Versions.Any()); - Assert.True(rubyPlatform.Versions.Contains("2.6.6")); - Assert.True(rubyPlatform.Versions.Contains("2.7.1")); - Assert.True(rubyPlatform.Versions.Contains("3.0.3")); }, result.GetDebugInfo()); } diff --git a/tests/Oryx.BuildImage.Tests/CommandTests/PrepareEnvironmentCommandTest.cs b/tests/Oryx.BuildImage.Tests/CommandTests/PrepareEnvironmentCommandTest.cs index 3cf12b160..d513e1d70 100644 --- a/tests/Oryx.BuildImage.Tests/CommandTests/PrepareEnvironmentCommandTest.cs +++ b/tests/Oryx.BuildImage.Tests/CommandTests/PrepareEnvironmentCommandTest.cs @@ -1,4 +1,4 @@ -// -------------------------------------------------------------------------------------------- +// -------------------------------------------------------------------------------------------- // Copyright (c) Microsoft Corporation. All rights reserved. // Licensed under the MIT license. // -------------------------------------------------------------------------------------------- @@ -62,7 +62,7 @@ namespace Oryx.BuildImage.Tests public void DetectsAndInstallsPlatformVersion_SpecifiedByEnvironmentVariable() { // Arrange - var nodeVersion = "4.4.7"; + var nodeVersion = "12.19.0"; var volume = CreateWebFrontEndVolume(); var appDir = volume.ContainerDir; var subDir = Guid.NewGuid(); @@ -97,7 +97,7 @@ namespace Oryx.BuildImage.Tests public void DetectsAndInstallsPlatformVersion_SpecifiedByBuildEnvFile() { // Arrange - var nodeVersion = "4.4.7"; + var nodeVersion = "12.19.0"; var volume = CreateWebFrontEndVolume(); var appDir = volume.ContainerDir; var script = new ShellScriptBuilder() @@ -132,8 +132,8 @@ namespace Oryx.BuildImage.Tests public void SkipsDetectionAndInstallsPlatform() { // Arrange - var nodeVersion = "4.4.7"; - var pythonVersion = "3.7.7"; + var nodeVersion = "12.19.0"; + var pythonVersion = "3.10.0"; var script = new ShellScriptBuilder() .AddCommand( $"oryx prep --skip-detection --platforms-and-versions " + @@ -165,8 +165,8 @@ namespace Oryx.BuildImage.Tests public void SkipsDetectionAndInstallsPlatformsFromFile() { // Arrange - var nodeVersion = "8.0.0"; - var pythonVersion = "3.7.7"; + var nodeVersion = "16.5.0"; + var pythonVersion = "3.10.0"; var versionsFile = "/tmp/versions.txt"; var script = new ShellScriptBuilder() .AddCommand($"echo 'nodejs={nodeVersion}' >> {versionsFile}") @@ -201,7 +201,7 @@ namespace Oryx.BuildImage.Tests public void InstallsPlatformAtCustomInstallationRootDirectory() { // Arrange - var nodeVersion = "4.4.7"; + var nodeVersion = "16.5.0"; var customDynamicInstallRootDir = "/foo/bar"; var expectedText = $"Node path is: {customDynamicInstallRootDir}/{NodeConstants.PlatformName}/{nodeVersion}/bin"; diff --git a/tests/Oryx.BuildImage.Tests/DotNetCore/DotNetCoreDynamicInstallTest.cs b/tests/Oryx.BuildImage.Tests/DotNetCore/DotNetCoreDynamicInstallTest.cs index b26f0fe7d..812f27c73 100644 --- a/tests/Oryx.BuildImage.Tests/DotNetCore/DotNetCoreDynamicInstallTest.cs +++ b/tests/Oryx.BuildImage.Tests/DotNetCore/DotNetCoreDynamicInstallTest.cs @@ -54,7 +54,7 @@ namespace Microsoft.Oryx.BuildImage.Tests string runtimeVersion) { BuildsApplication_ByDynamicallyInstallingSDKs( - appName, runtimeVersion, _restrictedPermissionsImageHelper.GetGitHubActionsBuildImage()); + appName, runtimeVersion, _imageHelper.GetGitHubActionsBuildImage()); } [Theory, Trait("category", "cli-stretch")] @@ -164,7 +164,7 @@ namespace Microsoft.Oryx.BuildImage.Tests ""rollForward"": ""Disable"" } }"; - var globalJsonSdkVersion = "3.1.201"; + var globalJsonSdkVersion = "3.1.404"; var globalJsonContent = globalJsonTemplate.Replace("#version#", globalJsonSdkVersion); var sentinelFile = $"{Constants.TemporaryInstallationDirectoryRoot}/{DotNetCoreConstants.PlatformName}/{globalJsonSdkVersion}/" + $"{SdkStorageConstants.SdkDownloadSentinelFileName}"; @@ -212,7 +212,7 @@ namespace Microsoft.Oryx.BuildImage.Tests // Here we are testing building a 2.1 runtime version app with a 3.1 sdk version // Arrange - var expectedSdkVersion = "3.1.201"; + var expectedSdkVersion = "3.1.404"; var globalJsonTemplate = @" { ""sdk"": { @@ -275,7 +275,7 @@ namespace Microsoft.Oryx.BuildImage.Tests // Here we are testing building a 2.1 runtime version app with a 3.1 sdk version // Arrange - var expectedSdkVersion = "3.1.201"; + var expectedSdkVersion = "3.1.404"; var globalJsonTemplate = @" { ""sdk"": { @@ -433,7 +433,7 @@ namespace Microsoft.Oryx.BuildImage.Tests // Here we are testing building a 2.1 runtime version app with a 3.1 sdk version // Arrange - var expectedSdkVersion = "3.1.201"; + var expectedSdkVersion = "3.1.404"; var globalJsonTemplate = @" { ""sdk"": { diff --git a/tests/Oryx.BuildImage.Tests/Node/NodeDynamicInstallationTest.cs b/tests/Oryx.BuildImage.Tests/Node/NodeDynamicInstallationTest.cs index 1fe134a38..34afc3dea 100644 --- a/tests/Oryx.BuildImage.Tests/Node/NodeDynamicInstallationTest.cs +++ b/tests/Oryx.BuildImage.Tests/Node/NodeDynamicInstallationTest.cs @@ -28,7 +28,7 @@ namespace Microsoft.Oryx.BuildImage.Tests { var data = new TheoryData(); var imageTestHelper = new ImageTestHelper(); - data.Add("12.22.12", imageTestHelper.GetGitHubActionsBuildImage()); + data.Add("17.1.0", imageTestHelper.GetGitHubActionsBuildImage()); data.Add(FinalStretchVersions.FinalStretchNode14Version, imageTestHelper.GetGitHubActionsBuildImage()); data.Add(FinalStretchVersions.FinalStretchNode16Version, imageTestHelper.GetGitHubActionsBuildImage()); return data; @@ -163,7 +163,7 @@ namespace Microsoft.Oryx.BuildImage.Tests [Theory, Trait("category", "githubactions")] [Trait("build-image", "github-actions-debian-stretch")] [InlineData("14.19.1", "14.19.1")] - [InlineData("16", FinalStretchVersions.FinalStretchNode16Version)] + [InlineData("16", "16.20.2")] public void GeneratesScript_AndBuildNodeAppsWithDynamicInstallation_DefaultEnvVar(string defaultVersion, string expectedVersion) { // Arrange @@ -238,7 +238,7 @@ namespace Microsoft.Oryx.BuildImage.Tests public void DynamicInstall_ReInstallsSdk_IfSentinelFileIsNotPresent() { // Arrange - var version = "12.16.1"; //NOTE: use the full version so that we know the install directory path + var version = "12.22.4"; //NOTE: use the full version so that we know the install directory path var installationDir = $"{BuildScriptGenerator.Constants.TemporaryInstallationDirectoryRoot}/nodejs/{version}"; var sentinelFile = $"{installationDir}/{SdkStorageConstants.SdkDownloadSentinelFileName}"; var volume = CreateWebFrontEndVolume(); @@ -316,11 +316,11 @@ namespace Microsoft.Oryx.BuildImage.Tests } [Fact, Trait("category", "githubactions")] - [Trait("build-image", "github-actions-debian-stretch")] - public void BuildNodeApp_AfterInstallingStretchSpecificSdk() + [Trait("build-image", "github-actions-debian-buster")] + public void BuildNodeApp_AfterInstallingBusterSpecificSdk() { // Arrange - var version = "9.4.0"; // version only exists for stretch images + var version = "16.20.2"; var devPackageName = "nodemon"; var prodPackageName = "express"; diff --git a/tests/Oryx.BuildImage.Tests/Php/PhpDynamicInstallationTest.cs b/tests/Oryx.BuildImage.Tests/Php/PhpDynamicInstallationTest.cs index 98ca5dbf8..4db469815 100644 --- a/tests/Oryx.BuildImage.Tests/Php/PhpDynamicInstallationTest.cs +++ b/tests/Oryx.BuildImage.Tests/Php/PhpDynamicInstallationTest.cs @@ -38,7 +38,7 @@ namespace Microsoft.Oryx.BuildImage.Tests data.Add(PhpVersions.Php82Version, imageHelper.GetGitHubActionsBuildImage(ImageTestHelperConstants.GitHubActionsBuster), PhpVersions.ComposerDefaultVersion); data.Add(PhpVersions.Php83Version, imageHelper.GetGitHubActionsBuildImage(ImageTestHelperConstants.GitHubActionsBuster), PhpVersions.ComposerDefaultVersion); - // Test PHP composer version 2.2.x + // // Test PHP composer version 2.2.x data.Add( PhpVersions.Php73Version, ImageTestHelper.WithRestrictedPermissions().GetGitHubActionsBuildImage(), @@ -50,7 +50,7 @@ namespace Microsoft.Oryx.BuildImage.Tests data.Add(PhpVersions.Php82Version, imageHelper.GetGitHubActionsBuildImage(ImageTestHelperConstants.GitHubActionsBuster), PhpVersions.Composer22Version); data.Add(PhpVersions.Php83Version, imageHelper.GetGitHubActionsBuildImage(ImageTestHelperConstants.GitHubActionsBuster), PhpVersions.Composer22Version); - // Test PHP composer version 2.3.x + // // Test PHP composer version 2.3.x data.Add( PhpVersions.Php73Version, ImageTestHelper.WithRestrictedPermissions().GetGitHubActionsBuildImage(), @@ -342,7 +342,7 @@ namespace Microsoft.Oryx.BuildImage.Tests public void BuildsApplication_ByDynamicallyInstalling_IntoCustomDynamicInstallationDir() { // Arrange - var phpVersion = "7.3.15"; //NOTE: use the full version so that we know the install directory path + var phpVersion = "7.3.21"; //NOTE: use the full version so that we know the install directory path var appName = "twig-example"; var volume = CreateSampleAppVolume(appName); var appDir = volume.ContainerDir; @@ -376,83 +376,83 @@ namespace Microsoft.Oryx.BuildImage.Tests result.GetDebugInfo()); } - [Fact, Trait("category", "githubactions")] - public void BuildPhpApp_AfterInstallingStretchSpecificSdk() - { - // Arrange - var version = "7.0.33"; // version only exists on stretch - var composerVersion = "1.10.0"; + // [Fact, Trait("category", "githubactions")] + // public void BuildPhpApp_AfterInstallingStretchSpecificSdk() + // { + // // Arrange + // var version = "7.0.33"; // version only exists on stretch + // var composerVersion = "1.10.0"; - var appName = "twig-example"; - var volume = CreateSampleAppVolume(appName); - var appDir = volume.ContainerDir; - var appOutputDir = "/tmp/app-output"; - var script = new ShellScriptBuilder() - .SetEnvironmentVariable("PHP_COMPOSER_VERSION", composerVersion) - .AddBuildCommand( - $"{appDir} -o {appOutputDir} --platform {PhpConstants.PlatformName} --platform-version {version}") - .ToString(); + // var appName = "twig-example"; + // var volume = CreateSampleAppVolume(appName); + // var appDir = volume.ContainerDir; + // var appOutputDir = "/tmp/app-output"; + // var script = new ShellScriptBuilder() + // .SetEnvironmentVariable("PHP_COMPOSER_VERSION", composerVersion) + // .AddBuildCommand( + // $"{appDir} -o {appOutputDir} --platform {PhpConstants.PlatformName} --platform-version {version}") + // .ToString(); - // Act - var result = _dockerCli.Run(new DockerRunArguments - { - ImageId = _imageHelper.GetGitHubActionsBuildImage(), - EnvironmentVariables = new List { CreateAppNameEnvVar(appName) }, - Volumes = new List { volume }, - CommandToExecuteOnRun = "/bin/bash", - CommandArguments = new[] { "-c", script } - }); + // // Act + // var result = _dockerCli.Run(new DockerRunArguments + // { + // ImageId = _imageHelper.GetGitHubActionsBuildImage(), + // EnvironmentVariables = new List { CreateAppNameEnvVar(appName) }, + // Volumes = new List { volume }, + // CommandToExecuteOnRun = "/bin/bash", + // CommandArguments = new[] { "-c", script } + // }); - // Assert - RunAsserts(() => - { - Assert.True(result.IsSuccess); - Assert.Contains( - $"PHP executable: " + - BuildScriptGenerator.Constants.TemporaryInstallationDirectoryRoot, result.StdOut); - Assert.Contains("Installing twig/twig", result.StdErr); // Composer prints its messages to STDERR - Assert.Contains($"\'php-composer\' version \'{composerVersion}\'", result.StdOut); - }, - result.GetDebugInfo()); - } + // // Assert + // RunAsserts(() => + // { + // Assert.True(result.IsSuccess); + // Assert.Contains( + // $"PHP executable: " + + // BuildScriptGenerator.Constants.TemporaryInstallationDirectoryRoot, result.StdOut); + // Assert.Contains("Installing twig/twig", result.StdErr); // Composer prints its messages to STDERR + // Assert.Contains($"\'php-composer\' version \'{composerVersion}\'", result.StdOut); + // }, + // result.GetDebugInfo()); + // } - [Theory, Trait("category", "githubactions")] - [InlineData(ImageTestHelperConstants.GitHubActionsBuster)] - [InlineData(ImageTestHelperConstants.GitHubActionsBullseye)] - public void PhpFails_ToInstallStretchSdk_OnNonStretchImage(string imageTag) - { - // Arrange - var version = "7.0.33"; // version only exists on stretch - var composerVersion = "1.10.0"; + // [Theory, Trait("category", "githubactions")] + // [InlineData(ImageTestHelperConstants.GitHubActionsBuster)] + // [InlineData(ImageTestHelperConstants.GitHubActionsBullseye)] + // public void PhpFails_ToInstallStretchSdk_OnNonStretchImage(string imageTag) + // { + // // Arrange + // var version = "7.0.33"; // version only exists on stretch + // var composerVersion = "1.10.0"; - var appName = "twig-example"; - var volume = CreateSampleAppVolume(appName); - var appDir = volume.ContainerDir; - var appOutputDir = "/tmp/app-output"; - var script = new ShellScriptBuilder() - .SetEnvironmentVariable("PHP_COMPOSER_VERSION", composerVersion) - .AddBuildCommand( - $"{appDir} -o {appOutputDir} --platform {PhpConstants.PlatformName} --platform-version {version}") - .ToString(); + // var appName = "twig-example"; + // var volume = CreateSampleAppVolume(appName); + // var appDir = volume.ContainerDir; + // var appOutputDir = "/tmp/app-output"; + // var script = new ShellScriptBuilder() + // .SetEnvironmentVariable("PHP_COMPOSER_VERSION", composerVersion) + // .AddBuildCommand( + // $"{appDir} -o {appOutputDir} --platform {PhpConstants.PlatformName} --platform-version {version}") + // .ToString(); - // Act - var result = _dockerCli.Run(new DockerRunArguments - { - ImageId = _imageHelper.GetGitHubActionsBuildImage(imageTag), - EnvironmentVariables = new List { CreateAppNameEnvVar(appName) }, - Volumes = new List { volume }, - CommandToExecuteOnRun = "/bin/bash", - CommandArguments = new[] { "-c", script } - }); + // // Act + // var result = _dockerCli.Run(new DockerRunArguments + // { + // ImageId = _imageHelper.GetGitHubActionsBuildImage(imageTag), + // EnvironmentVariables = new List { CreateAppNameEnvVar(appName) }, + // Volumes = new List { volume }, + // CommandToExecuteOnRun = "/bin/bash", + // CommandArguments = new[] { "-c", script } + // }); - // Assert - RunAsserts(() => - { - Assert.False(result.IsSuccess); - Assert.Contains($"Error: Platform '{PhpConstants.PlatformName}' version '{version}' is unsupported.", result.StdErr); - }, - result.GetDebugInfo()); - } + // // Assert + // RunAsserts(() => + // { + // Assert.False(result.IsSuccess); + // Assert.Contains($"Error: Platform '{PhpConstants.PlatformName}' version '{version}' is unsupported.", result.StdErr); + // }, + // result.GetDebugInfo()); + // } private DockerVolume CreateSampleAppVolume(string sampleAppName) => DockerVolume.CreateMirror(Path.Combine(_hostSamplesDir, "php", sampleAppName)); diff --git a/tests/Oryx.BuildImage.Tests/PulledBuildImageTypeTest.cs b/tests/Oryx.BuildImage.Tests/PulledBuildImageTypeTest.cs index 5c56e947c..5d5715ef5 100644 --- a/tests/Oryx.BuildImage.Tests/PulledBuildImageTypeTest.cs +++ b/tests/Oryx.BuildImage.Tests/PulledBuildImageTypeTest.cs @@ -81,9 +81,9 @@ namespace Microsoft.Oryx.BuildImage.Tests [Fact] [Trait("category", "jamstack")] - public void PulledJamstackStretchBuildImages_Contains_BUILDIMAGE_TYPE_Info() + public void PulledJamstackBullseyeBuildImages_Contains_BUILDIMAGE_TYPE_Info() { - PulledBuildImages_Contains_BUILDIMAGE_TYPE_Info(_imageHelper.GetBuildImage(ImageTestHelperConstants.AzureFunctionsJamStackStretch), "jamstack"); + PulledBuildImages_Contains_BUILDIMAGE_TYPE_Info(_imageHelper.GetBuildImage(ImageTestHelperConstants.AzureFunctionsJamStackBullseye), "jamstack"); } [Fact] diff --git a/tests/Oryx.BuildImage.Tests/PulledBuildOsTypeTest.cs b/tests/Oryx.BuildImage.Tests/PulledBuildOsTypeTest.cs index 513fea505..4083642d9 100644 --- a/tests/Oryx.BuildImage.Tests/PulledBuildOsTypeTest.cs +++ b/tests/Oryx.BuildImage.Tests/PulledBuildOsTypeTest.cs @@ -57,12 +57,12 @@ namespace Microsoft.Oryx.BuildImage.Tests PulledBuildImages_Contains_BUILDOS_TYPE_Info(_imageHelper.GetBuildImage(ImageTestHelperConstants.LtsVersionsBuster), "DEBIAN|BUSTER"); } - [Fact] - [Trait("category", "githubactions")] - public void PulledGitHubActionsStretchBuildImages_Contains_BUILDOS_TYPE_Info() - { - PulledBuildImages_Contains_BUILDOS_TYPE_Info(_imageHelper.GetBuildImage(ImageTestHelperConstants.GitHubActionsStretch), "DEBIAN|STRETCH"); - } + // [Fact] + // [Trait("category", "githubactions")] + // public void PulledGitHubActionsStretchBuildImages_Contains_BUILDOS_TYPE_Info() + // { + // PulledBuildImages_Contains_BUILDOS_TYPE_Info(_imageHelper.GetBuildImage(ImageTestHelperConstants.GitHubActionsStretch), "DEBIAN|STRETCH"); + // } [Fact] [Trait("category", "githubactions")] @@ -99,14 +99,6 @@ namespace Microsoft.Oryx.BuildImage.Tests PulledBuildImages_Contains_BUILDOS_TYPE_Info(_imageHelper.GetCliImage(ImageTestHelperConstants.CliBullseyeTag), "DEBIAN|BULLSEYE"); } - - [Fact] - [Trait("category", "jamstack")] - public void PulledJamstackStretchBuildImages_Contains_BUILDOS_TYPE_Info() - { - PulledBuildImages_Contains_BUILDOS_TYPE_Info(_imageHelper.GetBuildImage(ImageTestHelperConstants.AzureFunctionsJamStackStretch), "DEBIAN|STRETCH"); - } - [Fact] [Trait("category", "jamstack")] public void PulledJamstackBusterBuildImages_Contains_BUILDOS_TYPE_Info() diff --git a/tests/Oryx.BuildImage.Tests/Python/PythonDynamicInstallationTest.cs b/tests/Oryx.BuildImage.Tests/Python/PythonDynamicInstallationTest.cs index 2c0b18fbc..74cdfcf1a 100644 --- a/tests/Oryx.BuildImage.Tests/Python/PythonDynamicInstallationTest.cs +++ b/tests/Oryx.BuildImage.Tests/Python/PythonDynamicInstallationTest.cs @@ -253,8 +253,7 @@ namespace Microsoft.Oryx.BuildImage.Tests } [Theory, Trait("category", "githubactions")] - [InlineData("3.8.0b3")] - [InlineData("3.9.0b1")] + [InlineData("3.10.0a2")] public void GeneratesScript_AndBuildsPythonPreviewVersion(string previewVersion) { // Arrange @@ -273,7 +272,7 @@ namespace Microsoft.Oryx.BuildImage.Tests // Act var result = _dockerCli.Run(new DockerRunArguments { - ImageId = _restrictedPermissionsImageHelper.GetGitHubActionsBuildImage(), + ImageId = _imageHelper.GetGitHubActionsBuildImage(), EnvironmentVariables = new List { CreateAppNameEnvVar(appName) }, Volumes = new List { volume }, CommandToExecuteOnRun = "/bin/bash", @@ -296,7 +295,7 @@ namespace Microsoft.Oryx.BuildImage.Tests public void DynamicInstall_ReInstallsSdk_IfSentinelFileIsNotPresent() { // Arrange - var version = "3.8.1"; //NOTE: use the full version so that we know the install directory path + var version = "3.8.16"; //NOTE: use the full version so that we know the install directory path var installationDir = $"{BuildScriptGenerator.Constants.TemporaryInstallationDirectoryRoot}/" + $"python/{version}"; var sentinelFile = $"{installationDir}/{SdkStorageConstants.SdkDownloadSentinelFileName}"; @@ -338,7 +337,7 @@ namespace Microsoft.Oryx.BuildImage.Tests public void BuildsAzureFunctionApp() { // Arrange - var version = "3.8.1"; + var version = "3.8.18"; var installationDir = $"{BuildScriptGenerator.Constants.TemporaryInstallationDirectoryRoot}/" + $"python/{version}"; var appName = "Python_HttpTriggerSample"; @@ -418,7 +417,7 @@ namespace Microsoft.Oryx.BuildImage.Tests public void GeneratesScript_AndBuilds_WithPackageDir() { // Arrange - var version = "3.6.9"; + var version = "3.10.13"; var appName = "flask-app"; var installationDir = $"{BuildScriptGenerator.Constants.TemporaryInstallationDirectoryRoot}" + $"/python/{version}"; @@ -463,7 +462,7 @@ namespace Microsoft.Oryx.BuildImage.Tests var imageHelper = new ImageTestHelper(); // stretch - data.Add(PythonVersions.Python27Version, imageHelper.GetAzureFunctionsJamStackBuildImage()); + // data.Add(PythonVersions.Python27Version, imageHelper.GetAzureFunctionsJamStackBuildImage()); //buster data.Add(PythonVersions.Python36Version, imageHelper.GetAzureFunctionsJamStackBuildImage(ImageTestHelperConstants.AzureFunctionsJamStackBuster)); diff --git a/tests/Oryx.BuildImage.Tests/VersionInformationTest.cs b/tests/Oryx.BuildImage.Tests/VersionInformationTest.cs index 8072c0637..81cd15369 100644 --- a/tests/Oryx.BuildImage.Tests/VersionInformationTest.cs +++ b/tests/Oryx.BuildImage.Tests/VersionInformationTest.cs @@ -97,7 +97,7 @@ namespace Microsoft.Oryx.BuildImage.Tests // Arrange var gitCommitID = GitHelper.GetCommitID(); - var buildNumber = Environment.GetEnvironmentVariable("BUILD_BUILDNUMBER"); + var buildNumber = Environment.GetEnvironmentVariable("IMAGE_BUILDNUMBER"); var expectedOryxVersion = string.Concat(Settings.OryxVersion, buildNumber); // Act diff --git a/tests/Oryx.Integration.Tests/ProdStorageAccountSanityTest.cs b/tests/Oryx.Integration.Tests/ProdStorageAccountSanityTest.cs deleted file mode 100644 index 8e31eb409..000000000 --- a/tests/Oryx.Integration.Tests/ProdStorageAccountSanityTest.cs +++ /dev/null @@ -1,24 +0,0 @@ -// -------------------------------------------------------------------------------------------- -// Copyright (c) Microsoft Corporation. All rights reserved. -// Licensed under the MIT license. -// -------------------------------------------------------------------------------------------- - -using Microsoft.Oryx.BuildScriptGenerator.Common; -using Microsoft.Oryx.Tests.Common; -using Xunit; -using Xunit.Abstractions; - -namespace Oryx.Integration.Tests -{ - [Trait("StorageAccountTests", "Prod")] - public class ProdStorageAccountSanityTest : StorageAccountSanityTestBase - { - public ProdStorageAccountSanityTest( - ITestOutputHelper output, - TestTempDirTestFixture testTempDirTestFixture, - RepoRootDirTestFixture repoRootDirTestFixture) - : base(SdkStorageConstants.ProdSdkStorageBaseUrl, output, testTempDirTestFixture, repoRootDirTestFixture) - { - } - } -} diff --git a/tests/Oryx.Integration.Tests/StagingStorageAccountSanityTest.cs b/tests/Oryx.Integration.Tests/StorageAccountSanityTest.cs similarity index 55% rename from tests/Oryx.Integration.Tests/StagingStorageAccountSanityTest.cs rename to tests/Oryx.Integration.Tests/StorageAccountSanityTest.cs index 209350ebb..3aa077e0b 100644 --- a/tests/Oryx.Integration.Tests/StagingStorageAccountSanityTest.cs +++ b/tests/Oryx.Integration.Tests/StorageAccountSanityTest.cs @@ -11,18 +11,18 @@ using Xunit.Abstractions; namespace Oryx.Integration.Tests { - [Trait("StorageAccountTests", "Staging")] - public class StagingStorageAccountSanityTest : StorageAccountSanityTestBase + [Trait("StorageAccountTests", "SanityTests")] + public class StorageAccountSanityTest : StorageAccountSanityTestBase { - public StagingStorageAccountSanityTest( + public StorageAccountSanityTest( ITestOutputHelper output, TestTempDirTestFixture testTempDirTestFixture, RepoRootDirTestFixture repoRootDirTestFixture) - : base( - Environment.GetEnvironmentVariable(SdkStorageConstants.TestingSdkStorageUrlKeyName) ?? SdkStorageConstants.PrivateStagingSdkStorageBaseUrl, - output, - testTempDirTestFixture, - repoRootDirTestFixture) + : base(Environment.GetEnvironmentVariable(SdkStorageConstants.SdkStorageBaseUrlKeyName) + ?? throw new InvalidOperationException($"Environment variable '{SdkStorageConstants.SdkStorageBaseUrlKeyName}' is required."), + output, + testTempDirTestFixture, + repoRootDirTestFixture) { } } diff --git a/tests/Oryx.Integration.Tests/StorageAccountSanityTestBase.cs b/tests/Oryx.Integration.Tests/StorageAccountSanityTestBase.cs index 77d21123e..e047fabda 100644 --- a/tests/Oryx.Integration.Tests/StorageAccountSanityTestBase.cs +++ b/tests/Oryx.Integration.Tests/StorageAccountSanityTestBase.cs @@ -29,7 +29,6 @@ namespace Oryx.Integration.Tests private readonly string _storageUrl; private readonly string _repoRootDir; - private readonly string _stagingStorageAccountAccessToken; private readonly string[] _debianFlavors = { @@ -45,14 +44,6 @@ namespace Oryx.Integration.Tests { _storageUrl = storageUrl; _repoRootDir = repoRootDirTestFixture.RepoRootDirPath; - _stagingStorageAccountAccessToken = string.Empty; - - if (storageUrl == SdkStorageConstants.PrivateStagingSdkStorageBaseUrl) - { - _stagingStorageAccountAccessToken = Environment.GetEnvironmentVariable(SdkStorageConstants.PrivateStagingStorageSasTokenKey) != null - ? Environment.GetEnvironmentVariable(SdkStorageConstants.PrivateStagingStorageSasTokenKey) - : KeyVaultHelper.GetKeyVaultSecretValue(SdkStorageConstants.OryxKeyvaultUri, SdkStorageConstants.StagingStorageSasTokenKeyvaultSecretName); - } } [Fact] @@ -186,7 +177,7 @@ namespace Oryx.Integration.Tests { // Act var error = Assert.Throws(() => - ListBlobsHelper.GetAllBlobs(_fakeStorageUrl, "dotnet", _httpClient, _stagingStorageAccountAccessToken)); + ListBlobsHelper.GetAllBlobs(_fakeStorageUrl, "dotnet", _httpClient)); // Assert Assert.Contains(Microsoft.Oryx.BuildScriptGenerator.Constants.NetworkConfigurationHelpText, error.Message); @@ -223,7 +214,7 @@ namespace Oryx.Integration.Tests private XDocument GetMetadata(string platformName) { - return ListBlobsHelper.GetAllBlobs(_storageUrl, platformName, _httpClient, _stagingStorageAccountAccessToken); + return ListBlobsHelper.GetAllBlobs(_storageUrl, platformName, _httpClient); } private List GetVersionsFromContainer(string debianFlavor, string platformName) @@ -266,7 +257,7 @@ namespace Oryx.Integration.Tests || string.Equals(debianFlavor, OsTypes.DebianStretch, StringComparison.OrdinalIgnoreCase) ? SdkStorageConstants.DefaultVersionFileName : $"{SdkStorageConstants.DefaultVersionFilePrefix}.{debianFlavor}.{SdkStorageConstants.DefaultVersionFileType}"; - var defaultVersionUrl = $"{_storageUrl}/{platformName}/{defaultFile}{_stagingStorageAccountAccessToken}"; + var defaultVersionUrl = $"{_storageUrl}/{platformName}/{defaultFile}"; var defaultVersionContent = _httpClient.GetStringAsync(defaultVersionUrl).Result; string defaultVersion = null; diff --git a/tests/Oryx.RuntimeImage.Tests/DotNetCore/DotNetCoreLibraryVerificationTest.cs b/tests/Oryx.RuntimeImage.Tests/DotNetCore/DotNetCoreLibraryVerificationTest.cs index 67ddc4df1..a8352c40f 100644 --- a/tests/Oryx.RuntimeImage.Tests/DotNetCore/DotNetCoreLibraryVerificationTest.cs +++ b/tests/Oryx.RuntimeImage.Tests/DotNetCore/DotNetCoreLibraryVerificationTest.cs @@ -18,9 +18,7 @@ namespace Microsoft.Oryx.RuntimeImage.Tests [Theory] [Trait("category", "runtime-buster")] - [InlineData("3.1")] - [InlineData("5.0")] - [InlineData("7.0")] + [InlineData("6.0")] public void GDIPlusLibrary_IsPresentInTheBusterImage(string version) { // Arrange @@ -47,8 +45,7 @@ namespace Microsoft.Oryx.RuntimeImage.Tests [Theory] [Trait("category", "runtime-bullseye")] - [InlineData("3.1")] - [InlineData("7.0")] + [InlineData("8.0")] public void GDIPlusLibrary_IsPresentInTheBullseyeImage(string version) { // Arrange @@ -75,10 +72,7 @@ namespace Microsoft.Oryx.RuntimeImage.Tests [Theory] [Trait("category", "runtime-buster")] - [InlineData("3.1")] - [InlineData("5.0")] [InlineData("6.0")] - [InlineData("7.0")] public void DotnetMonitorTool_IsPresentInTheBusterImage(string version) { // Act @@ -102,9 +96,7 @@ namespace Microsoft.Oryx.RuntimeImage.Tests [Theory] [Trait("category", "runtime-bullseye")] - [InlineData("3.1")] [InlineData("6.0")] - [InlineData("7.0")] public void DotnetMonitorTool_IsPresentInTheBullseyeImage(string version) { // Act diff --git a/tests/Oryx.RuntimeImage.Tests/DotNetCore/DotnetCoreImageVersionsTest.cs b/tests/Oryx.RuntimeImage.Tests/DotNetCore/DotnetCoreImageVersionsTest.cs index 83bd94d06..835085606 100644 --- a/tests/Oryx.RuntimeImage.Tests/DotNetCore/DotnetCoreImageVersionsTest.cs +++ b/tests/Oryx.RuntimeImage.Tests/DotNetCore/DotnetCoreImageVersionsTest.cs @@ -21,7 +21,7 @@ namespace Microsoft.Oryx.RuntimeImage.Tests [SkippableTheory] [Trait("category", "runtime-bullseye")] - [InlineData("3.1")] + [InlineData("6.0")] public void DotNetCoreBullseyeRuntimeImage_Contains_VersionAndCommit_Information(string version) { // we cant always rely on gitcommitid as env variable in case build context is not correctly passed @@ -31,7 +31,7 @@ namespace Microsoft.Oryx.RuntimeImage.Tests Skip.If(string.IsNullOrEmpty(agentOS)); // Arrange - var buildNumber = Environment.GetEnvironmentVariable("BUILD_BUILDNUMBER"); + var buildNumber = Environment.GetEnvironmentVariable("IMAGE_BUILDNUMBER"); var expectedOryxVersion = string.Concat(Settings.OryxVersion, buildNumber); var gitCommitID = GitHelper.GetCommitID(); @@ -59,10 +59,7 @@ namespace Microsoft.Oryx.RuntimeImage.Tests [SkippableTheory] [Trait("category", "runtime-buster")] - [InlineData("3.0")] - [InlineData("5.0")] [InlineData("6.0")] - [InlineData("7.0")] public void DotNetCoreBusterRuntimeImage_Contains_VersionAndCommit_Information(string version) { // we cant always rely on gitcommitid as env variable in case build context is not correctly passed @@ -72,7 +69,7 @@ namespace Microsoft.Oryx.RuntimeImage.Tests Skip.If(string.IsNullOrEmpty(agentOS)); // Arrange - var buildNumber = Environment.GetEnvironmentVariable("BUILD_BUILDNUMBER"); + var buildNumber = Environment.GetEnvironmentVariable("IMAGE_BUILDNUMBER"); var expectedOryxVersion = string.Concat(Settings.OryxVersion, buildNumber); var gitCommitID = GitHelper.GetCommitID(); @@ -100,11 +97,7 @@ namespace Microsoft.Oryx.RuntimeImage.Tests [Theory] [Trait("category", "runtime-buster")] - [InlineData("3.0", "Version: " + DotNetCoreRunTimeVersions.NetCoreApp30)] - [InlineData("3.1", "Version: " + DotNetCoreRunTimeVersions.NetCoreApp31)] - [InlineData("5.0", "Version: " + DotNetCoreRunTimeVersions.NetCoreApp50)] [InlineData("6.0", "Version: " + DotNetCoreRunTimeVersions.NetCoreApp60)] - [InlineData("7.0", "Version: " + DotNetCoreRunTimeVersions.NetCoreApp70)] [Trait(TestConstants.Category, TestConstants.Release)] public void RuntimeImage_Buster_HasExecptedDotNetVersion(string version, string expectedOutput) { @@ -129,9 +122,7 @@ namespace Microsoft.Oryx.RuntimeImage.Tests [Theory] [Trait("category", "runtime-bullseye")] - [InlineData("3.1", "Version: " + DotNetCoreRunTimeVersions.NetCoreApp31)] [InlineData("6.0", "Version: " + DotNetCoreRunTimeVersions.NetCoreApp60)] - [InlineData("7.0", "Version: " + DotNetCoreRunTimeVersions.NetCoreApp70)] [Trait(TestConstants.Category, TestConstants.Release)] public void RuntimeImage_Bullseye_HasExecptedDotNetVersion(string version, string expectedOutput) { diff --git a/tests/Oryx.RuntimeImage.Tests/Node/NodeRuntimeImageCanRunWhenAppInsightsModuleNotFound.cs b/tests/Oryx.RuntimeImage.Tests/Node/NodeRuntimeImageCanRunWhenAppInsightsModuleNotFound.cs index 6ed1a2e14..82dbc28c0 100644 --- a/tests/Oryx.RuntimeImage.Tests/Node/NodeRuntimeImageCanRunWhenAppInsightsModuleNotFound.cs +++ b/tests/Oryx.RuntimeImage.Tests/Node/NodeRuntimeImageCanRunWhenAppInsightsModuleNotFound.cs @@ -21,56 +21,56 @@ namespace Microsoft.Oryx.RuntimeImage.Tests { } - [Theory] - [Trait("category", "runtime-buster")] - [MemberData( - nameof(TestValueGenerator.GetBusterNodeVersions), - MemberType = typeof(TestValueGenerator))] - public async Task GeneratesScriptForBuster_CanRun_AppInsightsModule_NotFoundAsync(string nodeVersion, string osType) - { - // This test is for the following scenario: - // When we find no application insight dependency in package.json, but env variables for - // configuring application insights has been set in portal + // [Theory] + // [Trait("category", "runtime-buster")] + // [MemberData( + // nameof(TestValueGenerator.GetBusterNodeVersions), + // MemberType = typeof(TestValueGenerator))] + // public async Task GeneratesScriptForBuster_CanRun_AppInsightsModule_NotFoundAsync(string nodeVersion, string osType) + // { + // // This test is for the following scenario: + // // When we find no application insight dependency in package.json, but env variables for + // // configuring application insights has been set in portal - // Arrange - var appName = "linxnodeexpress"; - var hostDir = Path.Combine(_hostSamplesDir, "nodejs", appName); - var volume = DockerVolume.CreateMirror(hostDir); - var appDir = volume.ContainerDir; - var imageName = _imageHelper.GetRuntimeImage("node", nodeVersion, osType); - var aiConnectionString - = ExtVarNames.UserAppInsightsConnectionStringEnv; - var aIEnabled = ExtVarNames.UserAppInsightsAgentExtensionVersion; - int containerDebugPort = 8080; + // // Arrange + // var appName = "linxnodeexpress"; + // var hostDir = Path.Combine(_hostSamplesDir, "nodejs", appName); + // var volume = DockerVolume.CreateMirror(hostDir); + // var appDir = volume.ContainerDir; + // var imageName = _imageHelper.GetRuntimeImage("node", nodeVersion, osType); + // var aiConnectionString + // = ExtVarNames.UserAppInsightsConnectionStringEnv; + // var aIEnabled = ExtVarNames.UserAppInsightsAgentExtensionVersion; + // int containerDebugPort = 8080; - var script = new ShellScriptBuilder() - .AddCommand($"export {aiConnectionString}={TestConstants.AppInsightsConnectionString}") - .AddCommand($"export {aIEnabled}=TRUE") - .AddCommand($"cd {appDir}") - .AddCommand("npm install") - .AddCommand($"oryx create-script -appPath {appDir}") - .AddDirectoryExistsCheck($"{appDir}/node_modules") - .AddDirectoryDoesNotExistCheck($"{appDir}/node_modules/applicationinsights") - .AddFileExistsCheck($"{FilePaths.NodeGlobalModulesPath}/{FilePaths.NodeAppInsightsLoaderFileName}") - .AddCommand("./run.sh") - .ToString(); + // var script = new ShellScriptBuilder() + // .AddCommand($"export {aiConnectionString}={TestConstants.AppInsightsConnectionString}") + // .AddCommand($"export {aIEnabled}=TRUE") + // .AddCommand($"cd {appDir}") + // .AddCommand("npm install") + // .AddCommand($"oryx create-script -appPath {appDir}") + // .AddDirectoryExistsCheck($"{appDir}/node_modules") + // .AddDirectoryDoesNotExistCheck($"{appDir}/node_modules/applicationinsights") + // .AddFileExistsCheck($"{FilePaths.NodeGlobalModulesPath}/{FilePaths.NodeAppInsightsLoaderFileName}") + // .AddCommand("./run.sh") + // .ToString(); - await EndToEndTestHelper.RunAndAssertAppAsync( - imageName: _imageHelper.GetRuntimeImage("node", nodeVersion, osType), - output: _output, - volumes: new List { volume }, - environmentVariables: null, - port: containerDebugPort, - link: null, - runCmd: "/bin/sh", - runArgs: new[] { "-c", script }, - assertAction: async (hostPort) => - { - var data = await _httpClient.GetStringAsync($"http://localhost:{hostPort}/"); - Assert.Contains("Hello World from express!", data); - }, - dockerCli: _dockerCli); - } + // await EndToEndTestHelper.RunAndAssertAppAsync( + // imageName: _imageHelper.GetRuntimeImage("node", nodeVersion, osType), + // output: _output, + // volumes: new List { volume }, + // environmentVariables: null, + // port: containerDebugPort, + // link: null, + // runCmd: "/bin/sh", + // runArgs: new[] { "-c", script }, + // assertAction: async (hostPort) => + // { + // var data = await _httpClient.GetStringAsync($"http://localhost:{hostPort}/"); + // Assert.Contains("Hello World from express!", data); + // }, + // dockerCli: _dockerCli); + // } [Theory] [Trait("category", "runtime-bullseye")] @@ -174,53 +174,53 @@ namespace Microsoft.Oryx.RuntimeImage.Tests dockerCli: _dockerCli); } - [Theory] - [Trait("category", "runtime-buster")] - [MemberData( - nameof(TestValueGenerator.GetBusterNodeVersions), - MemberType = typeof(TestValueGenerator))] - public async Task GeneratesScriptForBuster_CanRun_With_AppInsights_Env_Variables_NotConfigured_Async(string nodeVersion, string osType) - { - // This test is for the following scenario: - // When we find no application insight dependency in package.json and env variables for - // configuring application insights has not been set properly in portal + // [Theory] + // [Trait("category", "runtime-buster")] + // [MemberData( + // nameof(TestValueGenerator.GetBusterNodeVersions), + // MemberType = typeof(TestValueGenerator))] + // public async Task GeneratesScriptForBuster_CanRun_With_AppInsights_Env_Variables_NotConfigured_Async(string nodeVersion, string osType) + // { + // // This test is for the following scenario: + // // When we find no application insight dependency in package.json and env variables for + // // configuring application insights has not been set properly in portal - // Arrange - var appName = "linxnodeexpress"; - var hostDir = Path.Combine(_hostSamplesDir, "nodejs", appName); - var volume = DockerVolume.CreateMirror(hostDir); - var appDir = volume.ContainerDir; - var imageName = _imageHelper.GetRuntimeImage("node", nodeVersion, osType); - var aIEnabled = ExtVarNames.UserAppInsightsAgentExtensionVersion; - int containerDebugPort = 8080; + // // Arrange + // var appName = "linxnodeexpress"; + // var hostDir = Path.Combine(_hostSamplesDir, "nodejs", appName); + // var volume = DockerVolume.CreateMirror(hostDir); + // var appDir = volume.ContainerDir; + // var imageName = _imageHelper.GetRuntimeImage("node", nodeVersion, osType); + // var aIEnabled = ExtVarNames.UserAppInsightsAgentExtensionVersion; + // int containerDebugPort = 8080; - var script = new ShellScriptBuilder() - .AddCommand($"export {aIEnabled}=disabled") - .AddCommand($"cd {appDir}") - .AddCommand("npm install") - .AddCommand($"oryx create-script -appPath {appDir}") - .AddDirectoryExistsCheck($"{appDir}/node_modules") - .AddDirectoryDoesNotExistCheck($"{appDir}/node_modules/applicationinsights") - .AddCommand("./run.sh") - .AddFileDoesNotExistCheck($"{appDir}/oryx-appinsightsloader.js") - .ToString(); + // var script = new ShellScriptBuilder() + // .AddCommand($"export {aIEnabled}=disabled") + // .AddCommand($"cd {appDir}") + // .AddCommand("npm install") + // .AddCommand($"oryx create-script -appPath {appDir}") + // .AddDirectoryExistsCheck($"{appDir}/node_modules") + // .AddDirectoryDoesNotExistCheck($"{appDir}/node_modules/applicationinsights") + // .AddCommand("./run.sh") + // .AddFileDoesNotExistCheck($"{appDir}/oryx-appinsightsloader.js") + // .ToString(); - await EndToEndTestHelper.RunAndAssertAppAsync( - imageName: _imageHelper.GetRuntimeImage("node", nodeVersion, osType), - output: _output, - volumes: new List { volume }, - environmentVariables: null, - port: containerDebugPort, - link: null, - runCmd: "/bin/sh", - runArgs: new[] { "-c", script }, - assertAction: async (hostPort) => - { - var data = await _httpClient.GetStringAsync($"http://localhost:{hostPort}/"); - Assert.Contains("Hello World from express!", data); - }, - dockerCli: _dockerCli); - } + // await EndToEndTestHelper.RunAndAssertAppAsync( + // imageName: _imageHelper.GetRuntimeImage("node", nodeVersion, osType), + // output: _output, + // volumes: new List { volume }, + // environmentVariables: null, + // port: containerDebugPort, + // link: null, + // runCmd: "/bin/sh", + // runArgs: new[] { "-c", script }, + // assertAction: async (hostPort) => + // { + // var data = await _httpClient.GetStringAsync($"http://localhost:{hostPort}/"); + // Assert.Contains("Hello World from express!", data); + // }, + // dockerCli: _dockerCli); + // } [Theory] [Trait("category", "runtime-bullseye")] @@ -318,57 +318,57 @@ namespace Microsoft.Oryx.RuntimeImage.Tests dockerCli: _dockerCli); } - [Theory] - [Trait("category", "runtime-buster")] - [MemberData( - nameof(TestValueGenerator.GetBusterNodeVersions), - MemberType = typeof(TestValueGenerator))] - public async Task GeneratesScriptForBuster_CanRun_With_New_AppInsights_Env_Variable_Set_Async(string nodeVersion, string osType) - { - // This test is for the following scenario: - // When we find the user has set env variable "APPLICATIONINSIGHTS_CONNECTION_STRING" application insight dependency in package.json and env variables for - // configuring application insights has not been set properly in portal + // [Theory] + // [Trait("category", "runtime-buster")] + // [MemberData( + // nameof(TestValueGenerator.GetBusterNodeVersions), + // MemberType = typeof(TestValueGenerator))] + // public async Task GeneratesScriptForBuster_CanRun_With_New_AppInsights_Env_Variable_Set_Async(string nodeVersion, string osType) + // { + // // This test is for the following scenario: + // // When we find the user has set env variable "APPLICATIONINSIGHTS_CONNECTION_STRING" application insight dependency in package.json and env variables for + // // configuring application insights has not been set properly in portal - // Arrange - var appName = "linxnodeexpress"; - var hostDir = Path.Combine(_hostSamplesDir, "nodejs", appName); - var volume = DockerVolume.CreateMirror(hostDir); - var appDir = volume.ContainerDir; - var imageName = _imageHelper.GetRuntimeImage("node", nodeVersion, osType); - var aIEnabled = ExtVarNames.UserAppInsightsAgentExtensionVersion; - var connectionStringEnv = ExtVarNames.UserAppInsightsConnectionStringEnv; - int containerDebugPort = 8080; - var AppInsightsStartUpLegacyPayLoadMessage = "Application Insights was started with setupString"; + // // Arrange + // var appName = "linxnodeexpress"; + // var hostDir = Path.Combine(_hostSamplesDir, "nodejs", appName); + // var volume = DockerVolume.CreateMirror(hostDir); + // var appDir = volume.ContainerDir; + // var imageName = _imageHelper.GetRuntimeImage("node", nodeVersion, osType); + // var aIEnabled = ExtVarNames.UserAppInsightsAgentExtensionVersion; + // var connectionStringEnv = ExtVarNames.UserAppInsightsConnectionStringEnv; + // int containerDebugPort = 8080; + // var AppInsightsStartUpLegacyPayLoadMessage = "Application Insights was started with setupString"; - var script = new ShellScriptBuilder() - .AddCommand($"export {aIEnabled}=Enabled") - .AddCommand($"export {connectionStringEnv}=alkajsldkajd") - .AddCommand($"cd {appDir}") - .AddCommand("npm install") - .AddCommand($"oryx create-script -appPath {appDir}") - .AddDirectoryExistsCheck($"{appDir}/node_modules") - .AddDirectoryDoesNotExistCheck($"{appDir}/node_modules/applicationinsights") - .AddCommand($"./run.sh > {appDir}/log.log") - .AddFileDoesNotExistCheck($"{appDir}/oryx-appinsightsloader.js") - .AddStringDoesNotExistInFileCheck(AppInsightsStartUpLegacyPayLoadMessage, $"{appDir}/log.log") - .ToString(); + // var script = new ShellScriptBuilder() + // .AddCommand($"export {aIEnabled}=Enabled") + // .AddCommand($"export {connectionStringEnv}=alkajsldkajd") + // .AddCommand($"cd {appDir}") + // .AddCommand("npm install") + // .AddCommand($"oryx create-script -appPath {appDir}") + // .AddDirectoryExistsCheck($"{appDir}/node_modules") + // .AddDirectoryDoesNotExistCheck($"{appDir}/node_modules/applicationinsights") + // .AddCommand($"./run.sh > {appDir}/log.log") + // .AddFileDoesNotExistCheck($"{appDir}/oryx-appinsightsloader.js") + // .AddStringDoesNotExistInFileCheck(AppInsightsStartUpLegacyPayLoadMessage, $"{appDir}/log.log") + // .ToString(); - await EndToEndTestHelper.RunAndAssertAppAsync( - imageName: _imageHelper.GetRuntimeImage("node", nodeVersion, osType), - output: _output, - volumes: new List { volume }, - environmentVariables: null, - port: containerDebugPort, - link: null, - runCmd: "/bin/sh", - runArgs: new[] { "-c", script }, - assertAction: async (hostPort) => - { - var data = await _httpClient.GetStringAsync($"http://localhost:{hostPort}/"); - Assert.Contains("Hello World from express!", data); - }, - dockerCli: _dockerCli); - } + // await EndToEndTestHelper.RunAndAssertAppAsync( + // imageName: _imageHelper.GetRuntimeImage("node", nodeVersion, osType), + // output: _output, + // volumes: new List { volume }, + // environmentVariables: null, + // port: containerDebugPort, + // link: null, + // runCmd: "/bin/sh", + // runArgs: new[] { "-c", script }, + // assertAction: async (hostPort) => + // { + // var data = await _httpClient.GetStringAsync($"http://localhost:{hostPort}/"); + // Assert.Contains("Hello World from express!", data); + // }, + // dockerCli: _dockerCli); + // } [Theory] [Trait("category", "runtime-bullseye")] @@ -474,109 +474,109 @@ namespace Microsoft.Oryx.RuntimeImage.Tests dockerCli: _dockerCli); } - [Theory] - [Trait("category", "runtime-buster")] - [InlineData("14", "")] - [InlineData("14", "disabled")] - public async Task GeneratesScriptForBuster_Doesnot_Add_Oryx_AppInsights_Logic_With_IPA_Configuration_Async( - string nodeVersion, - string agentExtensionVersionEnvValue) - { - // This test is for the following scenario: - // When we find the user has set env variable "ApplicationInsightsAgent_EXTENSION_VERSION" to '~3' - // Oryx should not attach appinsight codeless config to runscript + // [Theory] + // [Trait("category", "runtime-buster")] + // [InlineData("14", "")] + // [InlineData("14", "disabled")] + // public async Task GeneratesScriptForBuster_Doesnot_Add_Oryx_AppInsights_Logic_With_IPA_Configuration_Async( + // string nodeVersion, + // string agentExtensionVersionEnvValue) + // { + // // This test is for the following scenario: + // // When we find the user has set env variable "ApplicationInsightsAgent_EXTENSION_VERSION" to '~3' + // // Oryx should not attach appinsight codeless config to runscript - // Arrange - var appName = "linxnodeexpress-appinsights"; - var hostDir = Path.Combine(_hostSamplesDir, "nodejs", appName); - var volume = DockerVolume.CreateMirror(hostDir); - var appDir = volume.ContainerDir; - var imageName = _imageHelper.GetRuntimeImage("node", nodeVersion, ImageTestHelperConstants.OsTypeDebianBuster); - //agentextension version will be set to '~3' or '' or 'disabled' - var agentExtensionVersionEnv = ExtVarNames.UserAppInsightsAgentExtensionVersion; - var connectionStringEnv = ExtVarNames.UserAppInsightsConnectionStringEnv; - int containerDebugPort = 8080; - var OryxAppInsightsAttachString = "--require /usr/local/lib/node_modules/applicationinsights/out/Bootstrap/Oryx.js"; + // // Arrange + // var appName = "linxnodeexpress-appinsights"; + // var hostDir = Path.Combine(_hostSamplesDir, "nodejs", appName); + // var volume = DockerVolume.CreateMirror(hostDir); + // var appDir = volume.ContainerDir; + // var imageName = _imageHelper.GetRuntimeImage("node", nodeVersion, ImageTestHelperConstants.OsTypeDebianBuster); + // //agentextension version will be set to '~3' or '' or 'disabled' + // var agentExtensionVersionEnv = ExtVarNames.UserAppInsightsAgentExtensionVersion; + // var connectionStringEnv = ExtVarNames.UserAppInsightsConnectionStringEnv; + // int containerDebugPort = 8080; + // var OryxAppInsightsAttachString = "--require /usr/local/lib/node_modules/applicationinsights/out/Bootstrap/Oryx.js"; - var script = new ShellScriptBuilder() - .AddCommand($"export {agentExtensionVersionEnv}={agentExtensionVersionEnvValue}") - .AddCommand($"export {connectionStringEnv}=alkajsldkajd") - .AddCommand($"cd {appDir}") - .AddCommand("npm install") - .AddCommand($"oryx create-script -appPath {appDir}") - .AddDirectoryExistsCheck($"{appDir}/node_modules") - .AddCommand($"./run.sh > {appDir}/log.log") - .AddStringDoesNotExistInFileCheck(OryxAppInsightsAttachString, $"{appDir}/run.sh") - .ToString(); + // var script = new ShellScriptBuilder() + // .AddCommand($"export {agentExtensionVersionEnv}={agentExtensionVersionEnvValue}") + // .AddCommand($"export {connectionStringEnv}=alkajsldkajd") + // .AddCommand($"cd {appDir}") + // .AddCommand("npm install") + // .AddCommand($"oryx create-script -appPath {appDir}") + // .AddDirectoryExistsCheck($"{appDir}/node_modules") + // .AddCommand($"./run.sh > {appDir}/log.log") + // .AddStringDoesNotExistInFileCheck(OryxAppInsightsAttachString, $"{appDir}/run.sh") + // .ToString(); - await EndToEndTestHelper.RunAndAssertAppAsync( - imageName: _imageHelper.GetRuntimeImage("node", nodeVersion, ImageTestHelperConstants.OsTypeDebianBuster), - output: _output, - volumes: new List { volume }, - environmentVariables: null, - port: containerDebugPort, - link: null, - runCmd: "/bin/sh", - runArgs: new[] { "-c", script }, - assertAction: async (hostPort) => - { - var data = await _httpClient.GetStringAsync($"http://localhost:{hostPort}/"); - Assert.Contains("AppInsights is not configured!", data); - }, - dockerCli: _dockerCli); - } + // await EndToEndTestHelper.RunAndAssertAppAsync( + // imageName: _imageHelper.GetRuntimeImage("node", nodeVersion, ImageTestHelperConstants.OsTypeDebianBuster), + // output: _output, + // volumes: new List { volume }, + // environmentVariables: null, + // port: containerDebugPort, + // link: null, + // runCmd: "/bin/sh", + // runArgs: new[] { "-c", script }, + // assertAction: async (hostPort) => + // { + // var data = await _httpClient.GetStringAsync($"http://localhost:{hostPort}/"); + // Assert.Contains("AppInsights is not configured!", data); + // }, + // dockerCli: _dockerCli); + // } - [Theory] - [Trait("category", "runtime-bullseye")] - [InlineData("14", "")] - [InlineData("14", "disabled")] - public async Task GeneratesScriptForBullseye_Doesnot_Add_Oryx_AppInsights_Logic_With_IPA_Configuration_Async( - string nodeVersion, - string agentExtensionVersionEnvValue) - { - // This test is for the following scenario: - // When we find the user has set env variable "ApplicationInsightsAgent_EXTENSION_VERSION" to '~3' - // Oryx should not attach appinsight codeless config to runscript + // [Theory] + // [Trait("category", "runtime-bullseye")] + // [InlineData("14", "")] + // [InlineData("14", "disabled")] + // public async Task GeneratesScriptForBullseye_Doesnot_Add_Oryx_AppInsights_Logic_With_IPA_Configuration_Async( + // string nodeVersion, + // string agentExtensionVersionEnvValue) + // { + // // This test is for the following scenario: + // // When we find the user has set env variable "ApplicationInsightsAgent_EXTENSION_VERSION" to '~3' + // // Oryx should not attach appinsight codeless config to runscript - // Arrange - var appName = "linxnodeexpress-appinsights"; - var hostDir = Path.Combine(_hostSamplesDir, "nodejs", appName); - var volume = DockerVolume.CreateMirror(hostDir); - var appDir = volume.ContainerDir; - var imageName = _imageHelper.GetRuntimeImage("node", nodeVersion, ImageTestHelperConstants.OsTypeDebianBullseye); - //agentextension version will be set to '~3' or '' or 'disabled' - var agentExtensionVersionEnv = ExtVarNames.UserAppInsightsAgentExtensionVersion; - var connectionStringEnv = ExtVarNames.UserAppInsightsConnectionStringEnv; - int containerDebugPort = 8080; - var OryxAppInsightsAttachString = "--require /usr/local/lib/node_modules/applicationinsights/out/Bootstrap/Oryx.js"; + // // Arrange + // var appName = "linxnodeexpress-appinsights"; + // var hostDir = Path.Combine(_hostSamplesDir, "nodejs", appName); + // var volume = DockerVolume.CreateMirror(hostDir); + // var appDir = volume.ContainerDir; + // var imageName = _imageHelper.GetRuntimeImage("node", nodeVersion, ImageTestHelperConstants.OsTypeDebianBullseye); + // //agentextension version will be set to '~3' or '' or 'disabled' + // var agentExtensionVersionEnv = ExtVarNames.UserAppInsightsAgentExtensionVersion; + // var connectionStringEnv = ExtVarNames.UserAppInsightsConnectionStringEnv; + // int containerDebugPort = 8080; + // var OryxAppInsightsAttachString = "--require /usr/local/lib/node_modules/applicationinsights/out/Bootstrap/Oryx.js"; - var script = new ShellScriptBuilder() - .AddCommand($"export {agentExtensionVersionEnv}={agentExtensionVersionEnvValue}") - .AddCommand($"export {connectionStringEnv}=alkajsldkajd") - .AddCommand($"cd {appDir}") - .AddCommand("npm install") - .AddCommand($"oryx create-script -appPath {appDir}") - .AddDirectoryExistsCheck($"{appDir}/node_modules") - .AddCommand($"./run.sh > {appDir}/log.log") - .AddStringDoesNotExistInFileCheck(OryxAppInsightsAttachString, $"{appDir}/run.sh") - .ToString(); + // var script = new ShellScriptBuilder() + // .AddCommand($"export {agentExtensionVersionEnv}={agentExtensionVersionEnvValue}") + // .AddCommand($"export {connectionStringEnv}=alkajsldkajd") + // .AddCommand($"cd {appDir}") + // .AddCommand("npm install") + // .AddCommand($"oryx create-script -appPath {appDir}") + // .AddDirectoryExistsCheck($"{appDir}/node_modules") + // .AddCommand($"./run.sh > {appDir}/log.log") + // .AddStringDoesNotExistInFileCheck(OryxAppInsightsAttachString, $"{appDir}/run.sh") + // .ToString(); - await EndToEndTestHelper.RunAndAssertAppAsync( - imageName: _imageHelper.GetRuntimeImage("node", nodeVersion, ImageTestHelperConstants.OsTypeDebianBullseye), - output: _output, - volumes: new List { volume }, - environmentVariables: null, - port: containerDebugPort, - link: null, - runCmd: "/bin/sh", - runArgs: new[] { "-c", script }, - assertAction: async (hostPort) => - { - var data = await _httpClient.GetStringAsync($"http://localhost:{hostPort}/"); - Assert.Contains("AppInsights is not configured!", data); - }, - dockerCli: _dockerCli); - } + // await EndToEndTestHelper.RunAndAssertAppAsync( + // imageName: _imageHelper.GetRuntimeImage("node", nodeVersion, ImageTestHelperConstants.OsTypeDebianBullseye), + // output: _output, + // volumes: new List { volume }, + // environmentVariables: null, + // port: containerDebugPort, + // link: null, + // runCmd: "/bin/sh", + // runArgs: new[] { "-c", script }, + // assertAction: async (hostPort) => + // { + // var data = await _httpClient.GetStringAsync($"http://localhost:{hostPort}/"); + // Assert.Contains("AppInsights is not configured!", data); + // }, + // dockerCli: _dockerCli); + // } } } diff --git a/tests/Oryx.RuntimeImage.Tests/Node/NodeRuntimeImageContainsRequiredPrograms.cs b/tests/Oryx.RuntimeImage.Tests/Node/NodeRuntimeImageContainsRequiredPrograms.cs index 6b1a8a97f..fc020fc18 100644 --- a/tests/Oryx.RuntimeImage.Tests/Node/NodeRuntimeImageContainsRequiredPrograms.cs +++ b/tests/Oryx.RuntimeImage.Tests/Node/NodeRuntimeImageContainsRequiredPrograms.cs @@ -18,26 +18,26 @@ namespace Microsoft.Oryx.RuntimeImage.Tests { } - [Theory] - [Trait("category", "runtime-buster")] - [MemberData(nameof(TestValueGenerator.GetBusterNodeVersions), MemberType = typeof(TestValueGenerator))] - public void NodeBusterImage_Contains_RequiredPrograms(string version, string osType) - { - // Arrange & Act - var result = _dockerCli.Run(new DockerRunArguments - { - ImageId = _imageHelper.GetRuntimeImage("node", version, osType), - CommandToExecuteOnRun = "/bin/sh", - CommandArguments = new[] - { - "-c", - "which tar && which unzip && which pm2 && cd /opt/node-wrapper && node --version" - } - }); + // [Theory] + // [Trait("category", "runtime-buster")] + // [MemberData(nameof(TestValueGenerator.GetBusterNodeVersions), MemberType = typeof(TestValueGenerator))] + // public void NodeBusterImage_Contains_RequiredPrograms(string version, string osType) + // { + // // Arrange & Act + // var result = _dockerCli.Run(new DockerRunArguments + // { + // ImageId = _imageHelper.GetRuntimeImage("node", version, osType), + // CommandToExecuteOnRun = "/bin/sh", + // CommandArguments = new[] + // { + // "-c", + // "which tar && which unzip && which pm2 && cd /opt/node-wrapper && node --version" + // } + // }); - // Assert - RunAsserts(() => Assert.True(result.IsSuccess), result.GetDebugInfo()); - } + // // Assert + // RunAsserts(() => Assert.True(result.IsSuccess), result.GetDebugInfo()); + // } [Theory] [Trait("category", "runtime-bullseye")] @@ -81,78 +81,78 @@ namespace Microsoft.Oryx.RuntimeImage.Tests RunAsserts(() => Assert.True(result.IsSuccess), result.GetDebugInfo()); } - [Theory] - [Trait("category", "runtime-buster")] - [InlineData("14")] - public void Node14BusterImage_Contains_PM2(string version) - { - // Arrange & Act - var result = _dockerCli.Run(new DockerRunArguments - { - ImageId = _imageHelper.GetRuntimeImage("node", version, ImageTestHelperConstants.OsTypeDebianBuster), - CommandToExecuteOnRun = "/bin/sh", - CommandArguments = new[] - { - "-c", - "which pm2" - } - }); + // [Theory] + // [Trait("category", "runtime-buster")] + // [InlineData("14")] + // public void Node14BusterImage_Contains_PM2(string version) + // { + // // Arrange & Act + // var result = _dockerCli.Run(new DockerRunArguments + // { + // ImageId = _imageHelper.GetRuntimeImage("node", version, ImageTestHelperConstants.OsTypeDebianBuster), + // CommandToExecuteOnRun = "/bin/sh", + // CommandArguments = new[] + // { + // "-c", + // "which pm2" + // } + // }); - // Assert - RunAsserts(() => Assert.True(result.IsSuccess), result.GetDebugInfo()); - } + // // Assert + // RunAsserts(() => Assert.True(result.IsSuccess), result.GetDebugInfo()); + // } - [Theory] - [Trait("category", "runtime-bullseye")] - [InlineData("14")] - public void Node14BullseyeImage_Contains_PM2(string version) - { - // Arrange & Act - var result = _dockerCli.Run(new DockerRunArguments - { - ImageId = _imageHelper.GetRuntimeImage("node", version, ImageTestHelperConstants.OsTypeDebianBullseye), - CommandToExecuteOnRun = "/bin/sh", - CommandArguments = new[] - { - "-c", - "which pm2" - } - }); + // [Theory] + // [Trait("category", "runtime-bullseye")] + // [InlineData("14")] + // public void Node14BullseyeImage_Contains_PM2(string version) + // { + // // Arrange & Act + // var result = _dockerCli.Run(new DockerRunArguments + // { + // ImageId = _imageHelper.GetRuntimeImage("node", version, ImageTestHelperConstants.OsTypeDebianBullseye), + // CommandToExecuteOnRun = "/bin/sh", + // CommandArguments = new[] + // { + // "-c", + // "which pm2" + // } + // }); - // Assert - RunAsserts(() => Assert.True(result.IsSuccess), result.GetDebugInfo()); - } + // // Assert + // RunAsserts(() => Assert.True(result.IsSuccess), result.GetDebugInfo()); + // } - [Theory] - [Trait("category", "runtime-buster")] - [MemberData(nameof(TestValueGenerator.GetBusterNodeVersions), MemberType = typeof(TestValueGenerator))] - public void NodeBusterImage_Contains_ApplicationInsights(string version, string osType) - { - // Arrange & Act - var expectedAppInsightsVersion = string.Concat("applicationinsights@", NodeVersions.NodeAppInsightsSdkVersion); - var result = _dockerCli.Run(new DockerRunArguments - { - ImageId = _imageHelper.GetRuntimeImage("node", version, osType), - CommandToExecuteOnRun = "/bin/sh", - CommandArguments = new[] - { - "-c", - "npm list -g applicationinsights" - } - }); + // [Theory] + // [Trait("category", "runtime-buster")] + // [MemberData(nameof(TestValueGenerator.GetBusterNodeVersions), MemberType = typeof(TestValueGenerator))] + // public void NodeBusterImage_Contains_ApplicationInsights(string version, string osType) + // { + // // Arrange & Act + // var expectedAppInsightsVersion = string.Concat("applicationinsights@", NodeVersions.NodeAppInsightsSdkVersion); + // var result = _dockerCli.Run(new DockerRunArguments + // { + // ImageId = _imageHelper.GetRuntimeImage("node", version, osType), + // CommandToExecuteOnRun = "/bin/sh", + // CommandArguments = new[] + // { + // "-c", + // "npm list -g applicationinsights" + // } + // }); - var actualOutput = result.StdOut.ReplaceNewLine(); + // var actualOutput = result.StdOut.ReplaceNewLine(); - // Assert - RunAsserts( - () => - { - Assert.True(result.IsSuccess); - Assert.Contains(expectedAppInsightsVersion, actualOutput); - Assert.Contains("/usr/local/lib", actualOutput); - }, - result.GetDebugInfo()); - } + // // Assert + // RunAsserts( + // () => + // { + // Assert.True(result.IsSuccess); + // Assert.Contains(expectedAppInsightsVersion, actualOutput); + // Assert.Contains("/usr/local/lib", actualOutput); + // }, + // result.GetDebugInfo()); + // } [Theory] [Trait("category", "runtime-bullseye")] @@ -216,32 +216,32 @@ namespace Microsoft.Oryx.RuntimeImage.Tests result.GetDebugInfo()); } - [Theory] - [Trait("category", "runtime-buster")] - [MemberData(nameof(TestValueGenerator.GetBusterNodeVersions), MemberType = typeof(TestValueGenerator))] - public void NodeBusterImages_Contains_Correct_NPM_Version(string version, string osType) - { - // Arrange & Act - var result = _dockerCli.Run(new DockerRunArguments - { - ImageId = _imageHelper.GetRuntimeImage("node", version, osType), - CommandToExecuteOnRun = "/bin/sh", - CommandArguments = new[] - { - "-c", - "npm -v" - } - }); + // [Theory] + // [Trait("category", "runtime-buster")] + // [MemberData(nameof(TestValueGenerator.GetBusterNodeVersions), MemberType = typeof(TestValueGenerator))] + // public void NodeBusterImages_Contains_Correct_NPM_Version(string version, string osType) + // { + // // Arrange & Act + // var result = _dockerCli.Run(new DockerRunArguments + // { + // ImageId = _imageHelper.GetRuntimeImage("node", version, osType), + // CommandToExecuteOnRun = "/bin/sh", + // CommandArguments = new[] + // { + // "-c", + // "npm -v" + // } + // }); - // Assert - RunAsserts( - () => - { - Assert.True(result.IsSuccess); - Assert.Contains(NodeVersions.NpmVersion, result.StdOut.ReplaceNewLine()); - }, - result.GetDebugInfo()); - } + // // Assert + // RunAsserts( + // () => + // { + // Assert.True(result.IsSuccess); + // Assert.Contains(NodeVersions.NpmVersion, result.StdOut.ReplaceNewLine()); + // }, + // result.GetDebugInfo()); + // } [Theory] [Trait("category", "runtime-bullseye")] diff --git a/tests/Oryx.RuntimeImage.Tests/Node/NodeRuntimeImageContainsVersionAndCommitInfo.cs b/tests/Oryx.RuntimeImage.Tests/Node/NodeRuntimeImageContainsVersionAndCommitInfo.cs index 3a7a7a8c8..05549c631 100644 --- a/tests/Oryx.RuntimeImage.Tests/Node/NodeRuntimeImageContainsVersionAndCommitInfo.cs +++ b/tests/Oryx.RuntimeImage.Tests/Node/NodeRuntimeImageContainsVersionAndCommitInfo.cs @@ -18,42 +18,42 @@ namespace Microsoft.Oryx.RuntimeImage.Tests { } - [SkippableTheory] - [Trait("category", "runtime-buster")] - [MemberData(nameof(TestValueGenerator.GetBusterNodeVersions), MemberType = typeof(TestValueGenerator))] - public void NodeBusterImage_Contains_VersionAndCommit_Information(string version, string osType) - { - // We can't always rely on git commit ID as env variable in case build context is not correctly passed - // so we should check agent_os environment variable to know if the build is happening in azure devops agent - // or locally, locally we need to skip this test - var agentOS = Environment.GetEnvironmentVariable("AGENT_OS"); - Skip.If(string.IsNullOrEmpty(agentOS)); + // [SkippableTheory] + // [Trait("category", "runtime-buster")] + // [MemberData(nameof(TestValueGenerator.GetBusterNodeVersions), MemberType = typeof(TestValueGenerator))] + // public void NodeBusterImage_Contains_VersionAndCommit_Information(string version, string osType) + // { + // // We can't always rely on git commit ID as env variable in case build context is not correctly passed + // // so we should check agent_os environment variable to know if the build is happening in azure devops agent + // // or locally, locally we need to skip this test + // var agentOS = Environment.GetEnvironmentVariable("AGENT_OS"); + // Skip.If(string.IsNullOrEmpty(agentOS)); - // Arrange - var gitCommitID = GitHelper.GetCommitID(); - var buildNumber = Environment.GetEnvironmentVariable("BUILD_BUILDNUMBER"); - var expectedOryxVersion = string.Concat(Settings.OryxVersion, buildNumber); + // // Arrange + // var gitCommitID = GitHelper.GetCommitID(); + // var buildNumber = Environment.GetEnvironmentVariable("IMAGE_BUILDNUMBER"); + // var expectedOryxVersion = string.Concat(Settings.OryxVersion, buildNumber); - // Act - var result = _dockerCli.Run(new DockerRunArguments - { - ImageId = _imageHelper.GetRuntimeImage("node", version, osType), - CommandToExecuteOnRun = "oryx", - CommandArguments = new[] { "version" } - }); + // // Act + // var result = _dockerCli.Run(new DockerRunArguments + // { + // ImageId = _imageHelper.GetRuntimeImage("node", version, osType), + // CommandToExecuteOnRun = "oryx", + // CommandArguments = new[] { "version" } + // }); - // Assert - RunAsserts( - () => - { - Assert.True(result.IsSuccess); - Assert.NotNull(result.StdErr); - Assert.DoesNotContain(".unspecified, Commit: unspecified", result.StdOut); - Assert.Contains(gitCommitID, result.StdOut); - Assert.Contains(expectedOryxVersion, result.StdOut); - }, - result.GetDebugInfo()); - } + // // Assert + // RunAsserts( + // () => + // { + // Assert.True(result.IsSuccess); + // Assert.NotNull(result.StdErr); + // Assert.DoesNotContain(".unspecified, Commit: unspecified", result.StdOut); + // Assert.Contains(gitCommitID, result.StdOut); + // Assert.Contains(expectedOryxVersion, result.StdOut); + // }, + // result.GetDebugInfo()); + // } [SkippableTheory] [Trait("category", "runtime-bullseye")] @@ -68,7 +68,7 @@ namespace Microsoft.Oryx.RuntimeImage.Tests // Arrange var gitCommitID = GitHelper.GetCommitID(); - var buildNumber = Environment.GetEnvironmentVariable("BUILD_BUILDNUMBER"); + var buildNumber = Environment.GetEnvironmentVariable("IMAGE_BUILDNUMBER"); var expectedOryxVersion = string.Concat(Settings.OryxVersion, buildNumber); // Act @@ -105,7 +105,7 @@ namespace Microsoft.Oryx.RuntimeImage.Tests // Arrange var gitCommitID = GitHelper.GetCommitID(); - var buildNumber = Environment.GetEnvironmentVariable("BUILD_BUILDNUMBER"); + var buildNumber = Environment.GetEnvironmentVariable("IMAGE_BUILDNUMBER"); var expectedOryxVersion = string.Concat(Settings.OryxVersion, buildNumber); // Act diff --git a/tests/Oryx.RuntimeImage.Tests/Node/NodeRuntimeImageOtherTests.cs b/tests/Oryx.RuntimeImage.Tests/Node/NodeRuntimeImageOtherTests.cs index 50eb49f8d..27c975acd 100644 --- a/tests/Oryx.RuntimeImage.Tests/Node/NodeRuntimeImageOtherTests.cs +++ b/tests/Oryx.RuntimeImage.Tests/Node/NodeRuntimeImageOtherTests.cs @@ -21,37 +21,35 @@ namespace Microsoft.Oryx.RuntimeImage.Tests { } - [Theory] - [Trait("category", "runtime-buster")] - [InlineData("14", NodeVersions.Node14Version)] - [InlineData("16", NodeVersions.Node16Version)] - [Trait(TestConstants.Category, TestConstants.Release)] - public void NodeVersionMatchesBusterImageName(string version, string nodeVersion) - { - // Arrange & Act - var expectedNodeVersion = "v" + nodeVersion; - var result = _dockerCli.Run(new DockerRunArguments - { - ImageId = _imageHelper.GetRuntimeImage("node", version, ImageTestHelperConstants.OsTypeDebianBuster), - CommandToExecuteOnRun = "node", - CommandArguments = new[] { "--version" } - }); + // [Theory] + // [Trait("category", "runtime-buster")] + // [InlineData("14", NodeVersions.Node14Version)] + // [InlineData("16", NodeVersions.Node16Version)] + // [Trait(TestConstants.Category, TestConstants.Release)] + // public void NodeVersionMatchesBusterImageName(string version, string nodeVersion) + // { + // // Arrange & Act + // var expectedNodeVersion = "v" + nodeVersion; + // var result = _dockerCli.Run(new DockerRunArguments + // { + // ImageId = _imageHelper.GetRuntimeImage("node", version, ImageTestHelperConstants.OsTypeDebianBuster), + // CommandToExecuteOnRun = "node", + // CommandArguments = new[] { "--version" } + // }); - // Assert - var actualOutput = result.StdOut.ReplaceNewLine(); - RunAsserts( - () => - { - Assert.True(result.IsSuccess); - Assert.Equal(expectedNodeVersion, actualOutput); - }, - result.GetDebugInfo()); - } + // // Assert + // var actualOutput = result.StdOut.ReplaceNewLine(); + // RunAsserts( + // () => + // { + // Assert.True(result.IsSuccess); + // Assert.Equal(expectedNodeVersion, actualOutput); + // }, + // result.GetDebugInfo()); + // } [Theory] [Trait("category", "runtime-bullseye")] - [InlineData("14", NodeVersions.Node14Version)] - [InlineData("16", NodeVersions.Node16Version)] [InlineData("18", NodeVersions.Node18Version)] [InlineData("20", NodeVersions.Node20Version)] [Trait(TestConstants.Category, TestConstants.Release)] @@ -163,35 +161,35 @@ namespace Microsoft.Oryx.RuntimeImage.Tests result.GetDebugInfo()); } - [Theory] - [Trait("category", "runtime-buster")] - [MemberData( - nameof(TestValueGenerator.GetBusterNodeVersions), - MemberType = typeof(TestValueGenerator))] - public void HasExpected_Global_Buster_Node_Module_Path(string nodeVersion, string osType) - { - // Arrange & Act - var script = new ShellScriptBuilder() - .AddCommand("npm root --quiet -g") - .ToString(); + // [Theory] + // [Trait("category", "runtime-buster")] + // [MemberData( + // nameof(TestValueGenerator.GetBusterNodeVersions), + // MemberType = typeof(TestValueGenerator))] + // public void HasExpected_Global_Buster_Node_Module_Path(string nodeVersion, string osType) + // { + // // Arrange & Act + // var script = new ShellScriptBuilder() + // .AddCommand("npm root --quiet -g") + // .ToString(); - var result = _dockerCli.Run(new DockerRunArguments - { - ImageId = _imageHelper.GetRuntimeImage("node", nodeVersion, osType), - CommandToExecuteOnRun = "/bin/bash", - CommandArguments = new[] { "-c", script } - }); + // var result = _dockerCli.Run(new DockerRunArguments + // { + // ImageId = _imageHelper.GetRuntimeImage("node", nodeVersion, osType), + // CommandToExecuteOnRun = "/bin/bash", + // CommandArguments = new[] { "-c", script } + // }); - // Assert - var actualOutput = result.StdOut.ReplaceNewLine(); - RunAsserts( - () => - { - Assert.True(result.IsSuccess); - Assert.Contains(FilePaths.NodeGlobalModulesPath, actualOutput); - }, - result.GetDebugInfo()); - } + // // Assert + // var actualOutput = result.StdOut.ReplaceNewLine(); + // RunAsserts( + // () => + // { + // Assert.True(result.IsSuccess); + // Assert.Contains(FilePaths.NodeGlobalModulesPath, actualOutput); + // }, + // result.GetDebugInfo()); + // } [Fact] @@ -211,7 +209,7 @@ namespace Microsoft.Oryx.RuntimeImage.Tests // Act var result = _dockerCli.Run(new DockerRunArguments { - ImageId = _imageHelper.GetRuntimeImage("node", "14", ImageTestHelperConstants.OsTypeDebianBullseye), + ImageId = _imageHelper.GetRuntimeImage("node", "20", ImageTestHelperConstants.OsTypeDebianBullseye), CommandToExecuteOnRun = "/bin/sh", CommandArguments = new[] { "-c", script } }); @@ -220,44 +218,44 @@ namespace Microsoft.Oryx.RuntimeImage.Tests RunAsserts(() => Assert.Equal(exitCodeSentinel, result.ExitCode), result.GetDebugInfo()); } - [Theory(Skip = "Investigating debugging using pm2")] - [Trait("category", "runtime-buster")] - [MemberData( - nameof(TestValueGenerator.GetBusterNodeVersions_SupportDebugging), - MemberType = typeof(TestValueGenerator))] - public async Task RunBusterNodeAppUsingProcessJson_withDebuggingAsync(string nodeVersion, string osType) - { - var appName = "express-process-json"; - var hostDir = Path.Combine(_hostSamplesDir, "nodejs", appName); - var volume = DockerVolume.CreateMirror(hostDir); - var dir = volume.ContainerDir; - int containerDebugPort = 8080; + // [Theory(Skip = "Investigating debugging using pm2")] + // [Trait("category", "runtime-buster")] + // [MemberData( + // nameof(TestValueGenerator.GetBusterNodeVersions_SupportDebugging), + // MemberType = typeof(TestValueGenerator))] + // public async Task RunBusterNodeAppUsingProcessJson_withDebuggingAsync(string nodeVersion, string osType) + // { + // var appName = "express-process-json"; + // var hostDir = Path.Combine(_hostSamplesDir, "nodejs", appName); + // var volume = DockerVolume.CreateMirror(hostDir); + // var dir = volume.ContainerDir; + // int containerDebugPort = 8080; - var runAppScript = new ShellScriptBuilder() - .AddCommand($"cd {dir}/app") - .AddCommand("npm install") - .AddCommand("cd ..") - .AddCommand($"oryx create-script -remoteDebug -debugPort={containerDebugPort}") - .AddCommand("./run.sh") - .ToString(); + // var runAppScript = new ShellScriptBuilder() + // .AddCommand($"cd {dir}/app") + // .AddCommand("npm install") + // .AddCommand("cd ..") + // .AddCommand($"oryx create-script -remoteDebug -debugPort={containerDebugPort}") + // .AddCommand("./run.sh") + // .ToString(); - await EndToEndTestHelper.RunAndAssertAppAsync( - imageName: _imageHelper.GetRuntimeImage("node", nodeVersion, osType), - output: _output, - volumes: new List { volume }, - environmentVariables: null, - port: containerDebugPort, - link: null, - runCmd: "/bin/sh", - runArgs: new[] { "-c", runAppScript }, - assertAction: async (hostPort) => - { - var data = await _httpClient.GetStringAsync($"http://localhost:{hostPort}/"); - Assert.Contains("Say It Again", data); - }, - dockerCli: _dockerCli); + // await EndToEndTestHelper.RunAndAssertAppAsync( + // imageName: _imageHelper.GetRuntimeImage("node", nodeVersion, osType), + // output: _output, + // volumes: new List { volume }, + // environmentVariables: null, + // port: containerDebugPort, + // link: null, + // runCmd: "/bin/sh", + // runArgs: new[] { "-c", runAppScript }, + // assertAction: async (hostPort) => + // { + // var data = await _httpClient.GetStringAsync($"http://localhost:{hostPort}/"); + // Assert.Contains("Say It Again", data); + // }, + // dockerCli: _dockerCli); - } + // } [Theory(Skip = "Investigating debugging using pm2")] [Trait("category", "runtime-bullseye")] diff --git a/tests/Oryx.RuntimeImage.Tests/Node/NodeRuntimeImageRunAppUsingConfigJs.cs b/tests/Oryx.RuntimeImage.Tests/Node/NodeRuntimeImageRunAppUsingConfigJs.cs index 56ba46fc2..d9705ddb6 100644 --- a/tests/Oryx.RuntimeImage.Tests/Node/NodeRuntimeImageRunAppUsingConfigJs.cs +++ b/tests/Oryx.RuntimeImage.Tests/Node/NodeRuntimeImageRunAppUsingConfigJs.cs @@ -21,43 +21,43 @@ namespace Microsoft.Oryx.RuntimeImage.Tests { } - [Theory] - [Trait("category", "runtime-buster")] - [MemberData(nameof(TestValueGenerator.GetBusterNodeVersions_SupportPm2), MemberType = typeof(TestValueGenerator))] - public async Task RunBusterNodeAppUsingConfigJsAsync(string nodeVersion, string osType) - { + // [Theory] + // [Trait("category", "runtime-buster")] + // [MemberData(nameof(TestValueGenerator.GetBusterNodeVersions_SupportPm2), MemberType = typeof(TestValueGenerator))] + // public async Task RunBusterNodeAppUsingConfigJsAsync(string nodeVersion, string osType) + // { - var appName = "express-config-js"; - var hostDir = Path.Combine(_hostSamplesDir, "nodejs", appName); - var volume = DockerVolume.CreateMirror(hostDir); - var dir = volume.ContainerDir; - int containerPort = 80; + // var appName = "express-config-js"; + // var hostDir = Path.Combine(_hostSamplesDir, "nodejs", appName); + // var volume = DockerVolume.CreateMirror(hostDir); + // var dir = volume.ContainerDir; + // int containerPort = 80; - var runAppScript = new ShellScriptBuilder() - .AddCommand($"cd {dir}/app") - .AddCommand("npm install") - .AddCommand("cd ..") - .AddCommand($"oryx create-script -bindPort {containerPort} -usePM2") - .AddCommand("./run.sh") - .ToString(); + // var runAppScript = new ShellScriptBuilder() + // .AddCommand($"cd {dir}/app") + // .AddCommand("npm install") + // .AddCommand("cd ..") + // .AddCommand($"oryx create-script -bindPort {containerPort} -usePM2") + // .AddCommand("./run.sh") + // .ToString(); - await EndToEndTestHelper.RunAndAssertAppAsync( - imageName: _imageHelper.GetRuntimeImage("node", nodeVersion, osType), - output: _output, - volumes: new List { volume }, - environmentVariables: null, - containerPort, - link: null, - runCmd: "/bin/sh", - runArgs: new[] { "-c", runAppScript }, - assertAction: async (hostPort) => - { - var data = await _httpClient.GetStringAsync($"http://localhost:{hostPort}/"); - Assert.Equal("Hello World from express!", data); - }, - dockerCli: _dockerCli); + // await EndToEndTestHelper.RunAndAssertAppAsync( + // imageName: _imageHelper.GetRuntimeImage("node", nodeVersion, osType), + // output: _output, + // volumes: new List { volume }, + // environmentVariables: null, + // containerPort, + // link: null, + // runCmd: "/bin/sh", + // runArgs: new[] { "-c", runAppScript }, + // assertAction: async (hostPort) => + // { + // var data = await _httpClient.GetStringAsync($"http://localhost:{hostPort}/"); + // Assert.Equal("Hello World from express!", data); + // }, + // dockerCli: _dockerCli); - } + // } [Theory] [Trait("category", "runtime-bullseye")] diff --git a/tests/Oryx.RuntimeImage.Tests/Node/NodeRuntimeImageRunAppUsingConfigYml.cs b/tests/Oryx.RuntimeImage.Tests/Node/NodeRuntimeImageRunAppUsingConfigYml.cs index 8fec3b28e..906345209 100644 --- a/tests/Oryx.RuntimeImage.Tests/Node/NodeRuntimeImageRunAppUsingConfigYml.cs +++ b/tests/Oryx.RuntimeImage.Tests/Node/NodeRuntimeImageRunAppUsingConfigYml.cs @@ -21,42 +21,42 @@ namespace Microsoft.Oryx.RuntimeImage.Tests { } - [Theory] - [Trait("category", "runtime-buster")] - [MemberData(nameof(TestValueGenerator.GetBusterNodeVersions_SupportPm2), MemberType = typeof(TestValueGenerator))] - public async Task RunBusterNodeAppUsingConfigYmlAsync(string nodeVersion, string osType) - { + // [Theory] + // [Trait("category", "runtime-buster")] + // [MemberData(nameof(TestValueGenerator.GetBusterNodeVersions_SupportPm2), MemberType = typeof(TestValueGenerator))] + // public async Task RunBusterNodeAppUsingConfigYmlAsync(string nodeVersion, string osType) + // { - var appName = "express-config-yaml"; - var hostDir = Path.Combine(_hostSamplesDir, "nodejs", appName); - var volume = DockerVolume.CreateMirror(hostDir); - var dir = volume.ContainerDir; - int containerPort = 80; + // var appName = "express-config-yaml"; + // var hostDir = Path.Combine(_hostSamplesDir, "nodejs", appName); + // var volume = DockerVolume.CreateMirror(hostDir); + // var dir = volume.ContainerDir; + // int containerPort = 80; - var runAppScript = new ShellScriptBuilder() - .AddCommand($"cd {dir}/app") - .AddCommand("npm install") - .AddCommand("cd ..") - .AddCommand($"oryx create-script -bindPort {containerPort} -userStartupCommand config.yml -usePM2") - .AddCommand("./run.sh") - .ToString(); + // var runAppScript = new ShellScriptBuilder() + // .AddCommand($"cd {dir}/app") + // .AddCommand("npm install") + // .AddCommand("cd ..") + // .AddCommand($"oryx create-script -bindPort {containerPort} -userStartupCommand config.yml -usePM2") + // .AddCommand("./run.sh") + // .ToString(); - await EndToEndTestHelper.RunAndAssertAppAsync( - imageName: _imageHelper.GetRuntimeImage("node", nodeVersion, osType), - output: _output, - volumes: new List { volume }, - environmentVariables: null, - containerPort, - link: null, - runCmd: "/bin/sh", - runArgs: new[] { "-c", runAppScript }, - assertAction: async (hostPort) => - { - var data = await _httpClient.GetStringAsync($"http://localhost:{hostPort}/"); - Assert.Equal("Hello World from express!", data); - }, - dockerCli: _dockerCli); - } + // await EndToEndTestHelper.RunAndAssertAppAsync( + // imageName: _imageHelper.GetRuntimeImage("node", nodeVersion, osType), + // output: _output, + // volumes: new List { volume }, + // environmentVariables: null, + // containerPort, + // link: null, + // runCmd: "/bin/sh", + // runArgs: new[] { "-c", runAppScript }, + // assertAction: async (hostPort) => + // { + // var data = await _httpClient.GetStringAsync($"http://localhost:{hostPort}/"); + // Assert.Equal("Hello World from express!", data); + // }, + // dockerCli: _dockerCli); + // } [Theory] [Trait("category", "runtime-bullseye")] diff --git a/tests/Oryx.RuntimeImage.Tests/Node/NodeRuntimeImageRunAppUsingProcessJson.cs b/tests/Oryx.RuntimeImage.Tests/Node/NodeRuntimeImageRunAppUsingProcessJson.cs index 459f977e3..5762f5f96 100644 --- a/tests/Oryx.RuntimeImage.Tests/Node/NodeRuntimeImageRunAppUsingProcessJson.cs +++ b/tests/Oryx.RuntimeImage.Tests/Node/NodeRuntimeImageRunAppUsingProcessJson.cs @@ -21,43 +21,43 @@ namespace Microsoft.Oryx.RuntimeImage.Tests { } - [Theory] - [Trait("category", "runtime-buster")] - [MemberData(nameof(TestValueGenerator.GetBusterNodeVersions_SupportPm2), MemberType = typeof(TestValueGenerator))] - public async Task RunBusterNodeAppUsingProcessJson(string nodeVersion, string osType) - { + // [Theory] + // [Trait("category", "runtime-buster")] + // [MemberData(nameof(TestValueGenerator.GetBusterNodeVersions_SupportPm2), MemberType = typeof(TestValueGenerator))] + // public async Task RunBusterNodeAppUsingProcessJson(string nodeVersion, string osType) + // { - var appName = "express-process-json"; - var hostDir = Path.Combine(_hostSamplesDir, "nodejs", appName); - var volume = DockerVolume.CreateMirror(hostDir); - var dir = volume.ContainerDir; - int containerPort = 80; + // var appName = "express-process-json"; + // var hostDir = Path.Combine(_hostSamplesDir, "nodejs", appName); + // var volume = DockerVolume.CreateMirror(hostDir); + // var dir = volume.ContainerDir; + // int containerPort = 80; - var runAppScript = new ShellScriptBuilder() - .AddCommand($"cd {dir}/app") - .AddCommand("npm install") - .AddCommand("cd ..") - .AddCommand($"oryx create-script -bindPort {containerPort} -usePM2") - .AddCommand("./run.sh") - .ToString(); + // var runAppScript = new ShellScriptBuilder() + // .AddCommand($"cd {dir}/app") + // .AddCommand("npm install") + // .AddCommand("cd ..") + // .AddCommand($"oryx create-script -bindPort {containerPort} -usePM2") + // .AddCommand("./run.sh") + // .ToString(); - await EndToEndTestHelper.RunAndAssertAppAsync( - imageName: _imageHelper.GetRuntimeImage("node", nodeVersion, osType), - output: _output, - volumes: new List { volume }, - environmentVariables: null, - containerPort, - link: null, - runCmd: "/bin/sh", - runArgs: new[] { "-c", runAppScript }, - assertAction: async (hostPort) => - { - var data = await _httpClient.GetStringAsync($"http://localhost:{hostPort}/"); - Assert.Equal("Hello World from express!", data); - }, - dockerCli: _dockerCli); + // await EndToEndTestHelper.RunAndAssertAppAsync( + // imageName: _imageHelper.GetRuntimeImage("node", nodeVersion, osType), + // output: _output, + // volumes: new List { volume }, + // environmentVariables: null, + // containerPort, + // link: null, + // runCmd: "/bin/sh", + // runArgs: new[] { "-c", runAppScript }, + // assertAction: async (hostPort) => + // { + // var data = await _httpClient.GetStringAsync($"http://localhost:{hostPort}/"); + // Assert.Equal("Hello World from express!", data); + // }, + // dockerCli: _dockerCli); - } + // } [Theory] [Trait("category", "runtime-bullseye")] diff --git a/tests/Oryx.RuntimeImage.Tests/Php-fpm/PhpFpmImageTest.cs b/tests/Oryx.RuntimeImage.Tests/Php-fpm/PhpFpmImageTest.cs index f04f4e87c..1ecd57802 100644 --- a/tests/Oryx.RuntimeImage.Tests/Php-fpm/PhpFpmImageTest.cs +++ b/tests/Oryx.RuntimeImage.Tests/Php-fpm/PhpFpmImageTest.cs @@ -39,8 +39,8 @@ namespace Microsoft.Oryx.RuntimeImage.Tests [Theory] [Trait("category", "runtime-buster")] - [InlineData("7.4-fpm", PhpVersions.Php74Version)] - [InlineData("8.0-fpm", PhpVersions.Php80Version)] + // [InlineData("7.4-fpm", PhpVersions.Php74Version)] + // [InlineData("8.0-fpm", PhpVersions.Php80Version)] [InlineData("8.1-fpm", PhpVersions.Php81Version)] [InlineData("8.2-fpm", PhpVersions.Php82Version)] [InlineData("8.3-fpm", PhpVersions.Php83Version)] @@ -65,8 +65,8 @@ namespace Microsoft.Oryx.RuntimeImage.Tests [Theory] [Trait("category", "runtime-bullseye")] - [InlineData("7.4-fpm", PhpVersions.Php74Version)] - [InlineData("8.0-fpm", PhpVersions.Php80Version)] + // [InlineData("7.4-fpm", PhpVersions.Php74Version)] + // [InlineData("8.0-fpm", PhpVersions.Php80Version)] [InlineData("8.1-fpm", PhpVersions.Php81Version)] [InlineData("8.2-fpm", PhpVersions.Php82Version)] [InlineData("8.3-fpm", PhpVersions.Php83Version)] @@ -113,8 +113,8 @@ namespace Microsoft.Oryx.RuntimeImage.Tests [Theory] [Trait("category", "runtime-buster")] - [InlineData("7.4-fpm")] - [InlineData("8.0-fpm")] + // [InlineData("7.4-fpm")] + // [InlineData("8.0-fpm")] [InlineData("8.1-fpm")] [InlineData("8.2-fpm")] [InlineData("8.3-fpm")] @@ -138,8 +138,8 @@ namespace Microsoft.Oryx.RuntimeImage.Tests [Theory] [Trait("category", "runtime-bullseye")] - [InlineData("7.4-fpm")] - [InlineData("8.0-fpm")] + // [InlineData("7.4-fpm")] + // [InlineData("8.0-fpm")] [InlineData("8.1-fpm")] [InlineData("8.2-fpm")] [InlineData("8.3-fpm")] @@ -182,58 +182,58 @@ namespace Microsoft.Oryx.RuntimeImage.Tests Assert.True((bool)((JValue)gdInfo.GetValue("PNG Support")).Value); } - [Theory] - [Trait("category", "runtime-buster")] - [InlineData("7.4-fpm")] - public void MySqlnd_Azure_IsInstalled_For_Buster(string version) - { - // Arrange & Act - var result = _dockerCli.Run(new DockerRunArguments - { - ImageId = _imageHelper.GetRuntimeImage("php", version, ImageTestHelperConstants.OsTypeDebianBuster), - CommandToExecuteOnRun = "php", - CommandArguments = new[] { "-m", " | grep mysqlnd_azure);" } - }); + // [Theory] + // [Trait("category", "runtime-buster")] + // [InlineData("7.4-fpm")] + // public void MySqlnd_Azure_IsInstalled_For_Buster(string version) + // { + // // Arrange & Act + // var result = _dockerCli.Run(new DockerRunArguments + // { + // ImageId = _imageHelper.GetRuntimeImage("php", version, ImageTestHelperConstants.OsTypeDebianBuster), + // CommandToExecuteOnRun = "php", + // CommandArguments = new[] { "-m", " | grep mysqlnd_azure);" } + // }); - // Assert - var output = result.StdOut.ToString(); - RunAsserts(() => - { - Assert.True(result.IsSuccess); - Assert.Contains("mysqlnd_azure", output); - }, - result.GetDebugInfo()); + // // Assert + // var output = result.StdOut.ToString(); + // RunAsserts(() => + // { + // Assert.True(result.IsSuccess); + // Assert.Contains("mysqlnd_azure", output); + // }, + // result.GetDebugInfo()); - } + // } - [Theory] - [Trait("category", "runtime-bullseye")] - [InlineData("7.4-fpm")] - public void MySqlnd_Azure_IsInstalled_For_Bullseye(string version) - { - // Arrange & Act - var result = _dockerCli.Run(new DockerRunArguments - { - ImageId = _imageHelper.GetRuntimeImage("php", version, ImageTestHelperConstants.OsTypeDebianBullseye), - CommandToExecuteOnRun = "php", - CommandArguments = new[] { "-m", " | grep mysqlnd_azure);" } - }); + // [Theory] + // [Trait("category", "runtime-bullseye")] + // [InlineData("7.4-fpm")] + // public void MySqlnd_Azure_IsInstalled_For_Bullseye(string version) + // { + // // Arrange & Act + // var result = _dockerCli.Run(new DockerRunArguments + // { + // ImageId = _imageHelper.GetRuntimeImage("php", version, ImageTestHelperConstants.OsTypeDebianBullseye), + // CommandToExecuteOnRun = "php", + // CommandArguments = new[] { "-m", " | grep mysqlnd_azure);" } + // }); - // Assert - var output = result.StdOut.ToString(); - RunAsserts(() => - { - Assert.True(result.IsSuccess); - Assert.Contains("mysqlnd_azure", output); - }, - result.GetDebugInfo()); + // // Assert + // var output = result.StdOut.ToString(); + // RunAsserts(() => + // { + // Assert.True(result.IsSuccess); + // Assert.Contains("mysqlnd_azure", output); + // }, + // result.GetDebugInfo()); - } + // } [SkippableTheory] [Trait("category", "runtime-bullseye")] - [InlineData("7.4-fpm")] - [InlineData("8.0-fpm")] + // [InlineData("7.4-fpm")] + // [InlineData("8.0-fpm")] [InlineData("8.1-fpm")] [InlineData("8.2-fpm")] [InlineData("8.3-fpm")] @@ -247,7 +247,7 @@ namespace Microsoft.Oryx.RuntimeImage.Tests // Arrange var gitCommitID = GitHelper.GetCommitID(); - var buildNumber = Environment.GetEnvironmentVariable("BUILD_BUILDNUMBER"); + var buildNumber = Environment.GetEnvironmentVariable("IMAGE_BUILDNUMBER"); var expectedOryxVersion = string.Concat(Settings.OryxVersion, buildNumber); // Act @@ -273,8 +273,8 @@ namespace Microsoft.Oryx.RuntimeImage.Tests [SkippableTheory] [Trait("category", "runtime-buster")] - [InlineData("7.4-fpm")] - [InlineData("8.0-fpm")] + // [InlineData("7.4-fpm")] + // [InlineData("8.0-fpm")] [InlineData("8.1-fpm")] [InlineData("8.2-fpm")] [InlineData("8.3-fpm")] @@ -288,7 +288,7 @@ namespace Microsoft.Oryx.RuntimeImage.Tests // Arrange var gitCommitID = GitHelper.GetCommitID(); - var buildNumber = Environment.GetEnvironmentVariable("BUILD_BUILDNUMBER"); + var buildNumber = Environment.GetEnvironmentVariable("IMAGE_BUILDNUMBER"); var expectedOryxVersion = string.Concat(Settings.OryxVersion, buildNumber); // Act @@ -325,7 +325,7 @@ namespace Microsoft.Oryx.RuntimeImage.Tests // Arrange var gitCommitID = GitHelper.GetCommitID(); - var buildNumber = Environment.GetEnvironmentVariable("BUILD_BUILDNUMBER"); + var buildNumber = Environment.GetEnvironmentVariable("IMAGE_BUILDNUMBER"); var expectedOryxVersion = string.Concat(Settings.OryxVersion, buildNumber); // Act @@ -351,8 +351,8 @@ namespace Microsoft.Oryx.RuntimeImage.Tests [Theory] [Trait("category", "runtime-bullseye")] - [InlineData("7.4-fpm")] - [InlineData("8.0-fpm")] + // [InlineData("7.4-fpm")] + // [InlineData("8.0-fpm")] [InlineData("8.1-fpm")] [InlineData("8.2-fpm")] [InlineData("8.3-fpm")] @@ -379,8 +379,8 @@ namespace Microsoft.Oryx.RuntimeImage.Tests [Theory] [Trait("category", "runtime-buster")] - [InlineData("7.4-fpm")] - [InlineData("8.0-fpm")] + // [InlineData("7.4-fpm")] + // [InlineData("8.0-fpm")] [InlineData("8.1-fpm")] [InlineData("8.2-fpm")] [InlineData("8.3-fpm")] @@ -431,7 +431,7 @@ namespace Microsoft.Oryx.RuntimeImage.Tests [Theory] [Trait("category", "runtime-buster")] - [InlineData("8.0-fpm")] + // [InlineData("8.0-fpm")] [InlineData("8.1-fpm")] [InlineData("8.2-fpm")] [InlineData("8.3-fpm")] @@ -457,7 +457,7 @@ namespace Microsoft.Oryx.RuntimeImage.Tests [Theory] [Trait("category", "runtime-bullseye")] - [InlineData("8.0-fpm")] + // [InlineData("8.0-fpm")] [InlineData("8.1-fpm")] [InlineData("8.2-fpm")] [InlineData("8.3-fpm")] diff --git a/tests/Oryx.RuntimeImage.Tests/Php/PhpImageTest.cs b/tests/Oryx.RuntimeImage.Tests/Php/PhpImageTest.cs index 3c8933240..111114250 100644 --- a/tests/Oryx.RuntimeImage.Tests/Php/PhpImageTest.cs +++ b/tests/Oryx.RuntimeImage.Tests/Php/PhpImageTest.cs @@ -41,8 +41,8 @@ namespace Microsoft.Oryx.RuntimeImage.Tests [Theory] [Trait("category", "runtime-buster")] - [InlineData("7.4", PhpVersions.Php74Version)] - [InlineData("8.0", PhpVersions.Php80Version)] + // [InlineData("7.4", PhpVersions.Php74Version)] + // [InlineData("8.0", PhpVersions.Php80Version)] [InlineData("8.1", PhpVersions.Php81Version)] [InlineData("8.2", PhpVersions.Php82Version)] [InlineData("8.3", PhpVersions.Php83Version)] @@ -67,8 +67,8 @@ namespace Microsoft.Oryx.RuntimeImage.Tests [Theory] [Trait("category", "runtime-bullseye")] - [InlineData("7.4", PhpVersions.Php74Version)] - [InlineData("8.0", PhpVersions.Php80Version)] + // [InlineData("7.4", PhpVersions.Php74Version)] + // [InlineData("8.0", PhpVersions.Php80Version)] [InlineData("8.1", PhpVersions.Php81Version)] [InlineData("8.2", PhpVersions.Php82Version)] [InlineData("8.3", PhpVersions.Php83Version)] @@ -115,8 +115,8 @@ namespace Microsoft.Oryx.RuntimeImage.Tests [Theory] [Trait("category", "runtime-buster")] - [InlineData("7.4")] - [InlineData("8.0")] + // [InlineData("7.4")] + // [InlineData("8.0")] [InlineData("8.1")] [InlineData("8.2")] [InlineData("8.3")] @@ -141,8 +141,8 @@ namespace Microsoft.Oryx.RuntimeImage.Tests [Theory] [Trait("category", "runtime-bullseye")] - [InlineData("7.4")] - [InlineData("8.0")] + // [InlineData("7.4")] + // [InlineData("8.0")] [InlineData("8.1")] [InlineData("8.2")] [InlineData("8.3")] @@ -189,8 +189,8 @@ namespace Microsoft.Oryx.RuntimeImage.Tests [Theory] [Trait("category", "runtime-buster")] - [InlineData("7.4")] - [InlineData("8.0")] + // [InlineData("7.4")] + // [InlineData("8.0")] [InlineData("8.1")] [InlineData("8.2")] [InlineData("8.3")] @@ -262,8 +262,8 @@ namespace Microsoft.Oryx.RuntimeImage.Tests [Theory] [Trait("category", "runtime-bullseye")] - [InlineData("7.4")] - [InlineData("8.0")] + // [InlineData("7.4")] + // [InlineData("8.0")] [InlineData("8.1")] [InlineData("8.2")] [InlineData("8.3")] @@ -404,8 +404,8 @@ namespace Microsoft.Oryx.RuntimeImage.Tests [Theory] [Trait("category", "runtime-buster")] - [InlineData("7.4")] - [InlineData("8.0")] + // [InlineData("7.4")] + // [InlineData("8.0")] [InlineData("8.1")] [InlineData("8.2")] [InlineData("8.3")] @@ -432,8 +432,8 @@ namespace Microsoft.Oryx.RuntimeImage.Tests [Theory] [Trait("category", "runtime-bullseye")] - [InlineData("7.4")] - [InlineData("8.0")] + // [InlineData("7.4")] + // [InlineData("8.0")] [InlineData("8.1")] [InlineData("8.2")] [InlineData("8.3")] @@ -482,58 +482,58 @@ namespace Microsoft.Oryx.RuntimeImage.Tests } - [Theory] - [Trait("category", "runtime-buster")] - [InlineData("7.4")] - public void MySqlnd_Azure_IsInstalled_For_Buster(string version) - { - // Arrange & Act - var result = _dockerCli.Run(new DockerRunArguments - { - ImageId = _imageHelper.GetRuntimeImage("php", version, ImageTestHelperConstants.OsTypeDebianBuster), - CommandToExecuteOnRun = "php", - CommandArguments = new[] { "-m", " | grep mysqlnd_azure);" } - }); + // [Theory] + // [Trait("category", "runtime-buster")] + // [InlineData("7.4")] + // public void MySqlnd_Azure_IsInstalled_For_Buster(string version) + // { + // // Arrange & Act + // var result = _dockerCli.Run(new DockerRunArguments + // { + // ImageId = _imageHelper.GetRuntimeImage("php", version, ImageTestHelperConstants.OsTypeDebianBuster), + // CommandToExecuteOnRun = "php", + // CommandArguments = new[] { "-m", " | grep mysqlnd_azure);" } + // }); - // Assert - var output = result.StdOut.ToString(); - RunAsserts(() => - { - Assert.True(result.IsSuccess); - Assert.Contains("mysqlnd_azure", output); - }, - result.GetDebugInfo()); + // // Assert + // var output = result.StdOut.ToString(); + // RunAsserts(() => + // { + // Assert.True(result.IsSuccess); + // Assert.Contains("mysqlnd_azure", output); + // }, + // result.GetDebugInfo()); - } + // } - [Theory] - [Trait("category", "runtime-bullseye")] - [InlineData("7.4")] - public void MySqlnd_Azure_IsInstalled_For_Bullseye(string version) - { - // Arrange & Act - var result = _dockerCli.Run(new DockerRunArguments - { - ImageId = _imageHelper.GetRuntimeImage("php", version, ImageTestHelperConstants.OsTypeDebianBullseye), - CommandToExecuteOnRun = "php", - CommandArguments = new[] { "-m", " | grep mysqlnd_azure);" } - }); + // [Theory] + // [Trait("category", "runtime-bullseye")] + // [InlineData("7.4")] + // public void MySqlnd_Azure_IsInstalled_For_Bullseye(string version) + // { + // // Arrange & Act + // var result = _dockerCli.Run(new DockerRunArguments + // { + // ImageId = _imageHelper.GetRuntimeImage("php", version, ImageTestHelperConstants.OsTypeDebianBullseye), + // CommandToExecuteOnRun = "php", + // CommandArguments = new[] { "-m", " | grep mysqlnd_azure);" } + // }); - // Assert - var output = result.StdOut.ToString(); - RunAsserts(() => - { - Assert.True(result.IsSuccess); - Assert.Contains("mysqlnd_azure", output); - }, - result.GetDebugInfo()); + // // Assert + // var output = result.StdOut.ToString(); + // RunAsserts(() => + // { + // Assert.True(result.IsSuccess); + // Assert.Contains("mysqlnd_azure", output); + // }, + // result.GetDebugInfo()); - } + // } [SkippableTheory] [Trait("category", "runtime-buster")] - [InlineData("7.4")] - [InlineData("8.0")] + // [InlineData("7.4")] + // [InlineData("8.0")] [InlineData("8.1")] [InlineData("8.2")] [InlineData("8.3")] @@ -547,7 +547,7 @@ namespace Microsoft.Oryx.RuntimeImage.Tests // Arrange var gitCommitID = GitHelper.GetCommitID(); - var buildNumber = Environment.GetEnvironmentVariable("BUILD_BUILDNUMBER"); + var buildNumber = Environment.GetEnvironmentVariable("IMAGE_BUILDNUMBER"); var expectedOryxVersion = string.Concat(Settings.OryxVersion, buildNumber); // Act @@ -573,8 +573,8 @@ namespace Microsoft.Oryx.RuntimeImage.Tests [SkippableTheory] [Trait("category", "runtime-bullseye")] - [InlineData("7.4")] - [InlineData("8.0")] + // [InlineData("7.4")] + // [InlineData("8.0")] [InlineData("8.1")] [InlineData("8.2")] [InlineData("8.3")] @@ -588,7 +588,7 @@ namespace Microsoft.Oryx.RuntimeImage.Tests // Arrange var gitCommitID = GitHelper.GetCommitID(); - var buildNumber = Environment.GetEnvironmentVariable("BUILD_BUILDNUMBER"); + var buildNumber = Environment.GetEnvironmentVariable("IMAGE_BUILDNUMBER"); var expectedOryxVersion = string.Concat(Settings.OryxVersion, buildNumber); // Act @@ -614,8 +614,8 @@ namespace Microsoft.Oryx.RuntimeImage.Tests [Theory] [Trait("category", "runtime-buster")] - [InlineData("7.4")] - [InlineData("8.0")] + // [InlineData("7.4")] + // [InlineData("8.0")] [InlineData("8.1")] [InlineData("8.2")] [InlineData("8.3")] @@ -642,8 +642,8 @@ namespace Microsoft.Oryx.RuntimeImage.Tests [Theory] [Trait("category", "runtime-bullseye")] - [InlineData("7.4")] - [InlineData("8.0")] + // [InlineData("7.4")] + // [InlineData("8.0")] [InlineData("8.1")] [InlineData("8.2")] [InlineData("8.3")] @@ -670,7 +670,7 @@ namespace Microsoft.Oryx.RuntimeImage.Tests [Theory] [Trait("category", "runtime-buster")] - [InlineData("8.0")] + // [InlineData("8.0")] [InlineData("8.1")] [InlineData("8.2")] [InlineData("8.3")] @@ -697,7 +697,7 @@ namespace Microsoft.Oryx.RuntimeImage.Tests [Theory] [Trait("category", "runtime-bullseye")] - [InlineData("8.0")] + // [InlineData("8.0")] [InlineData("8.1")] [InlineData("8.2")] [InlineData("8.3")] diff --git a/tests/Oryx.RuntimeImage.Tests/Python/PythonImagesTests.cs b/tests/Oryx.RuntimeImage.Tests/Python/PythonImagesTests.cs index 6087a4b8c..b71aba974 100644 --- a/tests/Oryx.RuntimeImage.Tests/Python/PythonImagesTests.cs +++ b/tests/Oryx.RuntimeImage.Tests/Python/PythonImagesTests.cs @@ -20,7 +20,6 @@ namespace Microsoft.Oryx.RuntimeImage.Tests [SkippableTheory] [Trait("category", "runtime-buster")] - [InlineData("3.7")] [InlineData("3.8")] [InlineData("3.9")] [InlineData("3.10")] @@ -34,7 +33,7 @@ namespace Microsoft.Oryx.RuntimeImage.Tests // Arrange var gitCommitID = GitHelper.GetCommitID(); - var buildNumber = Environment.GetEnvironmentVariable("BUILD_BUILDNUMBER"); + var buildNumber = Environment.GetEnvironmentVariable("IMAGE_BUILDNUMBER"); var expectedOryxVersion = string.Concat(Settings.OryxVersion, buildNumber); // Act @@ -60,7 +59,6 @@ namespace Microsoft.Oryx.RuntimeImage.Tests [SkippableTheory] [Trait("category", "runtime-bullseye")] - [InlineData("3.7")] [InlineData("3.8")] [InlineData("3.9")] [InlineData("3.10")] @@ -76,7 +74,7 @@ namespace Microsoft.Oryx.RuntimeImage.Tests // Arrange var gitCommitID = GitHelper.GetCommitID(); - var buildNumber = Environment.GetEnvironmentVariable("BUILD_BUILDNUMBER"); + var buildNumber = Environment.GetEnvironmentVariable("IMAGE_BUILDNUMBER"); var expectedOryxVersion = string.Concat(Settings.OryxVersion, buildNumber); // Act @@ -117,7 +115,7 @@ namespace Microsoft.Oryx.RuntimeImage.Tests // Arrange var gitCommitID = GitHelper.GetCommitID(); - var buildNumber = Environment.GetEnvironmentVariable("BUILD_BUILDNUMBER"); + var buildNumber = Environment.GetEnvironmentVariable("IMAGE_BUILDNUMBER"); var expectedOryxVersion = string.Concat(Settings.OryxVersion, buildNumber); // Act @@ -143,7 +141,6 @@ namespace Microsoft.Oryx.RuntimeImage.Tests [Theory] [Trait("category", "runtime-buster")] - [InlineData("3.7")] [InlineData("3.8")] [InlineData("3.9")] [InlineData("3.10")] @@ -172,7 +169,6 @@ namespace Microsoft.Oryx.RuntimeImage.Tests [Theory] [Trait("category", "runtime-bullseye")] - [InlineData("3.7")] [InlineData("3.8")] [InlineData("3.9")] [InlineData("3.10")] @@ -262,7 +258,6 @@ namespace Microsoft.Oryx.RuntimeImage.Tests [Theory] [Trait("category", "runtime-bullseye")] - [InlineData("3.7", "Python " + PythonVersions.Python37Version)] [InlineData("3.8", "Python " + PythonVersions.Python38Version)] [InlineData("3.9", "Python " + PythonVersions.Python39Version)] [InlineData("3.10", "Python " + PythonVersions.Python310Version)] @@ -292,7 +287,6 @@ namespace Microsoft.Oryx.RuntimeImage.Tests [Theory] [Trait("category", "runtime-buster")] - [InlineData("3.7", "Python " + PythonVersions.Python37Version)] [InlineData("3.8", "Python " + PythonVersions.Python38Version)] [InlineData("3.9", "Python " + PythonVersions.Python39Version)] [InlineData("3.10", "Python " + PythonVersions.Python310Version)] @@ -335,7 +329,7 @@ namespace Microsoft.Oryx.RuntimeImage.Tests // Act var result = _dockerCli.Run(new DockerRunArguments { - ImageId = _imageHelper.GetRuntimeImage("python", "3.7", ImageTestHelperConstants.OsTypeDebianBullseye), + ImageId = _imageHelper.GetRuntimeImage("python", "3.11", ImageTestHelperConstants.OsTypeDebianBullseye), CommandToExecuteOnRun = "/bin/sh", CommandArguments = new[] { "-c", script } }); diff --git a/tests/Oryx.RuntimeImage.Tests/Ruby/RubyImagesTest.cs b/tests/Oryx.RuntimeImage.Tests/Ruby/RubyImagesTest.cs index 511620453..e60a99140 100644 --- a/tests/Oryx.RuntimeImage.Tests/Ruby/RubyImagesTest.cs +++ b/tests/Oryx.RuntimeImage.Tests/Ruby/RubyImagesTest.cs @@ -18,120 +18,120 @@ namespace Microsoft.Oryx.RuntimeImage.Tests { } - [SkippableFact] - [Trait("category", "runtime-buster")] - public void RubyRuntimeImage_Contains_VersionAndCommit_Information() - { - // we cant always rely on gitcommitid as env variable in case build context is not correctly passed - // so we should check agent_os environment variable to know if the build is happening in azure devops agent - // or locally, locally we need to skip this test - var agentOS = Environment.GetEnvironmentVariable("AGENT_OS"); - Skip.If(string.IsNullOrEmpty(agentOS)); + // [SkippableFact] + // [Trait("category", "runtime-buster")] + // public void RubyRuntimeImage_Contains_VersionAndCommit_Information() + // { + // // we cant always rely on gitcommitid as env variable in case build context is not correctly passed + // // so we should check agent_os environment variable to know if the build is happening in azure devops agent + // // or locally, locally we need to skip this test + // var agentOS = Environment.GetEnvironmentVariable("AGENT_OS"); + // Skip.If(string.IsNullOrEmpty(agentOS)); - // Arrange - var gitCommitID = GitHelper.GetCommitID(); - var buildNumber = Environment.GetEnvironmentVariable("BUILD_BUILDNUMBER"); - var expectedOryxVersion = string.Concat(Settings.OryxVersion, buildNumber); + // // Arrange + // var gitCommitID = GitHelper.GetCommitID(); + // var buildNumber = Environment.GetEnvironmentVariable("IMAGE_BUILDNUMBER"); + // var expectedOryxVersion = string.Concat(Settings.OryxVersion, buildNumber); - // Act - var result = _dockerCli.Run(new DockerRunArguments - { - ImageId = _imageHelper.GetRuntimeImage("ruby", "dynamic", ImageTestHelperConstants.OsTypeDebianBuster), - CommandToExecuteOnRun = "oryx", - CommandArguments = new[] { "version" } - }); + // // Act + // var result = _dockerCli.Run(new DockerRunArguments + // { + // ImageId = _imageHelper.GetRuntimeImage("ruby", "dynamic", ImageTestHelperConstants.OsTypeDebianBuster), + // CommandToExecuteOnRun = "oryx", + // CommandArguments = new[] { "version" } + // }); - // Assert - RunAsserts( - () => - { - Assert.True(result.IsSuccess); - Assert.NotNull(result.StdErr); - Assert.DoesNotContain(".unspecified, Commit: unspecified", result.StdOut); - Assert.Contains(gitCommitID, result.StdOut); - Assert.Contains(expectedOryxVersion, result.StdOut); - }, - result.GetDebugInfo()); - } + // // Assert + // RunAsserts( + // () => + // { + // Assert.True(result.IsSuccess); + // Assert.NotNull(result.StdErr); + // Assert.DoesNotContain(".unspecified, Commit: unspecified", result.StdOut); + // Assert.Contains(gitCommitID, result.StdOut); + // Assert.Contains(expectedOryxVersion, result.StdOut); + // }, + // result.GetDebugInfo()); + // } - [Fact] - [Trait("category", "runtime-buster")] - public void GeneratedScript_CanRunStartupScriptsFromAppRoot() - { - // Arrange - const int exitCodeSentinel = 222; - var appPath = "/tmp/app"; - var script = new ShellScriptBuilder() - .CreateDirectory(appPath) - .CreateFile(appPath + "/entry.sh", $"exit {exitCodeSentinel}") - .AddCommand("oryx create-script -userStartupCommand entry.sh -appPath " + appPath) - .AddCommand(". ./run.sh") // Source the default output path - .ToString(); + // [Fact] + // [Trait("category", "runtime-buster")] + // public void GeneratedScript_CanRunStartupScriptsFromAppRoot() + // { + // // Arrange + // const int exitCodeSentinel = 222; + // var appPath = "/tmp/app"; + // var script = new ShellScriptBuilder() + // .CreateDirectory(appPath) + // .CreateFile(appPath + "/entry.sh", $"exit {exitCodeSentinel}") + // .AddCommand("oryx create-script -userStartupCommand entry.sh -appPath " + appPath) + // .AddCommand(". ./run.sh") // Source the default output path + // .ToString(); - // Act - var result = _dockerCli.Run(new DockerRunArguments - { - ImageId = _imageHelper.GetRuntimeImage("ruby", "dynamic", ImageTestHelperConstants.OsTypeDebianBuster), - CommandToExecuteOnRun = "/bin/sh", - CommandArguments = new[] { "-c", script } - }); + // // Act + // var result = _dockerCli.Run(new DockerRunArguments + // { + // ImageId = _imageHelper.GetRuntimeImage("ruby", "dynamic", ImageTestHelperConstants.OsTypeDebianBuster), + // CommandToExecuteOnRun = "/bin/sh", + // CommandArguments = new[] { "-c", script } + // }); - // Assert - RunAsserts(() => Assert.Equal(exitCodeSentinel, result.ExitCode), result.GetDebugInfo()); - } + // // Assert + // RunAsserts(() => Assert.Equal(exitCodeSentinel, result.ExitCode), result.GetDebugInfo()); + // } - [Theory] - [Trait("category", "runtime-buster")] - [InlineData("2.5", "ruby " + RubyVersions.Ruby25Version)] - [InlineData("2.6", "ruby " + RubyVersions.Ruby26Version)] - [InlineData("2.7", "ruby " + RubyVersions.Ruby27Version)] - [Trait(TestConstants.Category, TestConstants.Release)] - public void RubyVersionMatchesBusterImageName(string rubyVersion, string expectedOutput) - { - // Arrange & Act - var result = _dockerCli.Run(new DockerRunArguments - { - ImageId = _imageHelper.GetRuntimeImage("ruby", rubyVersion, ImageTestHelperConstants.OsTypeDebianBuster), - CommandToExecuteOnRun = "ruby", - CommandArguments = new[] { "--version" } - }); + // [Theory] + // [Trait("category", "runtime-buster")] + // [InlineData("2.5", "ruby " + RubyVersions.Ruby25Version)] + // [InlineData("2.6", "ruby " + RubyVersions.Ruby26Version)] + // [InlineData("2.7", "ruby " + RubyVersions.Ruby27Version)] + // [Trait(TestConstants.Category, TestConstants.Release)] + // public void RubyVersionMatchesBusterImageName(string rubyVersion, string expectedOutput) + // { + // // Arrange & Act + // var result = _dockerCli.Run(new DockerRunArguments + // { + // ImageId = _imageHelper.GetRuntimeImage("ruby", rubyVersion, ImageTestHelperConstants.OsTypeDebianBuster), + // CommandToExecuteOnRun = "ruby", + // CommandArguments = new[] { "--version" } + // }); - // Assert - var actualOutput = result.StdOut.ReplaceNewLine(); - RunAsserts( - () => - { - Assert.True(result.IsSuccess); - Assert.Contains(expectedOutput, actualOutput); - }, - result.GetDebugInfo()); - } + // // Assert + // var actualOutput = result.StdOut.ReplaceNewLine(); + // RunAsserts( + // () => + // { + // Assert.True(result.IsSuccess); + // Assert.Contains(expectedOutput, actualOutput); + // }, + // result.GetDebugInfo()); + // } - [Theory] - [Trait("category", "runtime-bullseye")] - [InlineData("2.5", "ruby " + RubyVersions.Ruby25Version)] - [InlineData("2.6", "ruby " + RubyVersions.Ruby26Version)] - [InlineData("2.7", "ruby " + RubyVersions.Ruby27Version)] - [Trait(TestConstants.Category, TestConstants.Release)] - public void RubyVersionMatchesBullseyeImageName(string rubyVersion, string expectedOutput) - { - // Arrange & Act - var result = _dockerCli.Run(new DockerRunArguments - { - ImageId = _imageHelper.GetRuntimeImage("ruby", rubyVersion, ImageTestHelperConstants.OsTypeDebianBullseye), - CommandToExecuteOnRun = "ruby", - CommandArguments = new[] { "--version" } - }); + // [Theory] + // [Trait("category", "runtime-bullseye")] + // [InlineData("2.5", "ruby " + RubyVersions.Ruby25Version)] + // [InlineData("2.6", "ruby " + RubyVersions.Ruby26Version)] + // [InlineData("2.7", "ruby " + RubyVersions.Ruby27Version)] + // [Trait(TestConstants.Category, TestConstants.Release)] + // public void RubyVersionMatchesBullseyeImageName(string rubyVersion, string expectedOutput) + // { + // // Arrange & Act + // var result = _dockerCli.Run(new DockerRunArguments + // { + // ImageId = _imageHelper.GetRuntimeImage("ruby", rubyVersion, ImageTestHelperConstants.OsTypeDebianBullseye), + // CommandToExecuteOnRun = "ruby", + // CommandArguments = new[] { "--version" } + // }); - // Assert - var actualOutput = result.StdOut.ReplaceNewLine(); - RunAsserts( - () => - { - Assert.True(result.IsSuccess); - Assert.Contains(expectedOutput, actualOutput); - }, - result.GetDebugInfo()); - } + // // Assert + // var actualOutput = result.StdOut.ReplaceNewLine(); + // RunAsserts( + // () => + // { + // Assert.True(result.IsSuccess); + // Assert.Contains(expectedOutput, actualOutput); + // }, + // result.GetDebugInfo()); + // } } } \ No newline at end of file diff --git a/tests/Oryx.Tests.Common/EnvironmentVariableListExtensions.cs b/tests/Oryx.Tests.Common/EnvironmentVariableListExtensions.cs index a68dbce0e..852ec1069 100644 --- a/tests/Oryx.Tests.Common/EnvironmentVariableListExtensions.cs +++ b/tests/Oryx.Tests.Common/EnvironmentVariableListExtensions.cs @@ -16,24 +16,12 @@ namespace Microsoft.Oryx.Tests.Common { /// /// This method adds environment variables for the staging storage to a collection. - /// It adds the URL of the staging storage and the sasToken to access the storage. + /// It adds the URL of the staging storage. /// /// A Collection of EnvironmentVariable objects. The storage environment variables are be added here /// The method returns the collection with the newly added environment variables. public static ICollection AddTestStorageAccountEnvironmentVariables(this ICollection envVarList) { - var testStorageAccountUrl = Environment.GetEnvironmentVariable(SdkStorageConstants.TestingSdkStorageUrlKeyName); - var sdkStorageUrl = string.IsNullOrEmpty(testStorageAccountUrl) ? SdkStorageConstants.PrivateStagingSdkStorageBaseUrl : testStorageAccountUrl; - - envVarList.Add(new EnvironmentVariable(SdkStorageConstants.SdkStorageBaseUrlKeyName, sdkStorageUrl)); - - if (sdkStorageUrl == SdkStorageConstants.PrivateStagingSdkStorageBaseUrl) - { - string stagingStorageSasToken = Environment.GetEnvironmentVariable(SdkStorageConstants.PrivateStagingStorageSasTokenKey) ?? - KeyVaultHelper.GetKeyVaultSecretValue(SdkStorageConstants.OryxKeyvaultUri, SdkStorageConstants.StagingStorageSasTokenKeyvaultSecretName); - envVarList.Add(new EnvironmentVariable(SdkStorageConstants.PrivateStagingStorageSasTokenKey, stagingStorageSasToken)); - } - return envVarList; } } diff --git a/tests/Oryx.Tests.Common/GitHelper.cs b/tests/Oryx.Tests.Common/GitHelper.cs index bdc23c0fc..975858bb3 100644 --- a/tests/Oryx.Tests.Common/GitHelper.cs +++ b/tests/Oryx.Tests.Common/GitHelper.cs @@ -15,18 +15,7 @@ namespace Microsoft.Oryx.Tests.Common { public static string GetCommitID() { - var workingDirectory = (new FileInfo(Assembly.GetExecutingAssembly().Location)).Directory.FullName; - - (int exitCode, string output, string error) = ProcessHelper.RunProcess( - "git", - new[] { "rev-parse", "HEAD" }, - workingDirectory, - waitTimeForExit: TimeSpan.FromSeconds(10)); - - Assert.Equal(0, exitCode); - - var gitCommitID = output.Trim().ReplaceNewLine(); - return gitCommitID; + return Environment.GetEnvironmentVariable("GIT_COMMIT"); } } } diff --git a/tests/Oryx.Tests.Common/ImageTestHelper.cs b/tests/Oryx.Tests.Common/ImageTestHelper.cs index b8367f5c0..eb728de01 100644 --- a/tests/Oryx.Tests.Common/ImageTestHelper.cs +++ b/tests/Oryx.Tests.Common/ImageTestHelper.cs @@ -312,28 +312,19 @@ namespace Microsoft.Oryx.Tests.Common /// A 'build:slim' image that can be pulled for testing. public string GetAzureFunctionsJamStackBuildImage(string buildImageTag = null) { - if (!string.IsNullOrEmpty(buildImageTag) - && string.Equals(buildImageTag.ToLower(), _azureFunctionsJamStackBuster)) - { - return $"{_repoPrefix}/{_buildRepository}:{_azureFunctionsJamStackBuster}{_tagSuffix}"; - } - else if (!string.IsNullOrEmpty(buildImageTag) && string.Equals(buildImageTag.ToLower(), _azureFunctionsJamStackBullseye)) + if (!string.IsNullOrEmpty(buildImageTag) && string.Equals(buildImageTag.ToLower(), _azureFunctionsJamStackBullseye)) { return $"{_repoPrefix}/{_buildRepository}:{_azureFunctionsJamStackBullseye}{_tagSuffix}"; } else { - return $"{_repoPrefix}/{_buildRepository}:{_azureFunctionsJamStackStretch}{_tagSuffix}"; + return $"{_repoPrefix}/{_buildRepository}:{_azureFunctionsJamStackBuster}{_tagSuffix}"; } } public string GetGitHubActionsBuildImage(string buildImageTag = null) { - if (!string.IsNullOrEmpty(buildImageTag) && string.Equals(buildImageTag.ToLower(), _gitHubActionsBuster)) - { - return $"{_repoPrefix}/{_buildRepository}:{_gitHubActionsBuster}{_tagSuffix}"; - } - else if (!string.IsNullOrEmpty(buildImageTag) && string.Equals(buildImageTag.ToLower(), _gitHubActionsBookworm)) + if (!string.IsNullOrEmpty(buildImageTag) && string.Equals(buildImageTag.ToLower(), _gitHubActionsBookworm)) { return $"{_repoPrefix}/{_buildRepository}:{_gitHubActionsBookworm}{_tagSuffix}"; } @@ -343,7 +334,7 @@ namespace Microsoft.Oryx.Tests.Common } else { - return $"{_repoPrefix}/{_buildRepository}:{_gitHubActionsStretch}{_tagSuffix}"; + return $"{_repoPrefix}/{_buildRepository}:{_gitHubActionsBuster}{_tagSuffix}"; } } diff --git a/tests/Oryx.Tests.Common/TestValueGenerator.cs b/tests/Oryx.Tests.Common/TestValueGenerator.cs index a337c92e4..28bcc267d 100644 --- a/tests/Oryx.Tests.Common/TestValueGenerator.cs +++ b/tests/Oryx.Tests.Common/TestValueGenerator.cs @@ -12,10 +12,9 @@ namespace Microsoft.Oryx.Tests.Common { private readonly static List<(string Version, string OsType)> NodeVersions = new List<(string, string)> { - ("14", ImageTestHelperConstants.OsTypeDebianBuster), - ("14", ImageTestHelperConstants.OsTypeDebianBullseye), - ("16", ImageTestHelperConstants.OsTypeDebianBuster), - ("16", ImageTestHelperConstants.OsTypeDebianBullseye) + ("18", ImageTestHelperConstants.OsTypeDebianBullseye), + ("20", ImageTestHelperConstants.OsTypeDebianBullseye), + ("20", ImageTestHelperConstants.OsTypeDebianBookworm) }; private readonly static List<(string Version, string OsType)> NodeBusterVersions = new List<(string, string)> @@ -26,8 +25,6 @@ namespace Microsoft.Oryx.Tests.Common private readonly static List<(string Version, string OsType)> NodeBullseyeVersions = new List<(string, string)> { - ("14", ImageTestHelperConstants.OsTypeDebianBullseye), - ("16", ImageTestHelperConstants.OsTypeDebianBullseye), ("18", ImageTestHelperConstants.OsTypeDebianBullseye), ("20", ImageTestHelperConstants.OsTypeDebianBullseye) }; diff --git a/tests/images/build/Dockerfile b/tests/images/build/Dockerfile index 1580b1de1..9f5667368 100644 --- a/tests/images/build/Dockerfile +++ b/tests/images/build/Dockerfile @@ -1,4 +1,5 @@ -FROM oryxdevmcr.azurecr.io/public/oryx/build:debian-stretch +ARG PARENT_IMAGE_BASE +FROM ${PARENT_IMAGE_BASE} # Following is a pattern that AppService currently uses RUN groupadd -g 1002 oryx_group diff --git a/tests/images/build/gitHubActions.Dockerfile b/tests/images/build/gitHubActions.Dockerfile index e0035ef52..9f5667368 100644 --- a/tests/images/build/gitHubActions.Dockerfile +++ b/tests/images/build/gitHubActions.Dockerfile @@ -1,5 +1,5 @@ ARG PARENT_IMAGE_BASE -FROM oryxdevmcr.azurecr.io/public/oryx/build:${PARENT_IMAGE_BASE} +FROM ${PARENT_IMAGE_BASE} # Following is a pattern that AppService currently uses RUN groupadd -g 1002 oryx_group diff --git a/vsts/pipelines/templates/_platformBinariesReleaseTemplate.yml b/vsts/pipelines/templates/_platformBinariesReleaseTemplate.yml index df85c7926..7192ab76d 100644 --- a/vsts/pipelines/templates/_platformBinariesReleaseTemplate.yml +++ b/vsts/pipelines/templates/_platformBinariesReleaseTemplate.yml @@ -1,43 +1,30 @@ parameters: - destinationSdkStorageAccountName: 'oryxsdksstaging' + - name: sourceFolder + type: string + - name: storageAccountName + type: string + - name: subscription + type: string steps: -- checkout: self - clean: true - -- task: DownloadBuildArtifacts@0 - displayName: 'Download Artifacts' - inputs: - artifactName: drop - -- task: ms.vss-governance-buildtask.governance-build-task-component-detection.ComponentGovernanceComponentDetection@0 - displayName: 'Component Detection - OSS Compliance' - inputs: - ignoreDirectories: '$(Build.SourcesDirectory)/tests' - -- task: ShellScript@2 +- task: AzureCLI@2 displayName: Upload files to Azure Storage - env: - DEV_STORAGE_SAS_TOKEN: $(DEV-STORAGE-SAS-TOKEN) - ORYX_SDK_STORAGE_ACCOUNT_ACCESS_TOKEN: $(ORYX-SDK-STAGING-PRIVATE-SAS-TOKEN) - SANDBOX_STORAGE_SAS_TOKEN: $(SANDBOX-STORAGE-SAS-TOKEN) - PERSONAL_STORAGE_SAS_TOKEN: $(${{ upper(parameters.destinationSdkStorageAccountName) }}-PERSONAL-STORAGE-SAS-TOKEN) - PRIVATE_STORAGE_SAS_TOKEN: $(ORYX-SDK-PRIVATE-SAS-TOKEN) inputs: - scriptPath: ./vsts/scripts/publishFilesToAzureStorage.sh - args: ${{ parameters.destinationSdkStorageAccountName }} + azureSubscription: ${{ parameters.subscription }} + scriptPath: ${{ parameters.sourceFolder }}/vsts/scripts/publishFilesToAzureStorage.sh + arguments: ${{ parameters.storageAccountName }} + scriptType: 'bash' - task: UseDotNet@2 displayName: 'Use .NET Core SDK 7.x' inputs: - version: 7.0.306 + version: 7.x - task: ShellScript@2 displayName: 'Test Dev storage account' env: - ORYX_TEST_SDK_STORAGE_URL: https://${{ parameters.destinationSdkStorageAccountName }}.blob.core.windows.net - ORYX_SDK_STORAGE_ACCOUNT_ACCESS_TOKEN: $(ORYX-SDK-STAGING-PRIVATE-SAS-TOKEN) + ORYX_TEST_SDK_STORAGE_URL: https://${{ parameters.storageAccountName }}.blob.core.windows.net inputs: - scriptPath: ./build/testIntegration.sh + scriptPath: ${{ parameters.sourceFolder }}/build/testIntegration.sh args: StorageAccountTests=Dev \ No newline at end of file diff --git a/vsts/pipelines/templates/_platformBinariesTemplate.yml b/vsts/pipelines/templates/_platformBinariesTemplate.yml index 4ae719caf..dc9099406 100644 --- a/vsts/pipelines/templates/_platformBinariesTemplate.yml +++ b/vsts/pipelines/templates/_platformBinariesTemplate.yml @@ -1,42 +1,26 @@ parameters: - platformName: '' - debianFlavor: '' - destinationSdkStorageAccountName: '' - -steps: -- checkout: self - clean: true + - name: platformName + type: string + - name: debianFlavor + type: string + - name: sourceFolder + type: string + - name: storageAccountName + type: string + - name: dotnetPrivateStorageSasToken + type: string + default: '' -- task: ms.vss-governance-buildtask.governance-build-task-component-detection.ComponentGovernanceComponentDetection@0 - displayName: 'Component Detection - OSS Compliance' - inputs: - ignoreDirectories: '$(Build.SourcesDirectory)/tests' - +steps: - task: UseDotNet@2 displayName: 'Use .NET Core sdk 7.x' inputs: - version: 7.0.306 + version: 7.x - task: ShellScript@2 displayName: 'Building platform binaries' env: - ORYX_SDK_STORAGE_ACCOUNT_ACCESS_TOKEN: $(ORYX-SDK-STAGING-PRIVATE-SAS-TOKEN) - DOTNET_PRIVATE_STORAGE_ACCOUNT_ACCESS_TOKEN: $(DotnetPrivateStorageAccountAccessToken) + DOTNET_PRIVATE_STORAGE_ACCOUNT_ACCESS_TOKEN: ${{ parameters.dotnetPrivateStorageSasToken }} inputs: - scriptPath: ./build/buildPlatformBinaries.sh - args: ${{ parameters.platformName }} ${{ parameters.debianFlavor }} https://${{ parameters.destinationSdkStorageAccountName }}.blob.core.windows.net - -- task: CopyFiles@2 - displayName: 'Copy artifacts from source repo to agent artifacts folder' - inputs: - sourceFolder: '$(Build.SourcesDirectory)/artifacts' - contents: '**/*.*' - targetFolder: $(Build.ArtifactStagingDirectory) - overWrite: true - condition: true - -- task: PublishBuildArtifacts@1 - displayName: Publish build artifacts - inputs: - pathtoPublish: $(Build.ArtifactStagingDirectory) - condition: true + scriptPath: ${{ parameters.sourceFolder }}/build/buildPlatformBinaries.sh + args: ${{ parameters.platformName }} ${{ parameters.debianFlavor }} https://${{ parameters.storageAccountName }}.blob.core.windows.net diff --git a/vsts/scripts/publishFilesToAzureStorage.sh b/vsts/scripts/publishFilesToAzureStorage.sh index 9b9f6572d..ca71eeb95 100755 --- a/vsts/scripts/publishFilesToAzureStorage.sh +++ b/vsts/scripts/publishFilesToAzureStorage.sh @@ -8,12 +8,12 @@ set -e declare -r REPO_DIR=$( cd $( dirname "$0" ) && cd .. && cd .. && pwd ) source $REPO_DIR/platforms/__common.sh -commit=$(git rev-parse HEAD) +commit=$GIT_COMMIT storageAccountName="$1" uploadFiles() { local platform="$1" - local artifactsDir="$BUILD_ARTIFACTSTAGINGDIRECTORY/drop/platformSdks/$platform" + local artifactsDir="$ARTIFACTS_DIR/platformSdks/$platform" if [ ! -d "$artifactsDir" ]; then return fi @@ -47,7 +47,6 @@ uploadFiles() { --file "$fileToUpload" \ --container-name $platform \ --account-name $storageAccountName \ - --sas-token $sasToken \ --metadata \ Buildnumber="$BUILD_BUILDNUMBER" \ Commit="$commit" \ @@ -61,7 +60,6 @@ uploadFiles() { --file "$fileToUpload" \ --container-name $platform \ --account-name $storageAccountName \ - --sas-token $sasToken \ --metadata \ Buildnumber="$BUILD_BUILDNUMBER" \ Commit="$commit" \ @@ -73,28 +71,6 @@ uploadFiles() { } storageAccountUrl="https://$storageAccountName.blob.core.windows.net" -sasToken="" -set +x - -# case insensitive matching because both secrets and urls are case insensitive -shopt -s nocasematch -if [[ "$storageAccountUrl" == $SANDBOX_SDK_STORAGE_BASE_URL ]]; then - sasToken=$SANDBOX_STORAGE_SAS_TOKEN -elif [[ "$storageAccountUrl" == $DEV_SDK_STORAGE_BASE_URL ]]; then - sasToken=$DEV_STORAGE_SAS_TOKEN -elif [[ "$storageAccountUrl" == $PRIVATE_STAGING_SDK_STORAGE_BASE_URL ]]; then - sasToken=$ORYX_SDK_STORAGE_ACCOUNT_ACCESS_TOKEN -elif [[ "$storageAccountUrl" == $PRIVATE_SDK_STORAGE_BASE_URL ]]; then - sasToken=$PRIVATE_STORAGE_SAS_TOKEN -# check if the personal sas token has been found in the oryx key vault -elif [[ "$PERSONAL_STORAGE_SAS_TOKEN" != "\$($storageAccountName-PERSONAL-STORAGE-SAS-TOKEN)" ]]; then - sasToken=$PERSONAL_STORAGE_SAS_TOKEN -else - echo "Error: $storageAccountUrl is an invalid destination storage account url." - exit 1 -fi -shopt -u nocasematch -set -x platforms=("nodejs" "python" "dotnet" "php" "php-composer" "ruby" "java" "maven" "golang") for platform in "${platforms[@]}" diff --git a/vsts/scripts/publishSdksFromSourceToDestStorageAccount.sh b/vsts/scripts/publishSdksFromSourceToDestStorageAccount.sh new file mode 100644 index 000000000..f3e7b0bdf --- /dev/null +++ b/vsts/scripts/publishSdksFromSourceToDestStorageAccount.sh @@ -0,0 +1,153 @@ +#!/bin/bash +# -------------------------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT license. +# -------------------------------------------------------------------------------------------- + +declare -r REPO_DIR=$( cd $( dirname "$0" ) && cd .. && cd .. && pwd ) +source $REPO_DIR/platforms/__common.sh + +azCopyDir="/tmp/azcopy-tool" + +dryRun=$1 +if [ $dryRun != "True" ] && [ $dryRun != "False" ]; then + echo "Error: Dry run must be True or False. Was: '$dryRun'" + exit 1 +fi + +export AZCOPY_AUTO_LOGIN_TYPE=AZCLI +export AZCOPY_TENANT_ID=$tenantId + +function blobExistsInProd() { + local containerName="$1" + local blobName="$2" + local exitCode=1 + curl -I $DEST_SDK_STORAGE_BASE_URL/$containerName/$blobName 2> /tmp/curlError.txt 1> /tmp/curlOut.txt + grep "HTTP/1.1 200 OK" /tmp/curlOut.txt &> /dev/null + exitCode=$? + rm -f /tmp/curlOut.txt + rm -f /tmp/curlError.txt + if [ $exitCode -eq 0 ]; then + return 0 + else + return 1 + fi +} + +function copyBlob() { + local platformName="$1" + local blobName="$2" + local arg="" + + if shouldOverwriteSdk || shouldOverwritePlatformSdk $platformName || isDefaultVersionFile $blobName; then + echo + echo "Blob '$blobName' exists in Prod storage container '$platformName'. Overwriting it..." + arg=" --overwrite true" + fi + + if blobExistsInProd $platformName $blobName && [ -z "$arg" ]; then + echo + echo "Blob '$blobName' already exists in Prod storage container '$platformName'. Skipping copying it..." + else + echo + echo "Blob '$blobName' does not exist in Prod storage container '$platformName'. Copying it..." + if [ $dryRun == "False" ]; then + "$azCopyDir/azcopy" copy \ + "$SOURCE_SDK_STORAGE_BASE_URL/$platformName/$blobName" \ + "$DEST_SDK_STORAGE_BASE_URL/$platformName/$blobName" $arg + else + "$azCopyDir/azcopy" copy \ + "$SOURCE_SDK_STORAGE_BASE_URL/$platformName/$blobName" \ + "$DEST_SDK_STORAGE_BASE_URL/$platformName/$blobName" --dry-run $arg + fi + fi +} + +function copyPlatformBlobsToProd() { + local platformName="$1" + copyPlatformBlobsToProdForDebianFlavor "$platformName" "stretch" + copyPlatformBlobsToProdForDebianFlavor "$platformName" "buster" + copyPlatformBlobsToProdForDebianFlavor "$platformName" "bullseye" + copyPlatformBlobsToProdForDebianFlavor "$platformName" "bookworm" + copyPlatformBlobsToProdForDebianFlavor "$platformName" "focal-scm" +} + +function copyPlatformBlobsToProdForDebianFlavor() { + local platformName="$1" + local debianFlavor="$2" + local versionsFile="$REPO_DIR/platforms/$platformName/versions/$debianFlavor/versionsToBuild.txt" + local defaultFile="" + local binaryPrefix="" + + if [ "$platformName" == "php-composer" ]; then + versionsFile="$REPO_DIR/platforms/php/composer/versions/$debianFlavor/versionsToBuild.txt" + elif [ "$platformName" == "maven" ]; then + versionsFile="$REPO_DIR/platforms/java/maven/versions/$debianFlavor/versionsToBuild.txt" + fi + + if [ "$debianFlavor" == "stretch" ]; then + defaultFile="defaultVersion.txt" + copyBlob "$platformName" "$defaultFile" + binaryPrefix="$platformName" + else + binaryPrefix="$platformName-$debianFlavor" + fi + + # Function to copy platform blobs to production for a specific Debian flavor + # Dotnet, nodejs, php and python platforms are currently supporting bookworm. + # Allowed combinations: + # - platformName=dotnet and debianFlavor=bookworm + # - platformName=nodejs and debianFlavor=bookworm + # - platformName=php and debianFlavor=bookworm + # - platformName=python and debianFlavor=bookworm + # Not allowed combinations: + # - Any platformName other than dotnet, node js, python and php with debianFlavor=bookworm + if [ "$debianFlavor" == "bookworm" ] && \ + [ "$platformName" != "dotnet" ] && \ + [ "$platformName" != "nodejs" ] && \ + [ "$platformName" != "php" ] && \ + [ "$platformName" != "php-composer" ] && \ + [ "$platformName" != "python" ]; then + # Do not copy blobs + echo "Copying blobs for platformName=$platformName and debianFlavor=$debianFlavor is not supported yet." + else + defaultFile="defaultVersion.$debianFlavor.txt" + copyBlob "$platformName" "$defaultFile" + + # Here '3' is a file descriptor which is specifically used to read the versions file. + # This is used since 'azcopy' command seems to also be using the standard file descriptor for stdin '0' + # which causes some issues when trying to loop through the lines of the file. + while IFS= read -u 3 -r line || [[ -n $line ]] + do + # Ignore whitespace and comments + if [ -z "$line" ] || [[ $line = \#* ]] ; then + continue + fi + + IFS=',' read -ra LINE_INFO <<< "$line" + version=$(echo -e "${LINE_INFO[0]}" | sed -e 's/^[[:space:]]*//') + copyBlob "$platformName" "$binaryPrefix-$version.tar.gz" + done 3< "$versionsFile" + fi +} + +if [ ! -f "$azCopyDir/azcopy" ]; then + curl -SL https://aka.ms/downloadazcopy-v10-linux -o /tmp/azcopy_download.tar.gz + tar -xvf /tmp/azcopy_download.tar.gz -C /tmp + rm -rf /tmp/azcopy_download.tar.gz + mkdir -p $azCopyDir + cp /tmp/azcopy_linux_amd64_*/azcopy $azCopyDir + + echo "Version of azcopy tool being used:" + $azCopyDir/azcopy --version +fi + +copyPlatformBlobsToProd "dotnet" +copyPlatformBlobsToProd "python" +copyPlatformBlobsToProd "nodejs" +copyPlatformBlobsToProd "php" +copyPlatformBlobsToProd "php-composer" +copyPlatformBlobsToProd "ruby" +copyPlatformBlobsToProd "java" +copyPlatformBlobsToProd "maven" +copyPlatformBlobsToProd "golang"

    @Ki3Vc&th z4f`SNN3fs4-i7`A=L!0vtM1pZ-@*O_`!nosu)o7TfPDyu931j+D8Qi%hZ-EZaB$$z zhrs!j@=vT)MjRD;tJP9r#t z;WXv-ywe^|@c}-ZLO4C%3wtRzXW^WOa}&;0IGb=Tz}bOwAI<|f58*t9^Mcp^&O12! zaK6Dgg7X6|3S3ff$-|`pml|B^aB0A$2^SMC7F-;-^x-mt%Mva-xSW12AEw}%gKLr3 z5w9hi~8_%8U1&*$s!;Ff?}5pE^84dFJ1+XQYd+!k zBiuL<9&Qh~XW_2Fy$JUb+^cY}!My?ZCfsef_uxK(`x1gA1X&1j5ab~!L102)L(qLM zlMW#mK`@5Eg&;n11;GY_9WS2-7YObUgb+L+OhA~1Fau!@LLI^igbfJW5LyuSAsj(C zhH&=t1bv}Z!!3jd2u~26A@m@;K^Q_9L8L;YLsW*yfXIfZ3(*jw8AMBn#t^L_+CsF0 zXb+JGk2E}T@W{hMg+~z{mCreP^x!do#}FPaJm&CNz+(lEH9R)(*uvugk0U%T@VLPv zz(fuc1x)CesAHmmi54c>nCM`_!NeF7YfKz5aYiM9N)DAgDk>@(Dpgb(s2HfUc-2@L zpfW>ck4l8f1CvQiW-*!PrQ~D@lT}RCG1n!TOn=S}rVUKDFl}Pm#&i$ULrgC)z2p_{^d8e^Okds$-acj&%w#Z=#f*xX z9%lNOSz+dY84oje%mkQuU^cy1&vvth2c)dJpW44P~2eW<5PB80Y zc7fS7WhnOkNF|yN0^^sevbJi=6%eEs3uWOp_)cDi>iid1=T95 zHB=j@8mM+qwNV|Tx<+-2>Jil&sv#D1ER?WN#zKWR017S^j##*0;fjSD79uP>u$abT z35!jR^DK6-xWM88izh4wSPW51p_WFifLakX9kmK-b<_;h+NjM@TcEZ^?Tp$5H6OJA zbp`b#>M7LIsAo|xpk741gnAA2I_eG7+o)TpPf(wtzCwMC`X2QY>gTWX^b@J7d#J~c z7oz^aQW8sPEak9Nz)}TE4J8uzbMsk+((49+rKqs8}grrGk|jRvK7oW2J|cK8HJ3##otP zWsa2vR<>B#VdadK5GxO?7O`5!Y89(Btk$vGz-kAp7FKPncCqU4o=bIr)e%ZYZZP0oF!Xn_|ty+6rq&ti^YUu=aEA|AMMw zJ&ko0>jkVAv99snPQ8NlD%P7=Z()6m^$FJJSYKd$jrASY&se`={f_kqHWX~6v607y zij4v`%Gju5qk#}y@i#=cK*GErDMB_?b>@&%fNQ`=Xv^y z?cx2c0k((O9`Qz3dy4Hjwino5Vte)80Ne5AV*7|~AKO~$3(|QXMoNWogF#{bS~&zc|Wn=z`lw7F7_SlyV##$e}(-u_P5yI zVSkVPBlhpufAF5;AcKPf4m2DzanQm+8wVB+mN?ja=8M4@2R;sNIJn~=z+n=HX&h#8 zn8%@k!!`~(IJ9v%z~Kmo6CBQQxWM5ChX)+qag@PP9!DCEe(sfgF;#I?!BG`QbsQNu zGI3<%sEeZsj$9lqaJ0nH3P)=k?Qpcm(HTb<9L0|p;3&j#7RM@%3plRexQgRCjtv~Q zaJw(h*PIa8taBA>I>~z41nA0gvU7Rj)y2j}ir&pYMIKAOCz*z=od7M>oX5g&F8@ICw z&NevP;%twzBhJn^i_lG=tDu`gw~THT-6pynbi3&G(H*1f@^-KLb06r7s*3Ij-7C6x zbmIqj;5_r*4pwnqz$Q&g@TI|F0#1D;X=hl z5f@clSh(ooqK69y7ZY48ak0h44i|e|oNy81BEI7Tmswn@xXj~H!(|1R4O}*HY2ebv zWtTUjmor?haJj?f9+wAP2Dl7ymBdvFS6N);aHZm^jH?Q+s<>+5%EDC-S7ThcxLV?B zg{v*D&bYeZ>W-@iuCur<;9AFZ4c7*)+qmxHx{vD_u9vvp;ChGaGp@s*=jpG%@-ZUZ zByp3$O$#>`ZXDe7aWllt2sbWn=D1nmW{sN-Zg#lwaO2}9#7%_T6mHYFRdK8F*7~-C z+W~GzxSis5hT9Ep_qe^{*2nDwcS+o(ahJiJiaQ;5CEQhTSHqo&I|p}D+|6+3;%^ zvRvS3@a`;n@YCpL(9ff3FN-&BR+DZ!^5D@wUO+9&bmy-C105PvBj_dkXJ4yyx*=z`Kt3 z65h*rU*dg@_YK~Cyx;L2Vvxolk3j(g4Feqm1A{gO9SkfCrWnjISYWWlV28mGg9`?C z3<3<+7?v@tVpzklj$sQ!6T=RMT?~5|4lo>I=wi6SFvKvzD1}k(t@|1G~Q=&zQJ|#w!*izy|i7O?1N(7{&NJ*2DCq*Tt zKuVF61}RO>YF2urlt>wqG9hI}%7&CPDHl>AN-A&ZN|ut1_e@1ei;`p3vLttu+*9&I z$t$G_l&VsyPN@c^nv^m)k2z&iYD}pcrBk1~ri+x;-Wr%5rTdg#QhH74Ev0vq-c#D6 zj6#{rM;k+#0%eMnsZgdynHFU_Z`n+bGX0-t=8LGBaVg_dHbL18Wpk9(IPyB%p{zyO zK4piL-BNZ(*#l*doaLK+P%iP--J~g3q?|^%I^_(?nUw2L&ZeBllAL^k@;S=qDX&t# zPWcw)JCyHI-l6=M@=MBZDSx88M|qz(rann(iqs6LB~r_zR!FUr+9cH=wL_{+YLC=D zsUuQdQkSG|NZpdUC-q9IN9vu_fYb*S(o|5Xpi`klg*p{1D!5cwQ(;4eJrzzY4k{{C z%u!LLqDI9g6%8u3spwE~Ld7E$PgJ~7@#o(C7gLpr5ot-%(xhcb%aK+jO((5JTAj2u zX(nks(uSmsNt==8lC~mkPuhXBGif){?xcmJr%2aHuaI6N-5|Y9dYAMb=?>|A(x;@) zNS~9wBz;BthV(7zdzLZjKIs9K5>!&Cl%i6GN?9tEs8pd+ok~qAwW!pll1-%^l^iPd zsWhb0gi2E?EvU4l(wa(VDqT5My%ex6s`Q|8hRWHuK&nV(jml-#NR{hvy_8AiE|mvw z;nbAMGtNOTpIAOszEatz@{P)OD*ryieT9RUA5=+DMWITX)mD`PRjO3!P{pFk_^rHh z-wGV6_*6|$HAU4lRkKvhQME`_ovKx;)~MQ|YL~@X)hShHRCTGkr0SZg8>;T9dZ1c@ zY6{gdRLfE=_ttQgsaBy{m1;GrwW(%Ot;3PvHHT__stu?%qS};dF4g8#TTpFDwGGv_ zRNGT6e!w%;e5&24_Mm#6>MGSWs#mC9r+S;}9jaSY?@`^M`k3l2)fZG>QhiJH6V-22 zzf(P+`hyzTpJ(JN2)t3FhCz)MHTu*TP-9Gu88znASWsh2jSDq=YJ}8?sPUj?f|@C6 z=BSycW{H{=YSyUPqGpep4mAg?QETq0>AyFc$WX}0kWnF{Mn;{CCK)CfHW@=Q#$=qx zxRLRoR)SgzwbIneQcI&&iCSf9wWwuN%b`}ES_5j0sWqe4idq|LZK<`VmQU>jwUg9N zQ9DiT9JTY*E>K&ecA45WYS*dVq_#nAliC)wZEAO^-J|x1+7oI|sXeFmn%W0yAE|w& zwnuIM=h^upr?zj@4#+H!nIKakGeu^a%nX?-nME?2WSV3;WRA(4khvyvL*|yuJ((x! zDAdVNN288To#tDzXH%z39fvx7>J0zozy9m^89EE={rI3{&OC_sFmPS^ItOi*o zS$(pmWVvLm$l8&$C+k9%PgX#7g6u5W1+q(I*T`;=-6Xq3wn=t}Y@6&M*)G{@vNvRJ z$v%;NCi_CRPj*OlMBOBHGt|vew?JK;x+UtCsavD2LERR0ZR+-@>rl5(-Qmwu^I1Kj z?wGnW>Mp3eqVA5m2kIWFd!p`*x*_!v)Js!Oqn=K^2KAcMGpN_0oyn1f7$!bX1lKIKotG1UvbR)u1J_5h#W-AU9v6LQOfycP2{%)7KTlL5@9FrUGE4)b};7qwNC zHOx0K-%*!S=GRzoV8M%p5Ef!s$YUXmg$x$5SSVqkhJ_Xu+F0mep^t?D7KVE~?N4mQ z!U78`ENrl7#i9+1b}YKE=)qzDi$N@gu^7Q(35!WAX0e#VVjhbXEHz~T@~IxJ4G zIK`rZ#RV2OSh8Trg(V-B5?D%MDTAdfmU37sW2uUzI+og4>SJkyr7@NkSXyCegJlzz z%~-Zz*@0yzmc3Z^V>yK77?zV*PGPx<cFZOt0AmLu$sVX z8mq^~;{ME5tmd##=Rcwg=l`Z0E3D!gdAQb!<1V-Ntqo z+XHM5u|36(2|IS|c(CKcjvqS_>?E<1!A=f4W$d)D)5T5?I|J;Du`|Jrf}I6+me^Tg z*MMC!c5T>oU^j%_2zH~`jbk@~-6VEv*ll2UfZY*x$Jm`=caB{JyG!h@v8TtL0eeR5 znXqTUo*jEm?76V#!JZd;aqK0rm&0Bedll@}u-C#~AA3XWjj%Vt-W+=h_AS_VU_Xp~ zKlTII4`M$qmCPPB`=d1adF&UlU&VeM`)%xZu;0V}0Q+<7FR{PEfdvOv9C&dM!a)WH zIUH1Q(8Iw52U8p9Gn$2ceGq0FHt& z#D)_mPFy%~b$e zMsXU)nGUA~oR)D~!D$1hO`NuI+Q;b_rxTpYbPCRFIP>AmkFzk&qBu+8ERC}q&Z;=8 z;jD$THqN>@8{%w&vklHoI5*?migORned_Y_c?{=Soab>~zPS0!APaaF<9@ofM8oK{@*akawL8dn=!>u~MFwHw!7T>EhC$8`kPQCz2R zoyTq}P$&MEV@*OQf%mzD@c*>BnTylfgy?4;fNq$dI8zhAJ7FWSEg* zPDUFU-DLEVF+j!;8N+0Zk}*cc92whW>>T51e-V$dN5%mehh&_PQKnYNxF(a4OinUI z$P^`0j7%vqWyq8xQ;AGfGPTImBh#2n3YnH9C~sX$zdXgl^k|*ILP54ho2lFazw}xBS(T9Npj@K zktauy93^s8$x$Omog58vbjZ;o$ABCoa!kpgkYh=XH90oqw2;$B&M-L>rOA~cSC(9PauvwcB3GMS z9dh-^H6+)RTnf3C(pAWw)qVe-Vt6DLoSJSp;|$x|Uul{|Iww8*n2&xX7@ZOe+Cyk7G9 z$m=I>h`ecX2gzF_Z$sV9;+>IqPTnQ?^yIUU&p|#f`TXPylTT*eCSR9)bMl+XZ&kOx z_#NbTliy2zKluaXkB~n`{y6y)x6bMovOo0pqDio+upiY4X1-caIs~cjDODA=W7kAi&)4k$RKkPHF~uhopHf_*gqsq6N<=6TqeOxdDN5uiQK3YY5;aP+ zDbc6IkP;(Gj43gt#EcSiN^B^pqokgaMoO9~>8E6Xl3_|lDVd;Tijp}>7AaY#q|C=g zNrjS2O0FnnqLi6ZR!TW3<)M_9Qa(xrDHWnroKhJ|Whs@XRPh)=`-3x5HA;0T)umLQ zQUglODWy4Q2I|wNchiSqEi3lnqlh zLfJTF6O>I+HcQz8Ws8(8QMN(ZCS}`{?NfG0*%@UO%5Es9r<{>;7RuQv=b)UEaz4t% zDHotzka8i)#VD7cT#|Ar%4H~*rCg12ZOU~h*Q4Bka>q0L`_ot{r%-N5c|GNgls8k} zMtM8s9h7%c-a~mm<-?SZP(DWa1m#nd&r&`|`4Z*pllmLZuj$;#5jdDMh6ml`2%KQmICz9+mo38c=CWr8$)pDy^xkqq2d@W-42# zY^So9$^j}zshps4lFBJ6=c!zva*@hSDtD;dqw{M}6 z#YdG8Rl-zBQYA%|ELCz;DO06Kl@V3ORGCm^N|hy5cO%PGEmO5l)h1QjRP9rBNYx2d z=Tu!$bwf21)y!10Qq4;>zqX+;M71#0GE~b^tw6OB)hbkLQmsX`F4e~Bj>FoDYHOQ$gc?z5#Ho?hb~o0k(V<3{8Yf=%H8Kq{LnptYLsM(|Dh?-+{t7LOY%?-88)Ur^^Ni9FMQq;;& zD@!d0wc6C`QEN)ACAD`pI<;-o4rp5}L)4B_+fD5ZwTsklQ+q<~8MWusmf&mZ=&56( zj+r`6>bR-nrA~-CVd|u)lc7$QdNbiel5q<)C{QR>I2 zpQL`8`f=(Psb8Xgh59w>*Qwv8{*d}(>QAV@Aob#>6BB5EyUxH$11Al9GzicjNP{>H zk~B!sphSZ?4HO!hX=tILorX>tdTAJ;VVH(-8m4KOr(unTEgE*U?W6-5j%hfh;f#iB z8g6K$r;(9Hc6FQSC`zLwjmtEy)3`Jj0Oiwct&CE2j(9B6QKg~iki_k1bvpmg?ht>86u+pqZvkJ|s zH0#rBNV5serZk(;Y)-Qk&2==_)7(jOH_bgX_tHE>^CZnvG*8n!L-Rb%3pB6OyhZai z&AT-3(Y#OdIn5QCFGw+vVkE^*ijR~4DPd9)q$Ej6lae8&KuVRAIw@^ZI;0Fq8Iz)r zvY>^I7J6D3XelNLdz*F6*CAFhTBT`~p;ejIXoKh-w4Tv=O&c9;^t7?i#z7k= zZQQi+(I!BfAZ^05$rAY(vChT180(U(tFf-m zx-RP)tZT8Z&AK7$My#8%Zo_&b>rJe8u|CQAH0ukjuc%v}^)1%-SU+O@oDF6+*x2A? zgNqFwHu%^OWF*d~6kYq!S4S6;c*idFej|~Gh4B0SZ!-NehHp*0MHX4r+v_Bog zXkw$8jaD|=*cfJGl#MYq#@U!+W15XwHkR2KVB>_1O*VGf*kj{}jWVYVn{;e4vB}IP z3!7|gaKie#-;?DQf$hwDaWQVn+j|ys=K&NbvAX_)MZnjO(Ql<*feF+ zoJ|UwmTX$F*~n%qn{90NvN_1+D4XMKPOv%2<~*BAY_77o&E^rC=WJHkykLu-Ek?GO z**wSaqfGtC|OxPmxS+Zrt zmg7}x`}0@XYGA98t!B0c*&5O|p2yjm(6*mz8_%tEwl>(>(&jYSI%VsetqZoU*rsEf zo^2+!nYHcdR<_x-9qKM^t9pQKLAFKM7GqnAZE3a@*;Zm(nQaxe)!5cyTbFG;whh@f zX4`~qGj%V!O;LBZ+t%tfce{b@Mz&knZe_cJ?QU(?yI0-yZjWi(-&1T)vpvW5Jlo6a zK6rbL?RB9PDtj!^4gMJEF&E*^LpgBhHR2 zJ96wOv7@YRu6NYf(PT%L9Rqeu*fC>=!j1(ymh4!uW3wy9X=bN|omO_**y&`ai=A$E zdf4exx8SRL@uTdFX}j}N>`b#WtL@Iuv$M#~vbJ}>#?BTyJM8SSbI#6%wo_lH?$meL z*yU!IpIsq#h1r$TcJOD|l~s54yGq&?|0=uc>}s%U$gUB)ChVHB+p3=4;kL8e$8JBn z1MCi~oBrJ~b|=`KVRwn$Wp-EDU1xWL-EDSvwSxir>>jdv#O}#4g7#N6tM~P;*u7zo zjy-zz7}#TDkApo<_PE*OWlw-TVfMt>lVneZJ$d#N)l&vM753EF(`3(xJ!AGv*rTwg z&R#uxP3$#m#}HWAYu_Q%8)R>sy(#Tzf-HLr?5(i3%HBD9r|Mw^UWL62_O95cXP<$6 zCidCbXJ?iab&^~g(EADY&dG+sEwm`jygH&oUH)11t3GRw(2C%c^Nb5h~d@s`=+gH}^U zPMJAn=Tw4INlv9XmFHA}Q$?}(oZfIo#~C|k!kme4Cd!#OXA+#ra3;%{0%uyB>2RjcnE_|U zoSATD#+f;16wWL;v*yf(vwF^&IBVvtm9uuvIymd%tedkQ&iXj(=WK|xQO?FV8|Q4A zvl-6jIGf~bp0g#+b~)SU?1-~d&dxZiaL&p(2j}9Pb92taxe(_foJ(;o!?_&iikv$> z-C=*!D(9M<>u|2ixgO^RoEvg(%(*h>)|@wS-pY9g=lz@ya6ZWSh;}YVobw6J7dT(! ze3|nV&Nn#U;zE-PZ7y`U(Bs003sWx4xS()h!G#SM4O}#H(Z)p=7xP>!a#w9$z;?){D+*UuT-k8d$W=R6gIo=9HO|!pS5sWgaJ9~7)e%?6T%B`u z#nm;}3|upE&BQe)*IZolam~-Q2-h-P%Wx5%`i73+>CNFsh+6P%yF~C%`!Ku+^lo6#mxaXhuj=A`x18K^am&pu54U{W3b1-%NSs?qZl$=D<5q=RO>VWhHRRTa zTVrlbxi#mO!mSmzZQOQp+r{lLw;NP-7HyhI<9>6}ea0wXoOc z-k5t6?oGM3;=Z2yM(&%qZ|1(8`ws4VxbNk@kNZLHhqxc%evJD`?x(q*;eM9;Mef(R z-{5|V`%UiGxZmM^kNX4ekGVhP{(^@U9u9ao<>8!1P97O}6yc$DT*hDTi< z^>{Sk(U31L-6Dwv`tgLug z@v;(OCB{mUl?*E-R%)!YSn06RWu?c;kd+ZDV_sNzVdI697hzsxc~Rm;l@~2uw0Y6t zMUNMKUJQ6~B8PT^MZB2tV#7-VFO9sk^U}*pA20p94Dd3<%Lp%{yo~cQ!OJ8sv%Da)B{5`mOYWF-uim|J{p!6NH|6i{)qA(DUwxqc?q7Xy z_vY0H_pV>Paa~s8#*OQ@)!^>c`!}yYkim^RYH(i$H*d<|)(sil)`Ht=pu*jeA8yGC z+`p|p-M({M4P*+nBKL3KmvMLQNVq$)jQe*U$fvv4W!$|Rw`6ehx*Djjvhe%&)a>uw zx+jC%>WACv2Z@UN_wJ}4?y7NjRk(X9$bB{LzI?i`=6CcK^OwgZpX??yE)K zSBrdb?}2QrEa<_ldos8qGktL9zS?-1LSjJ1-Ie%!aQBY-q+;amJuOhb-oLIQNX3#Q zkql(Adk=1@fu!V(2iNav;R7|4jZ(vVYN*os#)I3pwNQ(Ztx!V^UN%MzwXd>rH*Tu* zmEnV%GQ4$T7pn2MB%NfaroDOl)?GDJbCaxbM-6Y^Qp5Xd{QcW%s{40TcrE8!HzmKw zP!drM@2jEYC>h?}h4<7@rTwj2YU#Ibt96zbQseL6dZ31Cxwr4CExLX0x=eNZ{&h7* z#q^EaS}AvK+?VlpRC3?AbLYOw-P-frdunYZiDjPmRIZhw+7?M*nd;u%n=;kC2M=V< zGE22D+*DhwahuFhE#>|#?O7%K4N2P@T6kLxZ)!1W4)^ch)?#j}kdlqAN(4))Nz|$^ z8ntdbkRPtzzOJ&vod+uC-g$8Amf9)!nbGQ2OjQif_TyY=9n`uspr= zj4bb##J$Rswbbq3nP6)vC!rroW+z70FXFxTgx8TdL4e<-<)C?xy-d z<*56&WIvU`4K>hSWd^q%sBsTe2_;c01NDO{5F}C5Kz+KQ1+t*qH&xN4il5uJ)Ysd0 z_VVlYef3FAc1IFX$}gGK1GO5GA+A2St_8B25ZymdnhZ)>3{E^gh{!n<0$+IeND#i*TE?Xg;@iX+K| zGQ4~LrWW4SLRI+OeW1lWQ1iTZV;8Dl@2QEvTU;ptKwwsJY#gszDP(s*t&* zvWyf*no!b2mWo+5yrYGhXu6?(y`zeno0 zO%Y2fsNoGYRMqq?m1AW1K#P|+xg`;HLkrdTJ8Cz&b?2t~^^V$aZ{3mjl(Ix}+%4HT zZm6Nev*c)1(ciy*OM8|zQNuf0cvlOxulKZ=ds>VXO}8|5Q^N;psFo$e+gf->3nk=( zn`%A})D9tAbp87Epa1rv$#d`eKiTB@hktnQx-3XyDyf!Z0EE8{*$v4aFo2CA>A^F;n`p40mmF^#FZgA$&3WXo9678<4#Sbdcw}oF z+4cvH+<3HukyWg{*%Xeffg@|^$fi58?I#LueD+WS$Q?P#N3Ot;&2VJ19@+Cp_P~+7 zab#~E*%C*#)sZcIWE&sZv>7@y3xZccjbzp*xg0ky{<(_j<~s7!+G=mjz{#TF%Q&4uk|wK{*G&I?YPEp%15^} z!n`)-WU76Pmg@iGm%MjZ{#%rwyZBGF`2H^b|7$#szpdr@Uwqo&{(sT`m&i%^vTv(j zdfJ!&pZ~v1-n)8l_dzT4zpQ0e`v|Sfqmb?>WH<`BjzYepQ0yoaItrzZLan1v=_oWh z3N4R9`lFEXDC9i~1&>0>qfqoHR6Gg|k3!9((BdfUJPPHGLfxZK?I<)o3T=);>7!8Z zC{#WQ&5pwRQNw#$eUJRI#ZrR4cVx~Ts%7D+!?=RM6i2)wZrCb*);l>l zAh(xGF5%6K$V9YyV%3LO4w6I2nV>g=;Sff3^d~WC!@7raBXagBpQL(@oo$#5Fw(@N zgR5pRRH&t=iGw2psCa~@EiC&*0S`1*5~+a5^+eeuIwP@|fUX9zO5PC+Hn0q#!Gop{ zn&W51II=@{Fg(D}tT@ka3l21{DKLx>#^i&`J3y)d%dUa$^SL7FTMNjEhVWvKvZz*ya%qqexhV&maONQ} zhuji!Gw3YPJ-~v3^(Iwh69P1D($dJrHb;t_2ywbD+7&SvLV3k`H|IUzNn$Gpwf#ZV z4>ewb`UVOU?zv%=750IMq(R>UXA4FPm|0=rCx4PkK3bW!vk>>@!aIRd5^4%(Opt2` za|)YA3JlnqVvkG2C3n>zS0I;}e0?00h0R7zGX^W$`FguH3QJCO1H$GI&X{mk#dIMe z2_f^TRz$}oIx*2riupjy=U^y;DGTNzSk~Z8Lbw1~Kjec@RG_tnb`bheSQcO%g_Rit zJq*P#S;UkRn;Y!pv6shb9hVc_^vIAVdxbn1stl>=qCt}lCieR|66A;srC2C)HprzK z*<#z-O!%5&FcVW3dg>T=VQMJ`b=)**B)hqubAHZ;I3L?C_1mRKxcefK67ibIDxz!^ zExYK-KH?KImzb}`#s%IEq!froAzFY`7K%FrCVC#ZI2f-G!6m;Y; z;>WTT*LBJ+sIjDW4?HdMIyjRPKD+Q4MWhM&5U6XtdYG$1ddv&AaF0Z%K&Ax6eXO%= zXR+f&>+!xk~aEF8|FWej9ZHh=s6pUh+7t5(wIY8G1y$|$laAhGJhq@DndUP7l z*~YBYJ2NtwNit{H!^SCl^PJsqIm-3KcF_~owCJ@Vp@(u?^mULNKzWQFJLG*h&);_KQ_PtWBUFgLwkxDp=~^8GuiLa0}vH z$Qxi5#Bc>`D;zFx?7~SL=T2NT$>kxpgOYBl*{EKmc7+xz&Lw!_CC7|59`4rm4cX~9 zhZSsD2pD0b<3t?tdSUQ`6kmM>Rw1lQ6U9e)9o34EvTYX=p_>a`Md-`IycD*Xuop$7 zDpFpNGmEB6EEKQ|z&Zox5ZnVOrJzy8xsc_u4oqL2%ni(bG zUy7t6s(#TfiD_RbO|h(kZ3ba8WV$eqpwov#2NgzS$dfTo-X6t0)UeXD#p& zGPqSjTP3hv${uPHe%XK5qSh5_mssb)kcC1O8Xoi~u%M?#h8iVmPuU`?k>Rd=tCY5@ z<#yc_y139qgxN04E#b%t$6Pqq!jll*qVVmz^Jf|_37>}+KnSv;eD zX<1CA=$;CR4aF#wgixkp83TO)%r0<5!5ITj6+#P$86a+ijCC}|80Fk!`f3u_x3=5S=jQ4Gf!ob*W-CY_NCT{85^93qRCYz=Y;C@;HJo?1y7 z6ll0)ql3+3w)Zi&Vds(~C62rI4bgasb7ro@xf$cpLP+7`XbSIC_-vvW2ImwuIqElP zm1Siv%uZoj2){!lS6J7vdCKD)F9PT`!O~7~8SnA-96|5N0;i zuh?ouhYoXL%vG@5hKL78J@TfgsHdf!6G>q&iBt{JK3p|ukQbJbNEC2xMa4jgFm;SHOtN{#B_BjukZ3~3xm`%RF0@_BI&Xwc5#E{b4n$Pi zcu7%gimFpo?V`F7ZJ+47#mpdPO|glBE)6a#gu0@gf=Cx4D~Q%0lZN(wq3PjH$F&#G z^P<~~Wjj{&IGo`qj-w_Sq{cLmbx4&6)iYGDQ(fAnE^2mYXr*C_lP)ewZs~3nX>-b+ z=oV(5Xh%g?0kaKU(w;OxD-R1N3>IixV_=2R5Ek`VQb^|_-H@ye3WR8#fxeID8?p3K zTe5T$n+h$YQg(B)xt$q>w=c3&QR<7PU35xdu)|#X1s04*)3+fySqkZ}n-ls0WJlyk zi+-NM4xD93TAP-*=$XJ>BdMt)DKvMmw8l}CbY_ws(89s`4oPujXb4?aI2F-TARR>g z5^ZBPyVz=DSCgD&(KU#rq}_ZwTL^DNbZlUELaGlP2RiHM&0(!W<|a*wYz}ZGB1{3{ zjS7E5bT{C!L2Ztc7E3-)O1b0_{=I7We8)?jsOa^@G_&1wz@!J~8b$-G>agm>u>t39 z+yuzlCR>&QQb$;*JfMz`<|A5mS=VQ?lg%woTG*1>E_B&|PY_W3ABCHi*OM_hp2|pyIX(R>g z1g8O94InwANSC5hYR-hCF1&G39ty=P*3#4ovr~$`k}yn#Nm3^*Tsh&k3U5mUYa(nB zp}vSkMY$#_QgJLrXDoUa(esL)U-V=VCZS08Cnr`tuy4R&0%sCDE^tpFCPkSGVr_^| zAiah{0cu&OjbX5ai4A6w!D47yqN#%BDn_lC(qlf2B|VnQSnXjmhb=!2syLdHAwu2= z1)LPNQ$9__A=R=}TT(ql^&v@C9A?;3Vta+%Yxc!Bk>ZTB$sOC7Z9B_s=TTva3VTmv zJt8*}MVDw5#B2seGX&R=&OA&YF-($Uj%^`OA*d?**MSq5yCNZ)Ksffcp$P{Q&<75)t9Z1`u z6eq8lb5Ty}sJI4c^7$3foo#0k)U`02hFDivO~N)2&Vr~0#aa(KY0^kHc?01Q#Ig_{ zL2&@N2(*hZGoyWgp)4koI9QWDBGm0VD=KfOk)uYCnoicG*%IKi{67v6JJvj8vT$M{ zW^FJ^za{~ZGQ>iV@nKd{){T8P&emjd(4a-*5>4|o&tjo2Y*ui_!BYmm0UR-^wXtEu zu8tbA%QtX5A)AZR_U$4r%r@aR3U^L)ilS!_y@;5m!Bzpg6#_lT1tB+rp&iC%7)2o) zgq4(s9yCk6;KaK0G21xZUA^^SH!6>F2d-;mR>+nl+ngd5s!QSTq3M|QGuBVp(PoGA zH;pVED7#xkq){q0C(s$kh!>?EFL|&W z!Dq@?YxN#_%TzL-fv+6=lJ zn4Mr7L2?7b9xO6s^pJT&&JY!xG?=kY$GQ$D9K1+!H@RIDg|{b4Rcy7`;^w@Ir*l}O zQCAi2pa`2p#|-uuI5OZ2!k_?~F8T^oi?VM98$C7G@;w)Al-_L7D_s)5oUK%B#WYG70We5q{AD5h7LMo3`zZB6}l2;%Ocei z%OvQ_5Lcj|!{`WW30!r^I-*pJ_0qH+V%Lu06gKDB_EXTbZ^&LQ`LJ5YMu1!s(ad97 zx1F`Oi-G9G#U=-i6~va1?ZdD}@h0V^_q1TMhn+*N`k)p?T?JhYa#qP7r9pQ)(+jiI zk4_PBitbp!zWRJspk@VN@1{6qGzrbMAr46j4YaqMfRJ2++YN4$md=9o2c{186 z?d{4V^eLeq3%ij98R55yTuF2iVwM(4SSW3=knU9$4AQq6gG&Lg4+>rA>#$(OiU(^> zoaV?bg@A#Y6`GrPKi&0UH}AuS8JpT{jq%b0Ln#KdiS`;`hxof^%ra_uUYpM8poLmUA zNBDdqHx~J*sI){sC)NRoL?NAmSsvpH@@8q+W?hJlD|WjvSH_$o91WpVL@F!FBhUqe z{NJ1qme#%@yDhETJgXjjV7C z=3SU1QQt+YO{{_#jbV9;Z9BF@*bd+@g5$oh^~hhOaGjzhlB%a=qP~S@Ue*~|=Vf1< z;}g!cxz^)oOc>q585Ta5$Vsi?0ZSDE85m_SGsI?@j3e@ySRZ7ESqyV5HLPnR)={w@ z!X$-2ggU)R3;R5$btim2y=NrIF}6csLOXg!kG!fQ{j$6 zIY)~uCyUTeZxxs5EydDDo4RlrXy_+{o#Jz`*g&+roezb1clh~(-F%;@$R=+%+u1G_ zqT&!6H#OX_$z!F5<$~zSe%eP@6D@r)ABoKv+zSXK&}zg%Y&$oK#d14$ifl^A?rEsQ z#)u;~8CPT)l4V2d0ac=uD2eF^91aMysbYon6ov&DtsupsVELeQYzkH zU7XSztV+38C0~8J>RiftP-Yhs=!gA2oc4CjQo$@T&$E{rQ|iE^{CT}n^92aXiBy&Ng? zurA_?$j2#J;>2>h90^-VxE;dl7T%i=$cOPYwIubWz;8e;4!tQX4Hzt7xkmXK)x*@644eh87o%pZ2FMv@SB;$m3Zy96 z=3ZL_^WMlPPQ}mb`cZVoG3L#y&}3UVW|n}St}{fMZi9R z@O0mh9WO328S zSQ9-xl!IKTkzb*3bi4ElyR=5?Vs3_%8!KKidkiUp=)v5bOU>ZaLt;YE9$I{{&{ z2;V})N1`wUO9|{9G$lk?x~O&>W^k0`WDg=%(r31__;xiGW+|Cq1xD zZf3$|7JiG!^+nk(I%zTNiD6fa>Owlpjy|}n5R$ga98$ZB;U3)G`EkQA4D)E5V{U-6 zCK)s27?RIL!4{e7K~k<7D(sXUVa3BCk6YWhcdO)u!7c0&k#>lRr1DB^Vqy~q z+XfQS3`j!O2gQJ}1aKt#Z-Xo~YUxM{;lYOOYmNl=KO-Ml|%$){g*W3?4UW)O`b|Y<38#p9pnlNb6MlzdpY1^!9wlgc3rL@t( zvPmJSHHMICaN8`VLzD`1&=Oq>rBX0=P|%OH5SeVE632lXdVWmhgflKm1vKT+p2cjE zQ&k@4q2v_xji|+hr7V1I;g^P-2a{RaNH-_O!;z>q(4K~cS(x2WwBuxh(-x--tSI20 zK`l=%gQ%E9I}6<;x{{b2;AB9$CK6H)2z$XW z!I6_AI^oi9=UHKyh*An|3h5?n^@wE|vjyQXiPaoOCW^GEHYCN(=?G+p6zQ-(2qrt2 zY%rK(e0M3_gWVbtYPM-P6QS;Q4I5otJ4mM^zny}1s_3bercZz0{W7FIP^h8Lf&n8&3sm${G0#>PCkrf1l(iE*R%|-S?*UH^!)4)+ z?z0}06#Art5XXEI2LVo4u$khu6dDsScOYt}cxtOywn|4B6Wf_Igj}NAfk+$*dYCNH zmBqLLGi|J;a9AaKmzn|AFWKtl_?UAs;Yi}tFLX`ei9tr1d``6b&^IJ&jg}2g6uBQ| zC5!%?$jc1lIO=jfvt5+7%gJ`_6qc!Q^uK&?FDo$vD+q{p7d)XbRnT@2%UU2Z-V_6v6!dMhW z$+~l491D|OnDoMA5GGmeurP&$)WxQ}Fe$<`6{e*yEre+!%sOF~4vtHhL&99Z=1iFD z!rTz%jx&D`7PYt6f-=!kVLaSXk@A+TJ&0??&~6bu6rFVKWJvQ`kbn<`Fj8%^Skj5w@YQ z&4pbWAtqsW3cE|#Gr}Gc_J**JguO28Lt)R z!Y4&vTKGL8;1&L{2zZ1)EBt-op9+6Z1Omdp5CNU=Pei~Z0zMJ2h@e#j3L-EQfwBm+ zM9?IHHWAp5*6x-Mi9k~X4I)qyfwc%MMKC6UWf821kXM94BDfO4jtELKRl4K_5t@sz zPK1jh>=L1l2&Y8YEW!~HjtYsi&`^ZaA`%x;6$ZK@;t-Ln2rooIDk3!zO^B#jM6)7l648{1mP9lpVj&ToidaNM*CM(Sv80I3McgCeKD1^ybDZ5D7M9L{rZjlO#R7|8~-K-*&5~+$v zO+{)Z(jJjoh_p_my&_!~S)It(L^?0h8`7x{w7J4L<+U7g4WL~bSWb5Sshf()hY+7tyv6f>f* z5QUj2bVSiCia}BIi(*t1IqTTiF!-aPgKn~T0)^ev+A5&fX(`$XR>+I`V)iGF80FNpp`NI!Al5(B>&ghVAN22C+oh`~e* zmSQj!L$esH#n38-aUuQj;Yth@F>H&8OAH%gN{W$Rj6z~m5Tk?` z#lGok`oJQa!BjNCKf)i*jq76q}$ zi$zT=>SECni@sP4#iAz`Be9r?#ab+lVrdtvv{`R8?g1!WL1L#|zZ-PD!20a+uV61|{2!;e0 zOkhZYAp(Xd7y@9B@lG)2!7u}34vayN#>1uuh7}ksU>Jij2GR*Kg~4P2;{=RTFzLWJ z0;2*ZBbf4FT!66;CJEyKvlUEhFx9|R1+xQ88!#=w)B@88Oe-)Oz-$8Z5X@6B%WUId zPJp=y<`I~?U@n8X59TbG(_oe^_82U2utdOO1xpJoA+RLC;sA>uEKRUjtbVur9&62Ad9SHn7>j<_4P!Y$32E zcO=*?9|BtjYI2uC0shOisLF$iZMoQCiK z!cr6)AY!DB10qR?WFgXo$P}VRh*}`3ho}jnE{FyonuKT^qB)4>A=-!Z0Adb^Nw5W^ zhY%Y>Yyzw6tYn8LZJfUCMZUsScFm;igPIDpxA|y zbOReuNnU@*K)jD5s!2gK`tfAtO#-x`7J_OMY7VFcps9yi5o$rGo1o@``T%MZsL!Bog?a(% zai~|IZiCtkY6WQcpy7r_4jLwC$k*M0t`Bz0hoBLqSQHuyXd0nufW{0OLuj<1nSrJs znptQxpqYTC3>VNcQ!D~a1zG`6k2>i?D+{d|w5FI$L2J&%4z#V%HbUDDZ6CDb&<;U6 z3GFPj^B_%~_8i(9=;)whf{qb7Zs^3I6NXL(Iwj~dpwom-7divz^r16^&J;RJ=vtub zgl-VJS?IQ)+l1~Ay8E$(-SQz;*3h#-F9^L5^pemkL9Yn?4D`d$FF?Nm0|N})Fi5~a z4}&E1*U+y)e+YvB416#&!LSd*APiP8jKa_i!!!&!FzCZz4Fd&+Nf>rv7>8j4Mp=^l zJet6$38NK^W-yAwXbhtvi~=xn!MF&MAdE{ePQZ8$<2Xz_FbTt^1QRn%=P(Py%mI@z zOsz1jz+?tf3rt%u&A`+J(;7?zFqM!BOye*u!88oh2249JYr|ZI^8Yx@2QbgVYz?y_ z%$qQ4!h8aAH_WmyH^NMTxd&z?SZrXHhS>}h11JqpVz97-GKEDDlocplSeQT=z#;^T zFeqM7%CL}-Sy<^|=|{Z_7A;uJV6lef1{MQY_F>V5rA*?|NN~7cKD3koL0C*-ZGn{n zs~N2Iu-3t<3#%k-hOlbG+5oF1tYWbCz}gQR`C5VX5Y|Ol=V4uf^&B=9ST|skg^k2m z3pOFx#9-5hO$Rnf)Y(zzgpGnaKkD=-4VcXubuvBys}btbsEeU4i@F}_Wc&d2vI#{r z#L*ByLl=#GG_=q#L&Fda9W-Xq=tN_B-w=(L&=^OP9gQnArO*^da~aKHwAj#GL307k zE;L8b+(L^NtqZi6&?3Lq(9%L{6fJYKtkD`ks~xQ&w0h8*L#zB$Me7)?($}7&b%QoH z+I(nBqOFFuHriTf>!EFcwguXjXxpG&hjt6vooJ7teT4QkIt=L0qr-}h06HS*D4?T? zjyXC8=rp3!f=&}UJ?IRevw+SVI`in9qjM^BUUWs#>oT@iGp(KSL>7hQF9mC?0E zw+G!`Uc}HHMRx<;HFWpTJwx{x-3xRp=(V9|h+YqR7Us*vH@ugHsHdFl5A#8AC1%c`)S0P#8l&3}rA>!B7iBOAMPZ z?8dMI!*&cOF>Jwb0>gC-moQw#a1+CA3`=`pf)NWwtQa0)#DNhzMhqAUVI+Z(G)Br8 zDPmN{3^8iN$QUCljLa~y#7G~bZj3rG8o+2AqY^BG(KSXl`-bdzDZ0d%9-}>sDi|GL zbciu0#@raQV=RlYD#mgc%VVs7u@c5c80%qdfpIIwZ5X#;JcaQX#`732V7!L$I>s9q zuVTD~@gBwp7@uH#hVdmPbeJ$=!iEVaCOnvkU?PZ#I3^O9=wV`ni5Vv5m{2fjz@!_K z5ljX!nZaZplVwa+G1;J47n2K2*)V0rlnGOHOqDQ|!BiPj6-*^DHO15n(^gC;FkQoR z6VpjdmodG;^cvH1%y=;4#Ec&^Im~1*)5FXJGctaInI&dcm|0-fidi>iqnJ%#Hig+D zW;>W&V$OxR0G2A4%VDX3c{3I~m>*%mg83yD5?F9yp@@Ys78+RSV$qL93l^PN3}Io7 zg(VivSae`~36lEzAvS5B-nu+qWG5G!-6C|I>)HH_6NR$ExjW3`Ai8`j)di(xH}wH(&6 zSkYmvkF^EX)>xZj-H7!l*6mo&W4(a&Ifb2bYs(t%`i5D*oapv>t`|Ea>{_s!#%>*Ze(Z&?TfuG_ z`#J3CuxG_y5W7R{PO%roo*TOp>=m(B#a;t@S?tO9CiYg?cVXX%{SfxO*w7p$>;;92#&K z!(jl2DI6BKwZLH)hXWjra5%xCf}`Dx`oMv#k!07;|d7PPX=D=AIXYx6Kvp&wUIJ4u-iL(OEEjX{> zY=N^e&gM8b;%vHa$c~q01Dq*1ui`w7^9ar}IFI8zfpZDmzeN(z@VTq?LSn;2YPhQ7s*0-_t_`@h;M$058?LRmcHugN>kP`?u}lsN_ z+?a7=!HokqVcdjplgCX3H+9?$aU%`U6zMFaGm*|ox&Y~7q>GbIM&?OZBi)8{3(`AC zZy|kv^fA&WNS`Hrf%G-f4@o~DeUJ1L($7i1BK?L8CNfyaU?xM73_&s^$j}xR9~oL? zOp>uo#yA<%WHga6LB}2ecu}`KXnd)RJlBrAP-8B8-Zut-=oMg6;X-(!Jnf+v3 zlDSXj4w=hju8?^|79&|~WO0y1M-~HFa%2gUr9_q@nX_aGlBG_T9$Cg@S(9Z(mK9lb zWR;K#S?y$XlhsewI9X$4wUISJ)+||bWUZ1_0xZb7CYzpY2C|vSW+j`0Y;Lmo$QB`6 zoor3A&B!(+yN>K}vd74tCVPVHS+bY*4bgas>;-u_r{r%^piTY`1q|e`lixzV7Wup6pObG)K?nH@6qr+BLxC&>;}mpL zU_rqI1$`9MQ_w=e2nF&K%2RMd!4ZX`6pB%(MWHN(!W0ToP!^}7aFN0>3h%Z$9`2S8 zQCLqg1BIOw4pT%&krG906!BBUL6I7T+Y|{=BuUW*MXVG_QFuz>HAQ?BwNpf)sFxyh ziptk8Mbi{5Q#3`_lgc4m!nkZ?ZM30ho%1MAGB}0_VP_j&+mK}r`X-JqPAG6l+HDPy2am$FXEtSGCatdEls$}}l!qRf!8R?1o^v!JYm z8BjJyIWOhhlwDJHLfI+hJd_Pk&QG}r<-(LJP%cloKIJBqn^Uezxdr7-ls8a5K>0Z3 zGn6k-zDWf=<=0e@uVc!us35}u6%15}QXxQv4i(~5C{V#og%TBdRM=3VPemgYO;ij~ zF-FBW71LClQ^`QZB^5_htWj}5B@>lgRB})$NM$3HGE^#4sX?VCmGxAXUl&xGP-#YG z36`dEj>@}R6c2aHhp1eka*4`qDmSRyrSgc%Q!1~iVx)?VDh{dysS=|~o+@>!RH)LT zN|!1Fswh-hQDs9_9aR%lO;I&X)hbm-RGm@HNVN#nd{lE$ElIUB)yh;B-H~{ zw@}?i^(EEYRButeKn*iB4Ad}DqehK9HT={lQ=>wS1T~7(G*Qz{O#?L()NE37NX_cL zAv<1bmZ;gMR*0H8Y8I$DrDlejNou*MWu=x(m8VvOT0Uw;sg7W^we8f7P&-NO1ht#g&QiNY?Jl)P)Lv0XM;#Y+Jk$wLCrF(Lb>h@XP*0)0 zo_ZVV+oW8Ucpni+`GwLfeFwnqG12YXAG;q_vLxT|Ymo$ihElqAq_e-n9$HhLp=>kG%V6ELBkad6&fyRWTKIoMh+TTY2>Amn?^ofd1w@*p?nU} zC_>{ZjoUQt(|AY|Jx$^?HPB>D6NRQ;nkHx(p{a|eNt!xo+MsEZrdgU6X}YADjb?V5 zZfKUKS%zjlnq_HjpxKyaJ(`VZzPpzEaKC(LZl$@M<}RB1Xl|oNokSNqlJZ(J}GNjm}z07g_9OZ zS`=xqq{V_3O7b>VmSI{3Xc?zvkd`T0W@(wErHhsoS`KNspyixaW?C6&xu%ti zR(4uhNTO>MrB!O*kR30r3bZQHszmD)t+TW)(z;FSF0H4uNzkTDn*wbbwCS?JN}Cbu z%(R))Mq!%FY^vEI-60P8%gx3g}|`UvY| ztk1B%#`-SnC!CNE12z~~zhZ-)4LUYB*kEUamkl*G$fEmf7_+g!#uC_VY)rDrz@`A3 z;%pkQsmEpqn8%Wz3clTNJkH*s5o% zovlu``q&y_YnH8fwkFxSWb2r%6Sig8x?x+0Z7sHi+2&_^hV4dx>Rz95Q~x zb|>3?>`1XA!j2$2l59_~)60%IJErWcv&+j)h2180?QRM@+$|qsSDal1b|u(VWS7FO zF}oJ*PO&@3?j^fB?2fRf$DS5@+UyCjXU^UTd!y{FvA4|L7<-NEO|#d>UK@K$>`SmO z#J(W=jO??r&&R$A`K0B*c*jM`9d_?;ElktBmA0QsYRKBW;c>IkMo$oFi+FI$$&5 zsF9;?j=DG+=4gnc5ss!fn&)VlqXmxTIacFXhhtri8#wObxR>Kjj!!wB;&_JRX^v+( zUg7wF<1J3OIT7PTm=jS>G&oV^M4uA_PV_i2;)G>el7>N?Ba5mD^ae*xKidyn=2izEV-KHYLcsIuEx0P z=W3g)9j^AdI^gPpt23_Yx#s1XnX3h^#ktnx+LY^Nt{b?nPL?}4?$o$5;;xRn4(`mkYvHb!yMFElxLf3Ifx9K{ zhPa#Op2FP$cl+G!aWBlh5clld3v$oJJq!12+zW8e!95fAI^0Wgugtv?_hiBz_pRI; za9@J0xu4*Ej{8;aPq;thVU>q19`<--=aG$vO&%F}WZ_YRM-`rQc~s<4md7R@g?SX< zv7Sd89<6z7;ql(~-XDK7PV+d!;}VbkJofQ8&f@`3>^!mZq{-thj}@LIcv9j?ohJjH zns}<`$$}>{o+v!E@YKsw15e{T4f1rx(+W@9Jniyy#j^y@l03`se9ZGX&sVJIS+TL= zWW~iwfR!*Sepb?~lv$~>GGnE|N}JPpUbuMS;f0qMK3;@)k>W*$7inJPcv0p>jTha0 zLw3Bh81Z7lizzSWyjbvJ$%_>)t-Q2hV#>=fFY~-?@p8>82d@IW3h}DQt1Pc_yvp;c z!mBE;TD)rTYRantuO_?>^E$=roXB;dYGr*K{Uu>dp=B=;ck|;Y)qN?Y-mc=XQ82aL z*wL_nSRaZucFrNW5G(U`R@*M}+r@Ib)NPl>?Q*_dMYij}cJ0`%6WeuYyKxJ>PUs5T z%|_@lLT?fJp3obFAta0=VT=j0Lzqj#k`|V=u(pIPEF3A}s0gP{IFrJq6E3T8m4tgB zJVD_Z2ygmL%_9OS5pak=T?98GViD=MNS8&XC9*b=wZ5r&_YKi-_@?F)g^VZ+M9C@2 zK~YYMa$1y&qEZqSMYJQLtHV%NbYr6161|KVRK!3L!?74u#W?t;<`-jw7`Me_CMI(+ z^@(L(EJtEh73-7cU|@lM7lsKK znP6gtaTg{Ln6zN(h3O2Y1DGyhHivl%W>uIiLD|6C2J10w#;7x+&WgGk8q8>DqRERU z6Pivb<~^7%VP3&f?@cZCrY7;0 zz)I*%EvepOuinvKeN#)R7qoXWZ)$1n9`2NOCw2~}5%qHFl@-_dH?@p zy~J;$U2Hc}FR&X=-qfT?EQuviQC2StGs;?3*c4W8*ivt%ifWfrwb|O)Us0uAKIPMH zo>J6HqijpcvGvX z7b>YYE~V8Qm((keqUxZL>(^|~Qne}7F-B=Dx1dQ+=wcj9!_TWV4Z?Uow1c14X} zy`@IIgQfhY)_5aTVM!vn#g&YDFGw@4-sGX)iZRe`yy&Y}S@d+;!$E#Q+l(szFF>$#Qc0Whxt35?)X^H&v%o7zte5h6KJ(-KtA71PW{fX zJOSFx^8C)YI0f3xI{eN&I|14a-~Y}sJq6kgC;!eiIsw{^%l^(jJO$c~6aLQGI|14a zxc$!6Jq6kg0R7I>Isw{^r2Nj?JO$c$_P_JjPJnhU^6vuGQ=py8_PbE&1Zd~`{4QKP z1=`u-zl-KhfObah?_$|gpq-KRyTs0g`h2G+k8!^{ZS*`1UfcRdrpS>ge`Fi~i|K-W z<#y{W{~PFqf7J!QR~PI^us{0mzky!(7t;m%hU{&Ce}292ue#v(>Vh2!c58RPn_hV9 znwEPvzQdX2R}X&ii?0tq{p#VPU;X0w;s5dK@$Yw`ez3=VYf9=)F&u`rQ^iVeH@71S2`|+Qv zd4KY~V}zZH{y@ddZ@>4wvvJqHdj9O?vzOm|b$CsyyoR7Xz>jwkpS&x9d^?}uFAl#w z!Kcr@{L$ABpR3h<`TW(P#I%ZsseoSt&KZ;`q|m0?QyZkord&FaknSO2gfyj`NiWG*Pi|Q@cHLYo_+mi-)Q*y z=*HQi_bI*&ud=eo`91#p;Db~As4RZ{$_Z-rZF~QHN#!#{xOqy2hfkh7dvrE~4-an0 z&VQVNMue*e|52mG_f86YyAgl%L$w)a$)c9?57&>WaQ)|>od2>T#l?I+Ial(HPqdP6 z9+T^oK`!!z#NeJYWMwZhh*sWzJjV|gzU>%e&pu}hyNp^NJXW!Mw(Khh|3*uEHty#K zKhWrUfyZuMd-3G)qr(qWq+Yr9^4U+NbbR{D4^Fzkx3R&yIdCV~KDu#tFB$*oQcV?X zGQ)l02ampZ_Uy&si-U)+UOxL$%GgJeU%oj|yY9X~DV86~YVBU6Sbg4>iOdrGK*`w0zQBE>dDI&2QQzUHqvc5B~FSKRJgr@vaOd z=m)#JevdXg)@7IDU(559(obJKd2$AAkDoq%`S{@zRfcL;+Wh<--~LK6`l+(n$=`1y z>^Yu2Ly=S5{NeiakIpvbtR|7@`SWAb^Xapfs(5@M>-){&%WDTedi3bkm#>~YlsWI) zbMUF!plc_o-)if%uU@_QLM!}}cLS*i`S7g1IfXq{md85zV!}T;xBz}YfxmJ0idyY| ze|YfpP)gx1pGnJ4tCuQyHTztZ(Wlb+;DZ;^hW_+W>buiEahWZ#$A`@Li-*5ft!}l; z?z8^rPo)ffdHCq1jFyu5>C?j(XYlZrDJbdn=;6z^TX4n@QU8vGxJW_ce3%#&OJFY9ivqhLg!Ja)GSisXcQ_*+XfAyj{RwzE!}F&lK=izo&pFZx!&L z&jD-W0-B-p`7^1$uO0l|^KVpH_SxZQuO6Lx|2re~SQ1NadnwJyYZr6+>t`=s9z6S8 zlJxN4<>N08uWCSl`^H~sGY|A**->7S+cwrYBP7ukaqN^ z&m{k7Rabl2xs27nUp&!7)?Yt-`Ng#_A3r_IbRV5#!T()y;MIe>x37Gn7NiO~+5U%5 zzJB=4i-W^oOY8i5=kmVHxmU}&%&ou3zp6v8a?>$$Y2N%FY5wlHW`FqMC*PLGAH9{w z4=?8NS8wI<+w;v(vpa|BKRuWF%3I~Xy9a4sk9*O%Jpbem$@5&N`Ryf&Mndl_ytjt< zZvJ;2;!|b9y`9}Ax%bhdXV10HEBmwRxxJ9C+skLqo=AOh`0{hjVf*6cmrp)^{`sSu zH}2e2Gf+qTq$~7nXR;hT+~xSuPyYHx|Ms2PzB^a-UdjLM#i53TkM3N%aqZSQ2kYL> zgSoeNuTH)^eXJIB=VsIxc9A&*}b!V*;}CJ+_HOT2M*r?{SKpsD(#;>d-@lW(2rhfY%763{)hkfk3RZ; zJ^biDUH|C8`#<~OXIHL%^s{R}`}hYx`!@$ad-}8IKYRJ}4?q6pC+8iFd*ANo{XUET z-XG>-sruyMV`;%Y{_?9QhhIv$|4;?FcJfhj!e?5W_Tp2;!Vbxwsp9*+5C23R;JADH zPd|F^lLK}5wp(5p3%&OI@T(`%9RJ`v9($8-S~a2>YDMaefW2WzdZbn#?&V~{j-lh{Q1Y9oPjxJeAU6dOx@kQ zb5}lm_~A~VpGmVHu|6&6nzYAXey}5i#vv-0+AlwNtRht_^Q$MXUZ~Lr8o{qU+C%*4 z+L~4}M=O`d}|BzSKr4&vp3T@wy=7sX7(FLczRWz*JeG4#)#>=;eymv|fYd0GBi_?&iuZQr+S|3c_Ez@C#FLiN zC1%wbGM)^Q9sm9I)E?QJ@%!O|UH$eHzV=qL|LAO=*x}&kdmQgelTzdGv$w0NCf0`L zcXd8C@iYvcbOM=^%t)2P>L7)bnr~%u2C4G%+l~J1WlqWQpC$+H-j>XD(wBEU{NceR z^f;BXSKcn?Og-Kv?peLDD^H5#V_7Z9d@Re~yCmZa#_TcbPVD2e$WmP-^-VMDKYj7+ z`KM~P`uyeL^GoS>lHW%kee!lG-<6lnNaeGCZwu%1tvdho+f$eMY*#&_H@{oI`L3Pj zEw=dXtZ<$W&SmiE;nP1m+zDS*Q||IR>x!L=_}>ri?>-S7K4Ru8*HQQKu?C+t*VH!OvewtK^LQ zJ4M9VJf(YjKHKm8e)9aGoPTyA?+lL}KfY7>zpZWdmXSdYp{(oS)P^83TJKW-ey*ZXEp+?V?K%a^lXNalW*@q6d%rI{k?#DVNB8nARorC}{Gs17%McCjYc z_No8ondY24e)Ra|!HX{*e=gHYuX;B!w9om27hgPk_2jdYu@}jP+H|3`_>Swl6EV9w zsNZEbm2SpIT86SJ$D={Vg}(QZZ1C4#Jbt2CH9HPCp7&5!4ScQY;Pc+GlsRARok^7i zE}4WpjsK^*yC)gE)8$nm&bhspB{}cssLA|#KE8Za1Sm8`0n9P)IsliKi*rd7X^$u#;f{SZ&|*V znJH(#U%-~C6y9Nm?oqIxHr&sUoKY($>i2w>-|qPT?BkDrDfP(JO9umv(f$rY_A(y4 z2y=;Dx?fZylYIE0>K&h0re{nsDdDtH`=^A&&elSe|XNK+>4%nYWMwaz4V`@OJ4qV&c*t}OzT})=Of-)C3i+Z9XH`yHP*LS-Ipkh zx3t7D&Ca#t;(*U(4Y@=FUq-vP%=(k&U6ScPzYu<>6>v(AM(%GP z20ml5{r4CO)(ph`Q16)mt9?sk11^C5gCyDck=37{+L0I9^MAup)_p!d(Y!KgkNxuT zueG%vkDfexA@h_>Bwe+qpFMnj;t{Gw+u?5>s&g_|RgO~=?&$pR$-%?j?7QstSN?|? z!TtWXjo_YW_WyMTa8FtPzr`S~n$vsV-;d&c|Jz4#zyB{bihC-PuWDlY*i{tFE5UdkT-I^O%O6#E})y!Ub?{lD^ZvAsEC)%wi`rE%go}K>L ztH1p5U;d@K9P)VB@!#%tPV83dpT7M2=MTS2~LfL^Mm5!%YinZ9tnPksLIZVe z(Q$L$Kff&T(i9(DBAE9$KD9Y7h?RFE^gHn8+bgr*5>mJSMb|t&xP7|j@nl!CI*szx zvnSttE|uxwezNApLkaWIr@Oo)Pd_~P>echFq=%&KjN9)7lf>I)cD(cN$G>^0Vny8= zcktEo$6r2Hw?dz6@6go6M^7|1{QX;+cR0AVN5L6PORN0s42|06XU`x1^0DfTo!LgE z84CYawQ<4>iFsp9K6pTC#D_kZ;KxwK@};Zk*l^~0wcejmPk^o6X&Hz&<_ zp)SxF6O$M=!i-%guxtfKeJ^fdaOE8r|)F8Tby zMOXKj23PhS<+Q(_A)+eGE;z{Fp@|n=TAAdC+qI>iU?pR(oqS1xPe2Um{g8u!KT?96YTy?TBi`+%r`IG?ef;pn7cXBu`r=oQpMHE=vE5!$wSX;$h!(W&t z_!12LgZw0Yr@wmk_2KhBm#z5V%Fi!F@NSgwr|SOfU2pxbu{q9C?M#;Mmg}cLXE1Wy zsm^@;yS)>r+At@PXY|^!lX%+1Zw0%6-2KieZMnl$ZCLCAw$E(j+B>5sG5d{1_qAoe zXRv+2$5-X7l#9EAHq<_L+zY=}2ZE(ke4)zaw+4gW!5k;WUwM0D!=5v~1&P8*pSB`GQ%r9UWbN%BEnij9zJH?T-oJ7jdvVs} zOgha}xsYmSzG!C3#m$^&ntsm3(|~t|+L;!fHvGz^z2Xw={rkNwdMRURR_E_wzRO%0 z4fD@F|NO&|qo%Sd|scd|Y7)K)mhv_mIE!dd-8L5`)|Iyz{mlN# zKRK3Tr<`@!K>+HX8vp3oSKsVWevIntC!+9DRdX??w+yTQdZTJLm~))#3A^kv{>h6o z_TmW>{`f6f_SUD%ETDJTn7@~|RaQDfBpLPN-#mWt^2G<=QOE8IP&d&3)iIU!Wqx`R z_f}IrJqvzD-=2#$B&6c1(ReyL7pef{to?U0Ul8(XKn^Gu0v^|N;q|BQYA9c=r5wd>zP+`roN-`%D^ zZ_oceTmGNlj#pLNFHY>d<5a&mQBlX~e{qIAFE>yB)g$;{z$5sdUr4>vp#8-K=0C&p z7u)c!e$gN37yYY8aMJSs9v;EP*8bh!{>9(^;NYhcxxdg>k*Iy*<>8q_Zq$jkGw{-P z_;-g7KYOUo*8JD`4reiOeoEq}+Va8|m+7aIvM(RIy>;ixwPTQr9rd{HAAkSp;pwqV zKRn6!j6!{J3UD5!-wu0r7UxW~DxTh&w!T1&zu)uQv#*~XoXm7T-kn&aYQq-~zdYQ{ zp?&`F(IxBbcMJLU(_|X+9?t`v)JQvvQ=1Um+0)v}&OiIxzy9cwMTVN7lGxqj>*d3j zXLnd#cGlO~qY=MLZs#qDZ&f#!ApOy^Cr{KRUB`9##XjP!nRO;7b;i7A3uNgR6VWe#n};$Up{&E zsjS+*r+jdD?U&co_DRvV>s?o_?Xr0CN|QxjYkP)2J=`rrc=ANW;M1?ZJlNIm#ld?! z8|XdF%X)9OnEySs*4kd=C*NHA0}uStETCs!{y$Y^vZK~zN$%adwLh5Vc=yKnWhuLp z!+!MS$!=H23$1n!)q}PUcbm6=rS8|3wwc86uMWT2?f*VeAWx-g{8)q5aPfCv9DbuE zdh+l;eRJ^S*~9&c*8gy#wX}V}|6#Y=`ac|Jqh2oX+2L=l{l^#o;oA4kj~%Mges}oo z_p}okPxh4`eyLhaTJDb?syg@c18t4MaR&P%Ak`FqzdKP(UGw;6vwHuNw;_J|SUqTJ ze^ zhkF<3+Uddar)wtPIuiNqV$K{$zgv!W**e8zh~uL?FRVILKY#C3?;U)wgHzYkst;!u z(jNSq3n!ocgDmyx4({hCCw~}dp_Jpm@&n~>xC(q40oUB)U{>@p|IVY4fxKrew z)a4lCzm;-ET>b3*$uV4JY7GxZ^_GNXEg3vL31pr zRD!+*vP0lbQvLMs;d5Cvb>G&*aqZyGA3o9!WL3X^_VDGyQ=ngHk$)lM zG?-&~cOiPeuI)VD&SL&7F3$~ip6R70^|^9^5NAdHrJC&Sjs3}}$I3-LI^$FqY39T3 z4AyI>;!M>V51&4Js@}Hn_&*(+$;2s-l?8x@w%hx2?`;uP zl^K~C85tQF8HeCZqCMEYd$yqh!6@Zz4n0zY{xb3OFR7TC?OUbuvy_&N@N!kLz?*Rs zpJ$FcziNegpaq23$xuV2=dXBf=IK!IizneD5V$^j0x-9l9esk9xK)lZN*2V*_!v@zw_z($wr|4yd^ndE07!GQ#5vuY0AxCh}mK(9SIQ zU8`lZHFluEtx<(Ny!g}}W&Q32{L@avEfB3FE;3MCx9hpidShir(>16m2vgUySA}m}dcZKyskQ0*ml@alTTUcP{_$tkt`Fj8IyKlR{EH$3Qjlb`s?;{>2%&^Q+!P}b44-l3kg1c=LH*{mRY>p_J z7S-zTg9upOG+a)He}eOcB6;&uxp0*x^#hP~Mk{A-Nkxd$Ptxh9F8U&90-y;n` zX3po&VPWU643010xRG`{(U&xiDo6ab0#Z-XrE)0m#V4485Cf+vTmL_Eo(q;92E(kK ztJ+JYIj?*wU0veC+xM-V&2Nnv1Dpf;Idrr)L2Ika ztlc&KY2r+FS&Uoyq&Ih~dfw>e67Y^MATv}u;8+&Qkbq|wAY zX(mmRkd3;RBsGv+2*+&-bxQKSXcFsDo*A=B${|L{c1S^rTW8bd4Yrkxll?9{K7(ZF z%R4$jG~4iDlvE8!U8ZjFb)c~JC>yRuUtw?SjzO3$p(7BVQ9_v3e)C{t@i#Z&g01rf zL?i))FK1quvoyZ``ooG<>##r_GFy$%5n?#kYFxU6N0DVP9>K1l!g@M7LC=qzh?~`z zoGilCnP5o}Gln{2SxsEBF%=zpmYd?#VZGc5?*Vlpl}dE68D_e9aNLE~Y%JSIojy8C z|NmPWmSHG{dX60Vo8w}6*$<&ug#?reh}1_l?+YqDD}e+c0*nVJ6CGXpwE$x({1xW%b3JOv*2g8MpXPT8;@Y&snvL8 zPFJ#>+#;uQw>_WJm2GF&ne1j{blNoAVRU?%^Uq*(b$9M>lR=c?{U6Ww z3Zsm?|9<^ZPi2cdOci11COlE1NYV2(xuMxBN_n4uEPHgD$1+;*te4w>^KY3|#lt7i zJ1(2%ub}5=X=ikb`keP!+8>qOM?HRk45Dz1qTBwb(3?AskHnCb79!9fC$)l)t#jHu zsB=d!w6u2j4&dhw+Yaa<$YuWBJKY2|(jBs5!r0t*=n?|oP7cg{=ME3F&3Ez?lUof` zf^tI{)LWnQ@dyp2N5iaZ1=5GlNf zs(O_SvpkPBj6`xf30zy$EIi zGoNyF(P%q9j)!UVpz%nl#Ol#e(vB%04knoIr8#D5Lol)x+x$vzxlLsUO2J_;p(S2) zb}uHy$$_ymV=-4Tcq~BfLiXx<_oRa8d6*l!LH%-W4t_QD@M=ziSv}}NV_eM|0a?TF zdiK8PZQKj#M4H-?qST%k3%mm0M#-q~T!yix-FwTJvoHdyvuFYQs++|l%x+rfqg9YR zsRBjpZkrH<=ot`Du06SZE{>{WSm1BOny!o|Q96p9o4&@T=-V3G#1#!S{$h z8@ImAc?L;$?wA{_9Vjgh5u4`&SP^(J6{*55=g_@up2m6AG*An2lgCT9sks zoa5-cY+vQLl&sVot01!)k5pb~+9Mwm13OZgo!6sffux>c-)t9Nb>h%^dpt|tS$mI3 z^F}8dq1xQ+6PEJ*6Ocvww43%nC&N+86n-i@&x>quF-%WRN3f&TqLroP2Mze=Q9b$z zg9qxGO)UE%=_WDW72|cykQ^#tUFh2~8Mn)&L>lRjP5ZIf4kXfY&Adx~Lk3uIaw5 zDl4(jvcAnopJtAsP~2_gr<7u7wwZRSl+Sl?s%1_mPc`3_r1^V&J5|QYp9I;nwe@Xc zU#l^QBi53P>8kXIPcUYpX_`%eBV1Xq8r?rU**)nl$6k);nyCoyvVcW3?g!)ySkyg+F5r5dw+5E7eIFvqNr9(t1Falsv)`Hie z+iCS0C0CjcWd2qalDAmWr?a8|$pi@vPtC1*MgYVFB)tBp(MfZfn2W3vV+#e`oLe#y z-*%Jp(OcNIo#U*KDG5Fx@6tJJfQKq}GJyF=G5rBv46jlNNn&?)c7_?j&nbl+-#fNG zzTJAcv9rv>BbFK;wto0= zQWZ2J`sq*62RNp+F(fCt>~pH@sM*AeFwEl6p)#*2;0D_by@BKHDIR0*V4|$#F{R2n z$HB?C?ycN^#E*09d{n-7j9f(8oB|lz#xEcHoJw%3lVm5ucmQ8a0L~3*{@%)iLi6`K zM|N{1u%MN{qn>txmYh*eloFj0)Tkj?xCd_ zK1P3r^LY$QNyEJtfcx;s!AJL)bsb0oTGiop?|5ms0Ot7Nk^)0Tl448Hl-1Io;(lz= zxKvy|S}NiUUoMA8R%1ME2S6RK1VA0HJXoGij)t_KBT9F0mg3=s)8PAV+)vcHTMBgh z-tqBq2M#B9;C~L!V*%4X>rD^5?)@k=~>u&Qa0vduwziohP(QMpUcNcX1sP}qXHb#A)1tg@J>L({z{>dgwjc^t;? zt?HG@k;S-y7PMX_NYNxjofEZC=6O|fO_R#V3FRY);L5Hj1G&Y05-qBMyRegF^j^KC zGju(&N{JkTv*NxD*Zz80E0H>`s@eqU4Kt&jH;#sYV+<`Zi@@hpnS2C&czwZdlGyhi zd+?k)U{0j2;75vjTf+}i)7smu?yff17x!z`XREuv?CtLD?|-W;?k(@_i`s+r`61-q zrVh=*zdm-&hI>`K6z}&NHx;;nKj&fu2)+4~!y)LHdV>f8R5s|Mwqf_C^=R^Z>2nrU zb*78nMAj0p#PG4G^+LK)>$Aw|;dy&9i-wM-s4xQTc-Bji3*L1`LodVnY5O37k0l2Q z{mC38JiRaFpmU3a>?WVgqG<~akN(3kqH?rDThLwmp~=KbMYic@S;20W;q?U;e2qV? zax-&gHZP8Qi3uLAnd_F?BKIX!H+-%;pO+s_{(f&|!gsR;Px$_#8~4w}g9nVvt{rhc08RsvW*Kp;VSW)18esjq0m^Q4@p`Y!N=#*#Pv6swRuy z1(oFm1W_dg%%n~#V9)A=a+CXF&1*>sdtxUQk(mu(Iy50RqG{#qx-tru*$;7yS(MY| z8yV~le?0DHX9#w6^=>C=cTrdZQ_*sN zf8Kole&fZT4mRGrJb1bJYU}Oh!K;lIJMTXH<=~(m{=V_y!$$en51ZQ`U+)|oteGAD zEbVu)vwXJwT?!X>_y6Djt%a(`*VpSCL>3szr?DqpP7y{bX=64G8B$PX|dOg{hbbpjMb5Mh{bF*>v;QW}5#j)IMRt8Jt4#@-U7@|=%k#dkh zH(qBaHtGap%j-JQR$i$hm1vQ6ZunDigPM>UP$JkJCFr)*X;$>i7Eszm(ZI8PEc0VR zgAA`W>?BDqo~8Ek(&J+FR~uWew>MsG9&Eq(ar4c_gz78zo)oM9wEga_U3Eg=9|o$w zc=us**6M-I1NYlNzGn}hWbF4=%B#Qn`1Y>)j%e^pfOtkbdSOa}KOKWUka3-%3 z=3aa4HKi-5kEONj<_fh!&EaY)j*8b9eGE4B(yOIwsE>tOf7y8Rdh;B;dT=#Oq}zL# z2M}e~mu8LSO!j>0Bp1k^wi^gDT4^pd&;8ckY`xujvoU3sgB0#9j%$$D43y;!&Lo9% zMz-8MFODn+PU9lpFt`eStQ31Th%snNNgetasDydOGE>d1Bp(CS;!fv zyWVZ<^1aL0e%62@jiUrM?xex82MXKlmEP-RHgYGhR<#*jm8`MORr!!zXI9q7XC|%9 zQ5~D0ZKn#ZF-53?TS6Lo@#DsagPo1%J|n>OZyT;~!y?DLxW`pwnxiyxl#++07<-3p1UvD1#=f`(D zn{Me9Dn0M^2L5>;?9DwY{X3`h`^^t8Hs9_9NFjM?#Jz5>6cWx;lX}w z&xXtv<_7fqVCTn;w{Gc8D*e4)5t z!(vZfeEjhGFQy|@`Vsf!t5f>Vn;&+zUceY}-Py1o@mzij^xFeYrMcgik>Z-0+b=fW z15ernq`!T!xgALYPyhWcEbOIyYO}Jpw*<$pP>DynL|jthu`Y2`QsRj&F)Assp-c2j zN<7ykzLb=Bp-UW>lz6F248tXsO)E*b#L9{;F&{4R!1QBpFI?pD16|~8xWtB;n1hmz zEUi4==Mt|=OFWSh?<=w|yxe^MVe-@SXix$$=UVEZp`cQ*cutfk>Reo?7M zmA~LW7fDXP<l3I?>qkYZ3V+WROsO?{?pIsC;$77${!z7QTg-g6`Nn{gC5E) zDTeaC=q7LCL6ybIden;td;}CXuyJ=pMv52_3Qbu}{*O^i*7zLM zQqLou{{oubg_8Sr@EmwHJ_;*xc|JF1MGj@y75KA?+5xmLtFJ6At*qi9*;HR~ocQFD zoiW~&iRj>A7$#!3avXQNMfU>SN+c@;QxeceuMkgLl!T}?}5 zApBt@tB;s>+{#5lo>;0d8_}>g7WQ6(7x(n zaX_1=bT5ujjfV|o@JMmw&@xvct`}cKqIWqV7iLtZ!vV>3MKm$i`~ibPI+eaHir9}~ z!T>BPofmqEuAGn^jAL5RGP6u24FL5{RcpWz% zLiO;f>2>lY=}LdAg4#5f82zTxx@ct|y#gD{Anye~nobGNR><&KxrOq&)nojeb7zS& z8+dS%M0@Sx?8t}E2;nT5kj1QDNq^v4kC&`z_>dgu0V?1Rp;r1C+bzC9!gs5f521?f z4CgdYUZKl^UD5vFRMe!_<523zkF~G2$E&xbjBZZFU!PQI^ITO@wRrd7z~u5u?~mwv ztzLGu)>Rz8B%+$z? z8rcXhB@9z)ZUpF+uw=!_b3AM2hQp_ndCg-aQAHP2@$AqVi=g7xF7NuuIgY%stX^2i zP_MAR`nOJZW%DLNn?$tLt(X)&;>W;ENk#4GvxgFus$>UTqvDSH4|m1D;Emp^>x|RR z2jpdWngpuOokeG$08sVK*}5qa6o6Egk{~ir3v|!4hekVsS#(kEch>9;AKzi&S@!yq zq@N6d^xi@zUPB$soHwFv9XOVAzksb4HyEM|$|WQGeLtO;8;PzJ=`mUUs~6@_wMaS z82cS#=B=(m^9@>CaBR&Rqxi@+!1x&p(bsC*nU6M6v!zV}K4`t$*?6v+`#=?P>KzUQ zZ|IGz)8?4QgCTlic1S46#-k|7+wp+HE2CF3YH~%5yRsV1$9;@v4(t~y7$<$o7}}S( zuo(H2V4|jyEc;F=Ee7C$z7u>5qQCnifB^$sU917{r#uEL(7F}l>u|~Q>Czq zrD!BJ7K=l8{qAkxJ*j=KLLm9IspA#anMfkJnOA!{3`IzRb&HyWgQ z(}C}{_CM5D>k1_B*}mCv5cqqIgg@$Ehw!Tw03ug7B?P0d4}zUHN`1vTbex(T*D57v zIO=BTZ$u(ttd1VCl32!nhY;n$3Qe7$17e!T@#w(%NX-?Lx8diVMz z-ubOZ_wCm_N%;D~S`kHQ`!oXSr%T$ji>{>CQu%hRgagcP2SZFVG(@`rX0Vv1SRdUf z`oQ{AkhkDvFCEe6_rs)tr({lovT6sIdKxWpkt`qCW$>NuKjS7Fx;Wuh;G7v#L}gBi zDfz1G+8S5VtG0r4#JfD3r|7s;2>QW@_nBSNqti{K2QsHXl(j*m!iXf#ngvcO?wh{nWt zr!IqJgp`UQ1LUAA*)0Wv^JRxs|4 zQc{p24{8&VE-J8hQWgW1yqQQ2zexP>xYLOeqYG}T4(6F^P3^XLng_R-9DYh-pX}5ML)f zNkNGv?gmB$!;BF&v8FKKBfSEYfuqa;zcyh zRdUclG~bv<(XuzN#9;)s=|Y140N9YCIno*?wLB09ZW&l>tA|#hFjFXj5&?Wpk^!Ft z<`<<6i#SOkdJ=QMR3Oyk9B?N~Tg$u@&zVJDOX*JRsLQf#np3PPBuv(YlPUGOFVxup3)R}P3yUNjx&g+Y9$_S>rK!4N? zLw{tH{_5VszL1tX3|v$oSuV-8E`*jVMz)bV9OERxw9znIm_-Q#@Zy|tIF(L?1aai|4!GSeNl#hA7fc=euyTe(LXUg2t)}#ANH7(fU`a|;o;S!|1OLWg7uWt0e z{~!MsR43G!L9a^hFup4~OGfd???|&0;?r_?YP3158raTCVbUr*N|3GM-;uU>h&e(# z@+&|@+8g%-G9R9mD4$3DcsL}$Dt(p$jR{cIeJ2`YBp@qvJ5rxQ*5=mqzy##u4wUU; ztTgVtNx5kswtXz{jiTOm=;~h+68|Wf$$9}+L;7na3H@2b2ju<4S&!M?ica8iTh&rG z*C2}K`M77k5a&fFhS7x?jeC%ylN^AQ5fEXyn+$BZs3b?f%0x-EBz#ftjg`bx96VlA z@{>Z9E+Ar{b0x@ocsjapR6W*mo_23&Ld?qoS4l=^Kjqs5Tyn;T4q8$%39puXVKNx1 zz>s2AQz*^?NTIyVvrK}&3MKRd9$K^cm;+C?F#$yNeZ>?3=%rZ4USsyq>~7zU?$w&kFDM3c}t8XlZA3+?K5SL>4RHU1~Ig$j#x^|2T41{EXO2;+lK-)Hz17^rLl;kc_kCh zTW6i7(zSI{lvebAa-1tDlsGa}g)F7HCQ4Um?t%c&AGW0Cim53P`^nT%Sz{QTUq)gR zL46ig7Ar99DglQle5f=kwKdByz(?+)z*v-CG8I%YIUZt%5QlSaiFD1H=EoZde;E{L1!QuDIs2HEECN zf^lfy@YOxNc3r@cid$nOz%0&;N{FnioI^=H`tI|0B!49BF~vs`**#Z@Yk(ZT`@FdP zo&NB@|JVPMLCIN59opG3i)0bHTaR5G5nDphXO_Egung!ZIZ68@(qm@eeg_w)7G8jx zVHbPxfb^H}Th4zwcvFf^)+6?kqnyH=Lkl|HR}@jh0kbOf=z@i<5z0ySio)M~$5P$v zFV?ENzwGt*7iz5&wS+Alaa9=H1sy>2;;h}ZP0+)K35vdhwnwkRwp_v$brJcYqb|#{ zBFv_3p~XWmA)IyfHT(FDbN|{b6hrV_wx-BsO*3Yunqxdtqv(nnm?2_XXj<;aEu3O% zzPhEW(Z{sCzCt%Dp5DOBZ7JGN*iZrQT+XB4Mw*fJtlDah@MtN?SXnis%3=;0tSCly zReB+}1|QJ>F==aUg*{cMPD&AxRAF~{zpnJ5{9;86(0lGs$dt|Mv(5pd%+(m~UA6yL z=L+~hwNKA`VJzY*dK-Smn8MAbrs3&1<`riqGzuZ!#bl`s9pLweAuzHFR|~>?ENy?z z<=oRhNz_6y5mJcd@%kL4y`+wnNO^XaqSGgwg;4fJMo)XPRgbD#}bM+WjTk2j--N3zj9Atl8?1wjNRW98uC3<`s>VroSrC zT5S{$In@eo(e3Uy$DM#6HJKr|$HSp0|IvUGPh_yMaX|%-2 zSXH1m6cSm%pzJQ6;{7-#u_Txd7Cg-QEJh}cc?@k6n!^ZEs3h+KT4&sgann!xBs&vU zR>Q;5swM)azCN|d7ynDh$hk@&o^l}+UFmt1Izptx;i##!H7tEbRqRV_V`=~7{evLV ztm|V4Qq|{lAYyOa7WK_pYzr20{}E}@!KTqTI12n{I#?hLOYbH`M`Kdl3~D}SeXPbO zIU9LUXog2*e+5e+&w2@YKEU_m5wRgfJhW7jl(qjT*PUivEy~jgWq_cm0er<~oLQeu zuJodIF}kKHGZ~^p$%3R9unrR>31p{ft}o-%#R&IT)rh~q!2t!v=G~%UwMQXj?&1)I z($(9R)$Sx?`I-pqE)@_YW%lh{#FoP=xcG2UDYDE;Nz#@po*jJx**Y1@p0r7)SR8#P z8^fR*eEXs;HH@2A@wn@|4Mr+~oU&(N#`VIoY!E2P-;9+uof&7jKAw7c>|EgIDu)-) z5{OusrH`_R!$SJlPsy+9UULcdP9EO;z2+k;@7KJjPW5dx#f5+QSn`PB8?u{y`TW(Z z)5mP#6gJ+_CakeCUN~@C7%h-*Tg`s8Lk2h1+CQP+~MWH#^8+qlFP= zIv;7%YD>$Zh|Re6RmFyqaZrmE$VD7Ay1Hu()!)TPjEt?jW=aJ91%n96{)+cvOp$yC z1Jbd%Cn3=|W~^3vj8n!*6#1y@}JxbI7obEXR4N4po?T3ai! zbh8bwpifa0X=O7y=_-06 z=LmVQd}T_VBe=aQ_(P!18OOjEcC2Db_$Dtm3y6k^Y084b6VHh{+cC)>OM$8`O(j7= zO=AK1e!W8SKM&n;0egmmB@6b7OstCL*2;6h&`1PyAZpj{dRJVPU2IZ=iYoh+z@$D$ zh1tYet&nnT)0M zs#ABmH_l0U7i()iQUch?%Y>?bU4HH`?WrP(yM||xNiP4PjNX>Oh}j$It0042o#8v| z%w9~WC^O7QC9mTYoA%qvvr5gkoRV@0RAp!}Y45+M5%&Q@&8@?S4)S-!_RuOrHnKFgKl zapU0(7iwPB=B#G0usd_G1mrr!IA8Fgt^z>ajdVfOFAF$Qhu{d@I4G;3&f<%?qEkMdw>8cZ<~+N4G$7}~V9 zZBV5$&D{4C2u{rnh}BOiW}E~90AfI$zX7qPjb(H40U|pxo)WYcb4|M}7GR zf6+QYJ@05ydiJWby_r5)1nkY-KuQj77>4!)oGa&z?y0W49LY+Wn^USN=0M&`Fx@bY zh%^$_1l!%M7p-BxkCxb4!#9#O`?zkKd-ZO}*%;R&orSNMRnTE2=jX@NFY$70uw#a1kvF6|tGFaZ9w%>(+8mayy@(Y_2>_$zXsOMT6mw&iuH{-o^eO!r0dy2}T2JFc4t; zQ#7Uy1GvRLR-($Zp4x(Mcf8_ky7;E6b^_JVmP%Lkn!SNZo^kQ9oi zwn?+^-<6n-{bp%kwl4n$DS`Jae-Q`xsW)ifCCto<;}*6S>PfLBE1+i06HmBksf;!5 zvk*o0!k;k!A-ehXm7oqn3n5YoV#Qju;tX|DW1 z87SnIB&sRJZ2cS)vanO3495AX zbjjML6l6K;?Q7TS(C$X&OJ~gRsuBj$Mf(+p?@fSc>!#vZ@8k}dO*&PI2p~9?9))En z_g=~NZFJa-o)QIw{?-byEdzwaQ^DmYu4&azYwBvwd6e_7ra8}uI^tSw-`q|cxG?ue9wHrV7iDe< z`!4pZB;w;@+#bbNplEYCQz8e(1Fn^^Lus73p{`pvL@uEwi%L2=ZtcdRdARbHF`T*L z-F>NCPQh_Y9UCta=QKGVCH+qItAu)A4d$-7G~k#mm8GTP%u?k^sMaHsa;lI_=vEWg z7n2F~;`0X3Y5lj5ROn4S{2WEIwDai6b(0ERCwbA`YbO@sWF+t2?ri=SH23=5&j%{_ z*jn+^yN{HgWX1jT{PnvRf1+yZ(Y??otVU7oRUV^vZ{Bac{o&xn>#g^8Q|kTp&IkBl z+EMTSw7L0S8evH9H+FV5KfFD7`|j<*`wv@hcQz=xnVy)|?%w&*QUm^Z4F7u$|9b)d z+k_X(ulCL#y@DT)@5BEd!jC7f_QtPXz1pOIU+sU}-5a9;Vgvp>hv(|EIehbi-(ZQ_ zx9YRi-Cx{d-+rli#ae5Hu5N6<*xKSNi02E9=QO_`jRTQ4?t z-hJ4%23gvH1 zYk&N(RUmh%z59!4w+3&1zq{0U5;u~c`mu+6$dO$sm1y*EW8%E8KMt1-@W$2=~g)oG3KUG zsjolW0mBqa^S1451vcrrtsI7lBp^9_0e<5wG{sPQnDqv-9~Hv zACq&u&r=;H7s9sQ*{e(E_YiYS2pN4<_`XGA72iX&KS6YOp>f(|gM4pEtM5W7@Q%_E zI!(bI1;Tn8eR-pAoJq}U{oyh+5lib`X}&A%KYR!uj|1&@xdRWE@jlh`LcXF_)5)8{ zcGrN3*GXR?g6z!|`W{0&=WN)mfUK;MfaVl?0L8{`vHQhh53txrx7cGYCQnPnX?mHo z(_Y-Qr|LH6rvx)Og#+4D#?`E3QPF@GB5zJrM3z=yh3a0`$kPwDol0bU@O3dg-KyB5 zaIqCAc4QTM94z+eJ`@{S#hwIjH9Ch(7MTYAiqW+(Wp;>1Z^_S6i*5-#kk{r@*Pw7_(iq@TtWW ze}{k%s9*WP$L7lOCGz_?7-jUtLFMmG>=pI8T4mP2)oamHwC|~rBMFLe^CKl6OW&sAK-zh-28}eX+FP7g@ zp&z>`rPm7axD=@Y)#}6|z1Anz<80erTBgw1Rgx>A)#5szmQB_fG-ISZ-;tF*N4>1< zM=Fuf+TB8yr%;BcD4Le!DeM0n5Br=2OxM>hP39t9p_`n%M`%^$I-A2&{92yI+w^ZD-B`Yma)*h4dN5ol)Xg^jTza+yP8rDE44zUgrnVW&fCp0E` zjQj1=Y-qm`3n}ZXene%zeh?c7)HXQ8uWaHtjlJlGda$PBlf;pai&qQ8Xrw4}9V~+n^_=VSOds*J^(H8@%`^?>*m(OdMqZo-C>$L~|#i z7oV%2*RT0thvZ+M+ymKcE=4EMNii&R`X%|1QqK*Mg2=!L@xN-qd~s&Fzr?-nOI1Tb zX0*q{lU&KIj=@HV@YIvhgEuy-jRHaxUJC1%&iEMQLE5+L+ z?2>)OxjYfP3r?E@CFe1Q%_hG{07%QsYfHJr!$}_x^81Umy{7v0U5h>Bu`jzzPEJdy zHp|e{ZnptDS`TCUNgq@^kcn6zamDMoxA>s%`FMaTSitmb zU5EeGvEiMK9}3H5Cq9{VwWvIt96@ERoQVAqxVVR2OrYV>S*GbH_pqs>s=z`I8XoFvVA#S`p3}*lvLX(s0MdZ8 zPSWnil(u1fjJQC_a^6YSS(A$N8Wry^uDF>0@bCYgX$N@J>FFR!g+2J=j514NXZ4=CWVSgHTC{qC(vo!}a^+J7xemEgqz zQ?U$x>cYZ1t0eA`heDk8b2qV^mC7MVw#JIzGO%?oLwm{aBoXVcT(#VRE~fohWWQ`Y zY@_uk@bqCyfwGOC6rC!mz@I3?_UGh6o8SL!9QQ{l-TxR5B+enriuNkk)JO=RfCD&j zFO~B^z9xxbvM(vcts^MP03pS&yJjb~e637By^C(?M$jlk4FcDdu3xy})^3d%!{i#jmfEroPve(1>@&P|L~Q{AX|@)pp{NWQOq*}2Mqp15f^Dq2wWATT0=X1Ks$+& zLyV$DPLt@rfMD?gx)1z5#lY4Q89nCIe2GIT3Sny0-IrHO;11 zV^=CffzqBukYXC>Gy5e2{@>6{w1kClV3~Hi7yw4c z;MXN7axLMhPBHKRg}nhq@P>-ywE*;m0YI_(Pz*34GRVluHsutSX+rr%DKWzz|ENI2 zdaT{O1~#Xl(GX}5cX%?k3rS=phhjdaxdZy<-QUcg}*6}R=3 zrKOcs+8KPPElvoMY$DvPrzYe}YRM={0KN5|eatP25Fq&yL! zTlT3`6XLG)ci*N8F4sxA$tVf!uT;Um4%D)jz0+c7D19QYdUmmGHn?n`deXd;EX*FV zSze+Vaj)TR)t9QWxVU!LkycGjb3Z?!rmc^f*1OU!m4Pl0Y+x>9EAS}A-xGP=miP>T zEv|ElaZgvN5p0OZk%vB~gY9GhLN-2bOX4=Rj>kv}FF>G8D0mpnE==-7o8>k zs?#bVB-^L1!@j)sZAMOQzvc-oEiM+?vNmH@*Yg&@0@w;WEL;HM!PuQ z-asvSk=Ext`m|pc`>%|1Y>b4Koi=d2(!_8TGsB8>Z4&eD9IRP0sB~|V4Gw)M2L5&N z8`@ZC_1LF@yOwTX%lMf|atlMxgmdF%V2$?s;#w%t8lrV&JHdwWv z1^}7qr6?9=4>neBnQASoE3L}@QrVqOSm_JWGz&*251sx>3v#0 zP8%vka=cEh731se=z{La8n^;;E;*Wr-phR}X+ zARQPkpQ2IAAG&ZhXC0;FkqR*H~NwYIom=t4ttY*<6fi({<%G-K))IF#iR=tW1A zwNT+iHWeeTdf|xeRf-0mdVvO{*}!TwUg71!r8@&itgDWEawBZdjPILb+>vjzY#2K8 z1SDF`EoUBLW8x4sysLE3Zz3dKpby>zQ79CYYId|bd#rTU?_@~OJ}}36?<9XvJbdXl zP8lsd`y!?mw98Lt66dhtO-MmleY$S#pZ2_jR*jpK`5LE%s2J(lcgQQ~In3%_^9l)u z4{YRy4!8#e^ajr;2So%I$kQTHL}vj>*3mO~4eH1jwqzl(OH@l`f|)h&26xy>b9NP` zST@BDbJpXWn|R1BZ;4VD*ubuQaHD$H#pPX_=;gxE-F6j47dN2;Wt!&gK-NWKxm=Bs z>NX`B{7;I$Una2H8n2)T>QMhRi4k-Svb7lQq;3^36<(%gI>ISyuav_U4vL|DH?*Z)bs0J+EahlZ_b_X@T#MQH zL%R)$LZKvR#-KDlpYNDl^kQNpQz~T4opslw$g{<9zhY<=TQJ@dp6y@jA3kA*}fU~KiOXYTk zf;8U@Zji;bH zym^)Ar6({jj*(OpLasX1&SV>WPcvBwheh|1g`bQMp!q7&w3)zXQAI42$coU|3*PLPr6B%nS%`t5qUQ))T&y!9Lk}Nuchw7{OY#l$tlJN=&Nj6>u&ru9UM08e1K-X z`x^a~BHkw*eWm4m9RZ5u3%6jcKPi%6juJXBNfB+c8ILf(JeN*71<<#phV#rjEZc^T zCqIUyMQ!&{tfwz}rpkU-(e9PYY1h$KxC;m+-^Hm`A6(0g^@l|jIXSltip17K?O>=9 zHwNIU7b~#zMj^1m*s6=-IGc8R$huP`q4YSlRUUzRf1|H)VpbJ(Hst1kh1We*PM}vu zamQp_v1~3S`8V~J1D^A|uVKy%alt!EqHdCt+Y`E7*(wlAwse=E(;c(??4`#FB{ZEd zl2TzEJ9jl#!+t+7&goO2pqH7)mfr`X9rP8cU!=Tpd+y-+2%BJEuW8-*oY6#a1T-Dw z-a|skvJabA;};{c6^x>>vT^5<$W?lcYFe)xS>jc z&Qz^9^ZL5WgeU3tLk6^-fPm4b7VT|))p`gquy9XsTX7D97?Ip*34;)#X?HVevQKJi zBMmLUk%v;-O^X8kA#oUI_0>3*8&uND;`DTfvg+6d#E$U72OOB4@3c0dAw)ZQQkq-5X#hJ*HspOfI=M#H+Ea5JS@I@--|N?20VRPl)=s)8WuG zaDwg~B|{_`yQ@lDXH&Fv(d!^I@TVjhpf8&PK^6#3<0&9E8CqY}SbrsMEJH6G^voij zARXFt#o^zk+8EjLM7i{H3m$dXxzIO8k(0Bon4`Ft!Y6bX4`2NR?|#%}PsweM$%}2L zXerzQsR@hxV{_Z&75RtVHq3a}U<=%HWk=8API_Y}gt@7z=whQ9zxGlnx%DPoPt%4q zmTT_$vMB16nN2&oIGRJlVsFP_+8+50HR39zKuFu_X)q11Q|Fl(ka#n-cSy+{JmEZb z=Awjgm1qO(!!aHI)kPEC?HJE^|3cpp`$MEqc5+t4>aK17(rnU|nWvy~FUBTaixq61 zrZs;bS0Aax|dm{qV;`(%c4bP>%zo3GIc zQ$pyea-2NeDY-gdvpeQ`DTjUetjjv~K`Pq;9hE`(jj)6-u!+yLal3`fFmG?W!mT&{ zXIZrcckj^R@xEGYMSlz(5=)Sv4pbKQMRBg8<;BPNFV3=78N<+;rTy~`nKN{7q7FCh z<1S8tR&@I+W(!7jUxUpG$+S;O^*myOg*8gqOhm)<7*oW&QG7J+#&q9BY3Oln1#I~I zHM?%K(!@A4H5L}13Wx14J~Y&7a7JwEs2q;5XQ%7gf`4z;P=th&E;$ zsuvO|xuT7?hQinA_Jzq+1sD8phPWitfS2C9J1b|JkLopAv1%5j@xl;F!qSkI%TsdM z0cxz31$5A09-1qwM|1zmH!;cz$g_|2dOCsG{W|RKiVV-|aw*fB%2o=DrSQGXm_>gL zT2L4QGi%M4RZHg_LkFU&lC)5G<>6xHQaX3dBPX+E0n`ASdj_7m-{s+Q^g0TxEMkIdZ0< z=DLWPbVrDAP-BI|g!%1cAiPCCXnnk^gunE+j~AR-a3}yM)*#AQN7?AqY=5{xr2a;e zJ3B=gTc6?JXdn2mbbzL9h7Y~=+N@ncAe&@pRjeW{TJQCe4 zzIg?nX@ruQG!0z#$|{yZ66q51xT#vf;Q+U*RUpd8^N+Q};2po*hAlTmKNFC~R--QF z!%-V*&Jvl9tV~x6N;rcJIPuR@D(F&>f^Kth9<#?BwfC(6fojIAV!U&nU7&pIu#Ub){jnAp72uh8^S@k?ZQs1cRp-45`+5!tAE> zR3Vkk%~fvLfv*9e6^*{~sBcynD20(*Gu=@n<3uYoMtOxaE>`$_;eVXl-Edc?X0Jya z)89%NP;ywhxn=3KO-H{dVuKMlIX`Up0jvcNT((?NN^*LC7uxe=c8g9Xpc2i{d~~|k z-@2KyEFQY0SjD?q%V}?ZZhetMwog(eLE_rXlGLq8 zJt}_TM5(9bR%Qml2X+ardvoDu>UKZNMx$Pqhd;Ys?4}YQXcOqP9A&hu9bD0Yr8mya zGLJ`5H;Kg_%X6l;%=xwCe^ohRGFf7Ri*jn@1Q@qUlqzawfGGb>GzFqT^k0W&xZ*W7 zSSzi7zLIUaJ4Ka%PukJOeQlrLk**NyFFAXQdQF zM3cSR`A8IDJK1)UeD<_rdZEx;w%Wq`q1-VTupFxbAB^k2{>U1aZRpq-rw+u}Rx4Uw zB}?I_+|hcp#Lw&MxgiC<=NGD-(c9#VGBNnaZJ5du*DDO*vPBtvtQY?&DKqSM+Dgn^ zTFDzy6)Q9LyRJ@3GT4T1|JCPe1xO6d4w)l)G$NK2M#<)JM)x(TLyDy}q3MLV{w%_` z!UQ_+thtNUX%q!*D(6Nq($y@#3>|paw^ZlM0SXD$Q{5?@5Y}yXsUAj6a%#G_2RxP!pwtD3U zR4y|Ww5m9^f?oadcs@=YLz~VnJkd3hjIWB@5lF2i&fDd^jHU#2wQV5-70bgTmJBjD z%n&Q^45t@kmY1jaK}Szv=LH{`VCuaI8RLtTLvSUyIDYe8{&mKD!=3u7@M zQ|a}{oyoq|>?U85uCnK1hSoFvhEi#&%i~gX84#CEB%Hzjv=6&jqzZ( zHYh5Dgmav>NwJs8rE#3+=}Di7h4Ym%th^a*XLaFqYJb3LZKt zcuYrU*%UoRomE81KzSI6>yjWIa)C67{esR^##WWwN8Mr6I4Lt>mJ4J&z1eU z8M1vrU=!t37`qz8e&9SMb6_t|!Yl!r)3Foraf%(5odcQoBZ7f+HupWMQ_SowMwO>X z&lK%JcC90&uhy-j;-yXtXWmrTUrMsM&izU>Tb?OeYLVS944T}Ig9Fy)9o7})G!M>M z*Tz47&zpE-%OOmO!v`=CyqdbA;-%fq^2F1;XkA)Z!U~I6_{D63p)lJV+0)lLtB9Z5 zK{rp^)y8?zNr$+veo1Vj5&d#wc#>PHub1k*J_vfcZEh4uHfOD}t2-h_uY+S4{c1Nk ziQ5;Z9N&pWDq5pQB=Y|5ZA8WX)qU6k%7i8H{Frl-Nlo%^^ih9p^A(2#${cEDwMtMk zf8Bd*hxD#x;o;C}#9>4=>K*VRbb+L0iBq9VI#r3Ul@f=g@XnG`7JW}$LQNkkEcVb!7JPQ|z^c2=bs2=uBXdQ)sVWM=!r&PJ<6LsLT& z6SA?E%4)hhe2+fN>+VvrMqVho>y+GAbnos0?tmv4M)~PX)kdqMPn+dLB9pt~ZK=uR zft!^hmnv45j6!QRc1=b79HLi)!Kp%T3}dAL!xcAdzpQ&}SKGm?6M(awOtM%odk$K< zp-odsn(4sRU}0{^vMgXX?|YtKg93cPLL*+;6uo`-_F!ZC#n#rr>#et&2hTrjZv08? zor){jk)(>N*+H1U0`P=P4LQ+7P@R&3JU1MGK!|s`xe85ExX4wFJA6iq*UqSK8dBa9 zQf5qHZY9+H>X3JUIIm*5&zlPi%#+LjzSqm1cXUiSIDv+XCYm5?$A&{0ud^a$7b8V- z$DEwB-OR}3d6ke@kFtSv?LqHg|Jfc5kyPlB8jw=(N&N!JP-I(H;o*$PINiV;aBke_ zpm7!Y5S>Jad;LSKLLs)!;ZTz6$t_H)0~N6s$~A5dax+)gImxX%2O7B()yo9-L39kF z=kMN>cXde--K))4uY9oUk-cb_{fz|AL_`F53`x!+)PyGf{HSEsA7P%Ca9QRwM^?~t z^d66aOwyA+YQ5tAsC&UVRnR;mkB+i&zmu~Lt9jR9^*rz;CraqmmRcw?dV#MRAKl_Q zT-GbeX@9206gX^ZXwJD-v#hn^%GdyTMQ~1WoG=Z7yE^Q%D=vkJ>#0r(=<~Wr+`?z63?Rh`iLNWM#j_G=~F zBgizagcgklzrU{HzqOFSV(E_>oirD%SOYCJkAavvl0ZRlq+eT%u(W~YG6e4~?JG?P zv1VF`f7y8RdXvIy;YFWGilZ})Y2FMcE5oYPFtQz=shMq%W)Wn>UTk_Oi~nn?UVBHbnB^VX^dVQhaZAUtJH?sxB`*!X;{E<_$>F)jl1yj>Z^AuO6AxBfCwu zv+lSjW{zl})+Bud53NsT*z%qM(0l%=zgWj;J4+9JBk5GIEorRX^5Q;5mAX(R=8B`qS=3+`xoe9g5l4$! z%q|ClRf1H(u(ih=fcynUil+yExsEbEdf1Cqy(33=$0}F4T8C-Jut_@3y{1oOKgQ}0 z%b=hOn>F8;X=a7`oyd43nxe79n8o5%!;VOYvWO!WE@ZyT3+;$T48rMoVdgAuk-CCt7F^tHe3z=&wEm(H9A7~fR9@uW4+~Rh_3C-yH8a7lE=#J9SS(+!%Bo#)L z%yZcn?v92RG;TaSMhKFx-H$*t%abA7o6F@*9dG9GIGOg_-Ek+04jIZ}l%J+OAr;kC z7`yINWHni`A3nKXYpOn7Ms2*=jH)!;OYSrpG-#cMypMXB!*xr12|KQEWd!*@&=Py96`QgW{pZ@gv&D(eH|MSE4 z&c{Fh{9k|hYkbrO+4tl${q(up>t}<%4fE0X%h~zG--BFb(j^x zxt*hn*T2NQ?sGUi4lk;mcoZ9<6Q3-jqJsYh%Ms`YpLXDg0}}~rn-3(w>+m!J0A#)6 zE4&FagHlJ?7g-;skX;*&F7QuNpKv;KzF9-~z{vq9{ajqsz8V~a0YGc6O>GLhhO#;o zKOW#e!}KSOs*qA1F5KrD)qC(bO7hy>nF)u?Eb-&- zqxwM($vS3r`3<;$CEp< zG)qTTYBM#pGO?-qE)YTS&qE+y*ut_%whSaV+(CZYCJVG~g0_bn!(n`3?^S|wv(;!F z2k@ow0QXcje|gwkRFF5`Z{hykkK!-TZQL*IbGQN3#GEtHGyhFhwD8d?sWHsgs%8CR z%L>YD#kJrVz-tieES8cTeZnQ!TEJt`MK@8pKHlqfvZ1&;qrgz_ z81`kDB)smC0o{-I7Q^u9=C!!Ny~*4FnK|@t*U+QT{JmHEYg0G1H!3R)8fx{p|%wakfX2rpb7??bMZ+%mbSEluNX||r+pP?9Fdh)m) z-Y@Ov@|1qgf-p|=J-z+1ZcSkUY3{6hM;&L0&ahxC1_YIu*GMG-SvY_oUqacr8gSu1 zqDFy>U~_1-xTJ6W5I?;w~KX-dZ{8KH@AHvb%=HlR=L{j*R!2nvPXP z1#6K6ItS_KN^od;5Drs`hSQFFN%tynRDWKn{vfkNSa95qflY36hL?&SXeG=amT#Ru z%%Huu)Dn{z2^PZ(E_6rQ*f|jU6QQsV$;syVpvnTnO7lT-zm9)6s%3waobXY&@=NvE z>TY9k{~7#U`nJ2=c(T8{)Od2RzfglWdwWgwgavk!&3!72FZUN~&sePpEi_lKf#wQ7 z<(9(_2%1UKV{{Cps9Ym278re|sY*wlss zPzhdr+rt07eN{6B`*i%JenA;{`t~+{`|a(<+gk0rN*U*V)y?A375O%46pJ&*HbM+a zb1&%Fe~wXkb_yh*^kn2rqo?0_pm>1*4q638^eL%>99??WX_a z-Uw{R7DO8mNfB%l3D3t`mHH>bBb@puqg3<#yX~!=tv_!b06lKK-P-vJ^iw{)-TYz0 z`Q+Qz*$o28`V9gF2W#k&R#q#4K{oS2HyzQ(CY-}IG7yK zh=+N?)BL55g1S<9;Zjpv&2h@vnfuh^#Lfx|FB5bi_^RA1k*AgqP;=;4yr zsxl!#!p)n>_%g%;hDybVh20bL!^Xovl|}FAjd*+WGO_$DMq9*+O*1{sZv5l!nDPz>x=={(F|jNHfI^bmWCD{Lt(|;#uyqi4x%yRC>rI% zkjp)wpX4M)gWA6)!^|fn4F}d?#p2?*QS9hTJ6Zs|MgFucMr)ML7lYtMN8=Rsmb{&E z5TQ1zZF=#D_M>b(iaOaSUyU9ljpZfM4FeRu;>G=sZgQ|yC4^W;>&X91Nc$Bx|E*HJ z{XSY2M*?)snK)TjKR+DfK(2IvprKDXKIj6@;X%JGJ9O&;R}{Ece!~K{MKM1n=bR$k zC70^b`8_nGM708@ZEH)0F#HXlp1`LkobuQ?Q$w};7-DrJSnWOr2YeN-_7JPZ!DHS@MbdBCW!W-rwyq8J)M%eK6)|xuESj4>zy@(yU>)gJnA`blTw zD0n0_r^Xo`&p#kc+;u#oPy#hcm@11}PBS1D7Zngoo>Ucy7jpi*`x zJ-0ot1qF#DrWF>vqsQ`h`Jv-IMC~70p$K$68>2esp(yT+^(yP^xlF-N%0Zs`VmFKj z4?ioR&KnpBq1~i6|I2ncZS3D6~=4ygl#p6qH`_-io3&)Jh5S|tG zwizcB`$Z1tl>g44%F}UBrwl}kwFa?<`PYu4Ih>A%OHqRo##rc{Q^R(crYBvhH7Cl`=UP?jYCqpRR=iD+i)om3Xu3WWJXfUj8Su(S? zROr-_(+vitG+RfeqOAh})K~4!tkmk!N^PwK$oUi?b+p1z_jr?vJr1aoTwP6I(r%=! zp~ffcYHqHnsVY^CHmSLWuIBDEFZ_Y^U6Uqq*BY+@<}i9qnZ7 zlMZ)Q5$AYky)WDi@#XHS$TRkBjC&PBT1C8!Svsn)ErZc1tl&Ys(g=Prt6$yzWbIMh zl?G>Pu@d=kA4`j&FU1x+NjvSSHYc>`YDrXWIM;Z#van4z(E3jtpH7qWST`}#fX)ku z0)_$)A5n?K>Tehy4seE&_IU4x@5Q8dL|dfgqM(0C9wdTYJVF2`P5YH-KQLvxc(jNr z@J@es5WEX3w@z*9?+%9G`$PB+@8CPJf}rZ)-mhl+j892E7(#c}$P)N@z=|1!iX=Ay z2&Fuf#tO^L=#_+&Z+^<7PZ;Y%88mYj(Id2z4D!2lUq_|I{wzXMYLGH?`7xFMlExAG zPYwHVH`;jfGRiOVQPOK70Qhfd{KkB+IYsX)H|v%@m1tugKDl4B zt+|=4w-!#i*%9D^$Hi;Sa=??B|N2q!~%ua@Jui|{M)KCcEDC=CPJ3}A9atLw=00?)5o=^`q&v6IBB}RVL=&tFQ zcT{Z%i7w2*2*Sn?h)>Oh0q1Vw(Nr)22vg2IwnU@PJc@3U;n35^TbHWAGr>f{YAt-C zO(#meq}^3)ZK0)|)2ETp6$waH!*~WgK4@q|aKNC6jD9ofx*=`dkg{%vu5LtC#*>*N zO;pgYfg@R}(0j(0Sf3n9n&im}NbK}MH7TXYo|=BM4;BGu#(|(=%1c_I`66mjC+JNk zsY=d7lxsI1bhxIx+)?FgMJME@w2_s|ie(QRWqk&v`)nGdu%A(TJi^L7be(Qm#8=iq z4kL-^m*DJb`X~9X!#p&w2d?`%&W>J=j6LNHB7&B50`;_Y!XBO*$%&AsjIp%+Fp80$ z^dNJ(V9Ra_%pYoPogtMN{iYO^NriDwomvPpI(0yDHL|A~n z|IasuHC+`0wkrrurid4jB6vY0c2J^56Lw9u-M9_5_FC25leD+LQ2VY0bda>UC)&{= z>(Cu|ZhTf*$0%S)vzxQVveK&Hbv7<$IvJR{$nq%c-%%pL%DWd4MfdD5z{A#YmbIWC zhrlmPJ?bXizSGe%?TvfUJ>r+SV1c`#?VnnX0t~CyoFU*FSizQDsJ|*)K8@~$^yfTk z!(N?{x9S+_$OO67V^lG3#PrPSG5;|JXoY@|P1>9q)HSWqCXm^$MH|jkh9>a-txOP_ePQgb%HqgF*by);E+UBtIqo|JEV(5qQK5f#p% zY?aYT@10^jzgT+G&xQ%=MVxYJ#kQjlyH+?uyYUXh(5|`v@WfnW_u*Ej?>(lRv-6nO zllL7i7v6Oq{FZi|k4iC6btZHsR^r#49s;Qt0BOo0U2FO!IBx1r_cNHSn zqCZpp>LjSUI-Lrgq7ETCUnbL{E*d7shyQqTyb`v1vA51u4tWoK)`bl3ZH^O-jsX6Q zpI0#!V3}g|(LaBM;$_8~WO$NHatiwXd)L>9BlujEoO{^Jl`dMSV`0?YZuqBbqweh( zWBJY?O6!~N*?r5F@v_TI!hcsv9L9VfG;G)N4SO4S_3`!V$=+f#Hishgyju*BN(FeK z#RRWME;Nj*Pz&~C(w&_8?(jGDvTz#*LS)v5V$Ma9wc24m*07vhO$8mh?BX<>$^Kh* zahjgVZdy)pfnIX!G|f2lHly3jxSHsW!i|g#o zec3We|0%f;#jG305)-MWL;e@a@Q)wk9DmEIRcnHlp|Ls&1+8?V0L&7x5?j;t90MiO zk7(VA#X`Z!T?rb?vMGd?pBcCNA?qLMzl<0|J#u}exi5`=?qJFZ@=o?grpGn6_ik=T zGR+TJo~ew6cY_cE!!YL-oLy}fqB^Lfn^|Q`PKPCkPUnWBB{#(w|xDZOuR5{6dSg`WX`v2= zg$UHbI`{SgnHN^)cedVaZtrZodH-vT;8}18lSeSAj*I|mV0ez5(f+sHXm4+{zZj@P zHJZ&Pm7WG(;NRbmPO~u$V|B)fcmTsl`{Pk^l}ZoyqdbAd(2=2Fcn_+yP{SxA;YyG8 zqhmBaNy+krFhGM}sQ&d^6lU-P52(|uuIQ8UOtsx^lx`iNL9s4!g#Il^ z_;se`I+ACdXs9k^QJ0yn>&denJv&Jk5kuXpt2wC~EF-`X@4wU<6rF%4g%K&LhwW6I zfGK^a=>sU(e7)qbEo|-41*?y*$w{w$>gQ?;_&5t`Ts{VAkAyL)fgi~1S z-&)n~T7`;K)b#PbjF#(}_Ye5J05R_$?t4=M@RiVHQI+~6m+NpEx+m%tiD0kFnrx8w z1T(#~+f5tXa4xi|Aup1o?TdLB-i9Fz9;X?MU2y>9qD6EFN&1wL*wf)YqfxD7;I8x1B>4HLc za+1jG6iVSk3@5;M$E!30lLABNiedTkX4U|7Xgm0M^ZEOY7k@g~c=Ph$<>o8Q!ng6^ z!^U3@4(j2rA2zo!>CC|zH2fcTfkc1We)o2pQqn|!j=O1x59QZ*y>$UJlgLB?A&?qX)<8G^l<*E4>+2CTB zo}7*%45WqrUY-q1a zse0nBr1Vjg{2zC>jxp^Lzl5>Cu)m}o^rWRwFVNgkLaw!F+^kw{O2qX-W5eW_4B;{Z zvzjN}mdG7!| zJ*XzpVwW1p+U@bMhN!g>2ry5x4wsNs4(N(0+H`hoLE$|fb@s=J`~Pt_ z=?zBgPNPT1kdsa`+9-hJLS%zDI?KcwZVMpwm#2$)+`vE}0aih`kGVXn?@*u7 zMIfPK50P_{gzCj3QxXH?BZ;>Dj|0eeY1#4|)Ls#jAtzaU6n(Ce%%9ss-!~u=ASzcchQp1Js&jkhyZbmPa z&l`GxNyH{P-UAOq@7JHUDVLg4GwXLR^yfx5{R|Y+|B?=~J}02#MJs{T-A>dUKvb3b zVO|%I;?IuCi{?NQf4+zf3v=@g>66&D>;?gN|8e({635hCQo%4VKp%q$ogY%lOWf|p zdCoDd#*SKtaHgaCT_X#?JL$;otF@h^OtK}S-15193oXUs>#YTDYN5p(nJDkh9g4Q!>!I7JJVtlQ_b#)8n|@q(=c2~$ z-1%p0VAAxjy^l#VQ?@fHHN&nZgCv9(wi*F*hhP91MMq42YU@BTD)q1iL!jcAJj9IA zz~ZeDfZcFMRqz1f?d`1w=pD6-u3mAMwLr*z8-h^WZ?PW!D^sJ_oL+2#NjM+0Pviax zaR}1UfOOt!VS21&*iKee=4>JuDD)0^xG4xNAO}(lpCZeuD~J~eHnBERwca^sgTL78 za3o?5wa`+?C}jXli=pOhvgAOwnCT_}Ye1C0p=~ejOJE8#z^C*;upb>IWEY~)&y)+m zPk@>BeRA6Yc2AxST@=!xb|=Mv`ItcsR%+iBoTV$NxN9k9LH^W2=7yFMHLrwMrQpK> zU=B7}^yFF>=NbVN06NHzk1fhh`y4nDH74a`tD*%LX;#nNw{MY=Wesgg;2gCfDN;SK z-uVPtx*=IFOrF#KxCzS-Xkzl`a1f79>uHVgN6mJzu{-!4wPE!4nX*|=BQ_mH;RItkS9VeLo}!z`J_dYu ziW#ePEJ^X;n_PS~N~sauy|~k1ZL4rs#CfbaOH9OBwBD*Ey24U* zs_IgfMM6So;#wV5I8-nlCB@r4s>J;Zd?6Hdr>YCHHTW~>oxYORD_Xs$=b8l~K)9U2 zOErtoNhYjJsYdrKb}dAhS4n@9lNXJSApL$B&d*C`wJ7_n61Gvb$A!6`=4FT!c!d*? z$3)xIBz`CHfV7>R`OAH09Vzq|8H(x-GS+b)!we8hTi;ax?!dlV#jl?z)EE5uo|@Fw zT%Q&fnRsIcKwlL`h;!I*U5eTLv@b+cQw70}RVrHpV8HEY9x>VC& z?t~lMO*Nf!Z7rtKQP8T-F%Z*zTa=|TRrRH=230d419W1R64sF_Y9FgjViD5uUfSOx z1S@WAZe6_+X08m;?2t-8IpW87JxCteFiV#7qT3)|%;z53SLSPLrG*6+Sy5wMh%&YLx(0d8N8Br|g+*`4iTJrSH+Lykv zNM8t;Q>WIbx@S$?Otjt&DxnOhWdV2lP%0yXYf~PO?8*72lvY`IDj9RvP$KrtpbVNf zLv>DTj^IiEs6~*99lvxOPFk9R%v;aPpqkd4m8k+XtBzX|9Nt2HP6yEeQ1}7o<)fIT zW{cKqBnq7#kXtF)&er`~@#CFiloBXS-@VQxBjxmK7H3Jj0&RC*D$MWOf_7oZbeQsM z1SB(8RHbCmI0p*Sv^GMLZc)rt?fEA~Pqr;tPe>f0PNm0saTG~{HG-*1FuzobI2=BW zP`zDNZ>hMoV6d_?Y52xna4y2&UBQKUyV<~sh)jBBi@ zIl;>ctr?tWeXyFud3F1#2unD-(yY06rg}5rqo^6bwP5sWcFyBgz~J1We;3b!Sm%X0 zk>~nItO3!K>L;5ZuELb)7KkkHjH1@Z7yQ-jkm?cN>o@orrat2!US!MXF||@21jBL3 zh*aEjRTo1c4sKL6$e!n_KC7%*2X^m_YPjRzzGxZy zJ6GjBNsVH)>(up5$c6pbsGRVvr)4*g^?oZ*E0wzGIA9)=KNuM9p!B9`{dR{IXvZ&z zEn1C8@4vErz+7T00PAwm&wub%&Axa>@%MQ`R+{#G9(#ULcUrAGxw%7zC%((2PLef7 z($B}k#N3{WXRNkAi2HK;$!7X!fHuIjG)z&_;hT3^c%toR{=*^>LtC{WE29FAk{!Bp z&CJcEOaWKri&Vz4aT>tY!SbGz68xdlzQzc>t9=zr&!cL|VF>iSsb4Kdl~s!W$?s)+ zYnL@G3Gemi_1z)efhiK?nZbFY?*)6`S;8%mX|J)1DwuewoP-ye5KfZOb^=qXEv+**!>D4!FR1GK>gaTc248&)s zsJ&od-LyZ8;o@f%;6rCSvFk+IpTv7@mIXPO$}Va=NT~@GcTm16I@x`Z4%_1{bmYJH z=WWjp`%4oEi2UcZYXre`lk3(L?KJ0U4<~rGi|H)gG#Zs9F>TmQeGeV1$*5BoX&5q?RzC(7v*%O&R{ z>{NerTvGbc(y|5i3-17B$tLgJv&y1bsk)U9mVdnb0K3BYc|Se^3S*OrVSovMH~{KI^Z7~&GEM?aVXgYK9Z z75%m9by1_*f2X|Ko##Tatr0UU^R!klF8v9RsKFIq{Yz z(ip}@kxf=b&KpydV#>V}M-kY;tj9IIwKdt za$13nc6;2@CFrS8q|-44IvxM>+qj?QNn00@XTR8+v^{jnsTak9-EQg@cfa11GcX65SmQ^Kv_BIyRt^qSc?_+4N1{*2VR)Cz?boy@ zTeTcuarpyd0vWlZF${eZ1gk@0tq8Vh8zQZ%=pDG}&>4vh^WeADgGfd1x+^!XCe#Mk zyCdO&B1*W5b!vAVy~bU+p693<>kgXeT@9PO#A2c)soEG=Gv_yu2S@mPIdx!SJZ8p) zVS%QPi}dgK<9hycBrjHKHLIVj*s>^SS$kyT5g5xmFA9*g zuEGMU!BBHHaA*GJxPbjG+%<{{1K8yG6RKS1X=lq*1mh_NKiAYudeFFvi@)8^`;0>P z5w1s5>2zSl?ZEPk9UwsJB{_TfAv;MJahMD96@OUil$wHD4Zh?hljG3%ORG>5LguD6_5}10>b_QOUbec^X5E;ls z967PHO_`2m0g;c703~>|O%;f_aF>>A*nt8gtdjrubMBfS%tFj}&L ze+)-bCtN#o=drVL`c*u~o)>E|?sB**W)Qzg{E|TZMTv73wS^I1#DtH{P=4TnY$3xh zJU0|kG1^x*5Q7@;BL0>={NgPmb6~|Y3tou=t2?JjP<7zF#X7lwGUY@LELB{%>ZHq1 z^YQTns30yzn6Pwc5}I%Yb$#GIQlkRVmpr#~ z@1?GysVRS}mEYg*G=9Id!vE~xKdbtm=I@v8b^cnZ^N>5J^8UE<;uX;AUy^uO1u|3b z-eCNbYK_y6sh8B*npgYBY&^`JsuU>2d9}?^S_*a5ahN~KeuX6a;nfS&B^M<{&|_SEBk9sn=d#1VzszErWW5&p03Ky7^D1Gex{@qm7UWu^=6n7{CI?*tSBz5 z5TOt-v|gr89URngnxfz5@b`Wva%V64;mwYkJG-;HD#i>=(M7ek&rzvDv*se!t|>F_ z*0o4OX3l&w6K?_0b6+UF?M<_2C{ZVb4l`u*BPpRk%)mGea@$hJha@GXLM$2$Jj(Yh z;)(LKPwGv!z#3$*o4~q>`xgQvVoyPqD9C98wi@7Yfbo;`3lIA|^Hy%V)7-18bL=RoaMd4EOL=i{zh0KRogq&`byp#@y>4;pJ zyTGJ-csY=c*sB9WGo{CAJMN?BXfK1_AgfKuk3H@an7B)hnRqhJNeWA%`9)}IUOZZ} z{uk79E413$9rhk2D1zTkI)we8d%@1;;@FQUeH*_eu~EE`SkXkyjRBYJn@WJVJx=d6 z23#i{_(KoG^PT8#I*-nnMPJd6uAsci7@tiXO#hiSlWAi|CKWNO2yoexbzX`pIz*Nd%+nkOT9t1#ttFx5tNFJ6jN6>pq=d@hd}|p*2%k~f zTsYX?c(r-3^>%0Ths_UwkA7vOtR+D1KF-MJypu#&5*a;-~HF|taL6~O5((W^NFVLB#5;nVa4iZi_;KHhBnm)oax)z`uoIEp=4T6(nn z8PtU)A9FP7`|lV~tk zMZb8*FOKz#9eVNLzJBpv{Nk~G@mGEkn`UBq^UySN#4k)U8NV>ijOfK9)66-)FwOj( zU#Mnaa$dZ9`)8P;7tXlV`;YSak^A~Jzkcw@ki>=rivjMV_zP?XiYTfzX7LheBX=lA z8=+v-1B8`wG$7guDBG4WlPVpI&tu@h7~xUegGdi9#9v_8EnlD0{r$8^2Xi=B%jYne&c#)j9yW<=L ztcuZ+@=|Ndk{b|-phYCnL&Oqt{K2QHI3eTPXI}m~>~4u_)0>;Tfi8$#iHtRl1nDH!7Q3WZn$ciGtGfW)3hT+&Y8_4yu|`wR zI3 u>zL4br(Z*O^4|`!g;V^rW#gsA=Wd9ggc~=C|Tb^sN2j^#dJQv1f&m&S{U|D z_8jAB6fw-&+%&%jo-WlDqiJMaH!^kQ z3Gl~d_=L?8%}Ll#gwaMCDOv_-Spc*XX_8xuh?*F7n=T^be%=LX`XvGglHrPv9>;)>LfctxwKQPSvTXy_90jY&CRt_8cDEaH_)5^fJ~3g?g_1KKfB-m{IBw>0dfx{R{f3)uV2f%XR^XCbe*1IZt3H zy(X)BdT5LzcWl!8ej+mg*zROR5@KS`$9WZ~t>01V3p;X@C(*%5Vhx;7;?v@AV4o12 ze_udxK;t3nP4;oz{l+8YDatuSf^Px^4ABC8rgcZ$upYU~&zOOb1^$|)G{IBVaDdh- zv03jCYC>3HNPG6Zhs=<@W0|*s7$toN&k}SX$DE{iJix;^BLEgDY~?s3l_!;`@ibb( z-;`3)V5bB0Y@Kf{ZIBIq!v_CX1AYVGMwP!3^ko8n??E~Ik7eLv8~oo5_?W=|eMa!F zUwFE#7Tp}vX5=BCrgmSX|T#}^TnGDvB$MyG9ewoZq%cLxY@Og^gV5`H(1XD1ClU~ngg1LlnFx`h z-maWite2zlJ&&qKu=`;&XNRm-JYv_?GY8l^ z11xJTy#winsDm@wjWvQ0e+B1k1IJl&d;!Sbs1cSr(WSICvpg41YYYwIF%0vq00ye&sjZ9EC@0Qj-7bO5>X?3D>A%n`e zZ{#3NEo(+kM3xySP8r9K=AT8hGTwB*&*xX8-(vzv)s4EePZj`QnxFD72c2XDRIc4W z*Cv=*h#NvR9u9pqboRMQhQQ5~Lp@O$^5Y&3EmtYI&#frehIn`~CL!C{<@U3Fg99K- zs2wmi)pO3@AaMg`6HRnSK~nUV{|;j{g--;S&g2q zn-1&qgxt&;vSV^(yZk(0S3{t_kCu}sXnn(;0Cd;f&bs4XpYDHQG-nn2KKn)18(_8@ zBvb?p+&muOvFIonoh6BCkK#k(&1tkjtK@lI*8B#pD3nr%e76T2>NzZGzg9bgCvyJ8 zQ1+EvpDwsymCf)(O$DbMGPdI-dKS|isXqRh6BlKs$?1+U9RbX=OM#B*Jc7O#&$-17 zgl0Gtb*z&BTFE*PN~sZ;xW;~&4d@=7TvPHhI7)Cl5ujX4427$rf{0lTMny& zDC5|b>Y^U6%jwj|1@MYfk^vMB0>*))3j5#@QItnyYu=lq5OpBcMMwAtqv^)%{>U#Z zLOjCMSp{NLv7g(CLy+cHhb_1wg4!UUbs+G4wedR8`Ka~dDUFi_GcY*9ouH}>650s0!_fyCAoMJVAaZ5960_1W=7#DLGi$S^a0?lLz}eUS zGK9p%b;UYtHUsNLonug?!!mXVmfjRG#RcpmZ6G9VlB0695d?~h+@#-lkiqF(TwJ4H z$c?DYHOC3a8;aSD3*%Ulaqy8qiy&7b4WrhzD1wwsD7{HFS|&|8Q0oYR8SwTCWv@oZ zCM_(5C%4m?Ftvr5&4f=BfzVni-im0#XRW%Fv+_hXf)7#4OQy>tkF+$ z;P?%)6NY_RMZth|CjKI1$|BdhFJfT(^1hft)GRUDydqKeauVqyXU#2H`j7l99^fg3 zM3h#v4UYr0$;v86b?RY!NXN*mf1=KjhewBE{rb6|or&HW>5^@T30!`Pnit?7e<*xs zSoui0X;d3W+OGqh| z9w2^yisX&eprP0Mv(ui7pp7epA+o^V6vM0%X3d7d;=RUD%<&$Lz=XYOBScDf#hJEKc8n z2}w1A77sC8n{;n|zCY;AM~y6MwhrB-$e;dmoWPd%3Wa~8M3hh^AXW`iIA>rqMcw+R zzhMnbjLofoNV;s{!fBE*MY1GB4)$2SamT41wD}RM=Iv~lG(Y9ha`SQX9#@9CWBu(@ zPOVDr<)`jIeu6Vh?;_gBPd_JpRM)=D+9Wx@=w@S%HMrIP0y|wQy2cN5O@^xPKSZ0I z6bH!xuwW9RkK$}a`!8aW!Wojh0H{4tnjkbX>7{??43ACaaq)WN!w)JU?e^ARH-TtZ zmX_8m$f$<}7T9T|6u%%k)DrF?nwg)nae#sND?zlZF2a>(*@+#i|70-i1bPZVt9kj2>FsZiU8CJ>`)R6_-<Lhw!%K%;5zyX0F{CGb|(D}la7>N8yldEe=pNfp2~>3x4C z%TyIPN%~%iACf+9>e275cW-_j@)DH25*~TclDix^ZuibV7yYQ=v|wn;+9cKgXeteoU>NGG9Q( ztk@i9203I}qrGQ0zkt*Fxn-ETUlmrLw0m(w5^3_qH!*yAz4CCS^{~0r`dyy18U zx7^%@3AcfQ2lTJCySMktcg=;xXVu#7-u~CiZ~Ltij|IDZ!{7%Xx+-0NI+T2^9c4x8 z@#JChiYh=`duI#ZwLIXRWQ6EB&GM1$YneyY?f4j&aLod=mH!CEUXV+B)cR#l;kLQ> z%t}JJw_n!CxQ`wKbaBfO>k3`n%5k0udiB}r(zo5^#*_WM&O)sK5{~Bm5vpnr6<3D| zKNN_THRBPKIB2%v_?R5(hUgJ@$sNWFsw$j!yRr?SAm@Kz-Va|2RcwY(tZDIpVrAJe zg0+%h4Z|ynl?-<%)|2H~tfW>~uu4foym1t3=slxYMeh~GTAKYAYcbm|R?!?kP(^Y2 zVy$s05XuBy-!sH^eBk=NV;YF7_T7;opr=FDESZ@dEwYm03G(_=;csMZsGUpMZb zjM3(ZqOFM}WLARA28LB7uiMB<6{?(VBdzh~H+1~KF1+MreT@256xc}aJQQKxw1M9@ zwdSd6HMuK#W~o9q?@C97z62^9Bf3yy1&l`fOqGD&t48HIu}ge#aeMTJ-j#HSD^P#< zCv``(Xl`%#<)qG#)l)X0P{}Vy5%JSD+dq(j`JtZ7UryOLwC%R(d)q>*1|S- z(0XwNl$~_5qquu$tW@B{G9<`REQZsIKMcd|3Lk)P?^^k%p&HN-!?rVi0y=1?8i1Pv-MsI-Sgf|w1o zhh?cX3R3OKG%=^Kbz@?9jY8qOavLmt(;hQp${&8rmPCb`#(m}oQk4Noe@-sgumFx$ z?BLze*wlA{nTi2HAidA3SxZ*RGKv^%sO{S~AmM7&niaf!t6EqSbnsJC=AovDkt@|0 zPGm?3qtY1|@T5*i)rwBdndX&R)k5<|r^Bd$p*I+Dhl4nUvnpWc5O&5xh2TF9hUpg! zXhFY0oa{wknGs*&(TgSk|Dvo%_s>ncB+0Co5rU?Yra5|rQ_<;gjiKDtYUt|nR(Hp` z;DK7OvutAMxGH?E6F82k-fBfJNf#=EKZJrH(2fq#)+?3}AZP_@l^Mw(tei^G)@HQ4 z49(()Ce*KD6LbqsKgeK7$0+Ziw*JyZ?;#D8F^cWaf>F#jv_lpKqY{iRTneG@Xcwc| zu&BD=Vi69YjKv%S;aXwq;TiKENbgCX7lCeo$zixIk@b}UyV!N;3!O+psZyMpyTTER?a*`F4Xi+c~4^M&$XxLJw}d`>0zKVO^%%TBsiOV&5nh^I(!DyfM{)5Q5Oe?x4_!rnv<}Z|rKWEX6vexKDi_XkL8w zP>-z9)g#^O>#+^u3kn2^5FYKBrc~`+p;JwA)5zBWVR(=|hzShICu~#AChr{yhu~XT zGl7%+{9%ZwLllkh(2*rR7kU-!v8(GOdS{iuWz=WuLv3G5?GxE^h}%Qe>fx`w^%zT8 z=my^i_!h2+HjMd}SNpT=LE7P)ZMe|kBSZy#MF3oWSMx1R0`$h8U@mRX?F)7>PLH*y zgh7$Qa(-x5!lDq(riVNF3fDBO@d;Ugy{O{>I?vakb!`5TN9 zVZmW-k5cUDmnv|8XovYKkE|XTOee_)Kx`QC0@*mQ1~QDJj1uf=a%is0dI>NG+Rh>; zs)6XEm{T%><|NLym-1MrxuwAQTE(Q60fw*s>Mx@Viyl~GG-L;^9pQ*j#D74Fn7TxKgO@ha3}_p z7OPP^6q<&aJWsq~*=LkV*rcN%N|2V3Ct_A)yQ?44W=5!K!NMadhXs%D^9p#x1De4j zK85jEjzao81$V5F!436joOVZena&F;eE*E1HD(x4y)^j-?8{bF#Lr3KX@{XFS@#R; zTRP~cH6YL0JR1)=WQH23rQAbZv|6p}S`%WWJy2`eYl~xyC7%hRl!F z?IC&b^ouuj)`;ku&bj}&`W0Q~=X4ll%qMFk>Kr>1XKBn0g6z(hU`Fo0D4v2$Jv#Q0 zfroSZ^_Fcu)>Q)V$}i}A8#!~rX(n7W)tZvVt!m#d)}zYa-gkefpdMHkXt_1NX;QB> z7oJt0t?%vaRcqg9`kIUKV!zfp0bt)PLy-zbm9BhOxvR9B&lOQKqYKb9Uy4QRo<{o_ zDfpW5)ly6|o%5wUdj4W5e&R3YI$3=+Z3QYE)Z&rm1@uT=@L^az!bPpTvjNfV1H z{!T=^3KLGH7G?;rbECs zAYAd!$d%sVEs+iAnf=uKB4rAfVF zJM~1HAEC*rRGdkPA!YHJlz%Bx`Bk#zjp!ny+3r$Q__gU83X0f4>18x*ORFZ}P_<8m zNVm_wM7e)y36LL>UPiMF=L0i-)no0wif9hvmpC1DogRA$>JVVs5J{eI9=v(MW2A9V zFAolIIUO9pNSuZH%z5N^Cx9+A3Muye5ITNHbgBj3S$ocj(}GNsaM zC|`+<=^qktU^Et{Ydx4ELhEzI+C8j>w^eWt={Ty8XGHymZY2&*P?Vgf z`6zq_qd9PDQ1^`F_glk zzz=vo?0tpz@)bT5zUI2_Hr6f3E`9d4CK2NwEW*5ohRLJm|1>$qVEjtbjK-IX#;$rj zNv_%5zp~6SOD{u`i`~uNm`I{g<;x{y+(c2IqQ^MTv-Xy_nA==gUkWmbEg8iiF%PW| zzm&$haX#7-pa{q0C|h20U;&@fWff4WFvtc>-#QkMQ6t#9hTID-`&UM6hZ>NsEPil( z8SC0aa05Y0&+bgp)>WofP^M?slc;FFVV*%TR>DG2IbN?W8eJ8=|5*7*PlO{Rsk>+! z&+d${tof8e{RhMx3xPKfcCJmCw<+;hLn)DaG!CyK{M?vbF=wI7kJc4Xk|3J>S58gSksoM zQB_bKQxyk%WkGJ@ctaALHQ?Wv0H=^%qE~{24Sh%LH|;FU?F@gY`X^{D^WfUNzOZv$ zeBD6SQHXFvok>_grdJrhEuI8WaCN!likSGviX{qXA*m#cGo_*oiX(`y8^|HoC7Rn5 zL(G;`B84cFg@lkW%5t~lj0zNm3_zgz84v~>mb(@x>4*X@uLuIXWB@>N`}1#03fLY|qIp{cC|rub?o(9Og!Z8+J1-6YN_#K$&h0P(nRtg|clXM> z<&-{#_Dj{t-`HkJBbjsqqiHg7k2*00+Y+{?k900nt^4EG*W06Ml3-TpZ(w&ee0j|;?TqXTBBR2Uc)3tqqyLwM}tvU|7<^h|~% zm^kqoR)%P(Ma^JTTCyyp6vclV$K7;vK|zq?VTy@cW-*=>kz&V@F0N)EpacG*6)z!e z77s~X(DufmmxP?EvTP5n9r*TVzLS$q>#J?bgXS4DvTECcNA?5B->M3Xg0FpfBRgxK zQQM;5KCS|a^vRwBHMPX7ez>}=z{bdG4UBY5kts)7JBjhcDef^ep!}XVMDnag=H;GX zIjpkwsXsIJbm~G#Pz8?-_PDV*AP+-`fRlQOla<;&8p{Q5KU=*h4p)xey~Kk`D~0$) zqhb47!c?+j6Mx(%l@CHSu9d>947h@erK>@n?B~RE8g_KTtc>XZ6Nr=Tn(}fwY*S#n z^zRse%os{vZH0C)mRnzXqAy;H2Jvi>O*ZjjoNW~@cS#ne7VukQUZ~d)Lv{9k=_T$? z+2BIFO}HG*MJ^Aux>`E3qnjh{ko2vdUM9)lP_3UKux<_?K8(@h5(Dh9<@hx`au9l% z<6@4@8n49|CL|e5sq$*v?b=nSGzJFkjydr$8!whPsO=iE*>|1Pu&?SH0Y!7}5XWYo zWbtfE*eZ~Ygw)~k@Qs`>d1|NCq#YD0(rgr`LZyI8C1jFHc>rKW`DBru%7^_ok!W7v zXXT{AbA*2p@pXfvp=>3ZhOxVb?-&y&lD~8<*Ih$zIMFi;vgIICfWKNOrzI;+n?_*g zT-y@oBG@&)q75$19d|CTf^)G#x_OKOj}Czn4c>HvZglW%VVLNvN{IEV=q@0h3k(() zzg43i>C~N?<=U4*6sClNtDR6#CTT}qAw)EdeM+uor-b z9MeS{m0d&;jnzqpBrTYTgr-#$+7a{pNFOO-u}B5FP3};^0nZfh8L06@M4M4Aaj6I3 zPmTbU9z26O$_%NtX7!*jTh4rm&w@gR#qYU6Egrf3aVApQaRW{PuJ&(hq|YxjdDL+d z>SpN&<`4e|=Mj^1x}6T&6g0_lE)M@ zd%Wf2qdym%2UUW;+|UN@On^Kot*AjgD}mZFU}ZwF&kKrHi3yu+!SrD2&LEv<#$B7i ziE)b5LMq&_kjNdE%869xGuOSxwL3975pUZ87daB&%D^`E4go+vviGTCt`q7RwOEZ!zw}1l4%z! zFGr1}zfgW8)&c+8M`(^19Tw_Te+vSg>M0iRdl7(R4YU+g$(Ux0WKhJDEw6g?@q=MK z)?u5vSGW7>3th0hRk^A@8(74}@316SrR-dF`l#KM!UP( z%Wr?5@JE3e>I_Qz?NLfDJOyBc)gf**=-y3=1H<-IiY?V=j)H@54qZ*op~MCer2}%b zN!|#~AVsyK(h+4U2!s4}eI?X(6aeGC|yarDQ(3iyloNdB*fr?M#HJ0c=Q^NJv z>5Qt(;!Tp_y#AgUw=n@?Hq>e&CRH1OQ$Dxl2Y9j0Y+OJK{e&$(X4z*P!Ja_N(Zso` zrC(?7!TFP7)VN$NOYAe|3y2x96EeIaQdot!OU$ z1)pw@@Iykk%!qC-G#$!4yQ+HV(m!SAQIQe&18S)JiBy%FM>3hKk@w1WKZAkmuf>&7 zx2nR-zN4^t-b+2*lc(sK@lA_UVi+`i3kt^Etck?&tIem_Q2I0ZCLVBzRCONJT{Tk~ zOFRm9CP}LG;{4RfDFY|c`(RCEAjX{)ueHuO=%KUL98aAx4zE7btZ`AA2l-jTvL@h? zD~8Z1!A-b833rm(HVw-wbwMGC4VuY$(pInpg$So<``$=Z{p!jb>6*c3f8*pXRulgG zp!owahU<~L7mmr0yZ2!#xvRjsOzzm(E08x@Cr&9uEBH2KaJFVRqWdJgLtL_ zRW9dG{r&Q~qipioGaNP8+%qW_E@72t@JHbqc5qhi80z>HD`MD!)mfZU?8vIR zjTvJG%S>5%V1K5rppCTV%HlSNa0`Cfgs~!j$36*5a-1{~dtiVx>E?L->*fBG#?_2p z`?4F+)p7Q;tJ*XKY!qnd=K9vZ0hZw)ji?hjFiF0enL=*_`3iBU5gcELP)$ul`Xg`* zbuVJNDXlv9(w2Ha8EwdedsWSr83JL|E-9^+8fK}k_^!fSC_v;G#!oi0Uz^^Q>bpSf zGm@+cD|LM$Q+KP1$^vS!04<&*Be!DMYQ~DlptW;|--#C;zt%0s?cOJx_;(2o$|l@4 z*vJc;rO)$fn>U@|d*}c@78WSi@d9ck(KgS7)a9fmI(12mrFVbY+Ck+xn{;9hPqs8gcFiR-B$5f-ED1Emb zJ#H>HFiq&jhc^%J-|C!s1~(c-mdOn=9zgAD#nl{@W`!%L*mMrQNv}Z$=GQ#u7q3oy z4X(*e18*h|4PlbYa)I8IXA&LGL$Ltxj2sBlljcB#xY$UsdzYCoc{|Hh1M%{8?V1T+ z_0LuD^xVJ8oR@m$B`?v4Wc|6JLZFR;LGmr$PfbvhOQ6PC+%3$Sk+9x83Ux_klE4-x zMB*P7uBvcKzJ$$x^^{0mF@Z3qCc!vV8pDUqt=6Gu@>Yh|upwb+nFZsX2O2Ko!dyaG zrqIs4iXDwp-LGi7oymI!_Q2aW!dvt|db=py8`SP-?+s}0!|}A+?Z0ch4TDKJp$BLynL#8RIqS(5nRa922VRB2>G(B?G+;H@BM@L&er^XOe zGR5kMg_c#OaCcjCQVigV|F!MlvIOv%i7|`MH7{zbvQ{${jmcVmmQwP7&^Pp&%9B9E z-Bm@#*0is=m7K`Cx;)RjSF{j;R~I+a?NxCi@#^9{-(Jx|L|$FoOtxncYV#V)Y}w{F zTb#QGj;Gchq;+{y^iTn}meRXV-&aL7+c8z_BpI%`v!_f7I;9ly0K^6Toz}{Ufla4l z@2GsJmb}7zkMTRafIwbIWGBs<^cSpTTH1HSN%$Nxei7Aog|r71%SN0oG<3Kh>T{~@ zF|6-{@yPlPPu>Z?c-P@gt!%MV=XRpRFsqh#=J|CuT_;V9V;SUdlXW}K2pM{(dBH45 ziT;+UWXO7`CZhh=Nz1~<9Rcj%VGym93!CPob86P_UMK^ZTses-#VbdC$E4NSF#t(Rz!^4vY&vqRyEr)-VnB6qV-G$fFu-OHE$%7 zxCaY`0_jmW|xB4dexL5TPrPwx)48W8hyA`~w z-PT(h&e#Ryj>Wo6nlKvP(nIypM8K_RUz^%6bZ&HOJUWee+3W-+M`ue9bw{q)1Jzh= z2-U%B-`R$sQ>zET@U5n06?{46EXx}k8BmkXNgV~v6&Tx1)`{iC!;>-P&eX}S>UQ1$ zJIgTJx1#EgJIKj}Z}%Ad4cjn`#EfN9@-r$`(3Co2i!`n5@=g3TOW0LLbgbZ0q6=(x zGA&i#5c}IVKnC+>_uYm26#jxtj%HN^&={ zK~WAv_C=DOeG?x-EJ*!f03jI1Xu{zMT$bFv-fr<2Txxo7sVzZcV zEYVRiI!h8j*jZ+bUnqUku$N*?06N@Ukl&069iwMAM@NV@{nSyA4){xoS6}y=OU)&E zhS4V{86fI)%pQhQmK=4_Jw-uD&H+Y}3;hb0pJkC+CP?nsit9A`V{#s&LzZepp$Bbv8^o71S)LGStPgB3SC6$q`>jBsBu%0xD(zoIqp0)}NAHVX!0uwhK~U z?UI$aQjg%DNzkZ_s2;HBM1XJOxAh4A2>`T~9Tb#JpSx(QG7LLmyr9*J;rN=p@y9t; zY<5214@k~4)9F%k`I>Zk?X7`ayW68KY8p}NhMDB(05FyQ4w|++Yu~FFYcBb^7F||r zr9@zZ*%%eyqflRk+o%|MZ!VOwu%wRO5<}X5E6~Dp+B7qZ@*tAvh6GT$ zE_sq1V|LJgEt18PT9D2PREZ@!S(_-Pd6acvdQa1CXPETMxs<9`iI3Wq>BSD3{VW@V zsa*#sF?N@#-rAItpFZ(5qYV>z4aK#zlMEC0OvvU32n<8B#g-WbocA$CTr9BVbbLrw zITa!$-1<*|Ri2Q-0aIt9j+UG?DefBCtSzzoc^Bjb@;_g0>wO>D{AHE z3K%vCe2GX8oi3w8H%8%L^RN_%wwq_l1KP|K0!yu1gWoho_3bq&GS=0&nzcV&iOQtT z^=VCuZ?mvGtHMMt<9^&9RjDjm4}`289PVMobbT(KAeU42IZv{Q4i#7V zpD%iA{&_HAGIgOAEX~%`h4v~iMNphHxjCBw^E&&Tx_Ufh!!ei_GW;?*vkzJQ1M>j# zZah*^D?r3n0=k5JP)O6UCMW^7AQiT9KK3w6BF`xS}eA!tL$0kn!)b6n`JqkLDi-BUDDg^ zWW4=eLuE6{MDP5Y-Zuqf+VW(^^&>*by$P#FiYWPX>+QjxH(r0-oV3G9m973UUSnU( zP_%L{xMe!)(h;DXu;OJm4|3p~@qS^waPKjdP)D3=W48;_JC0A-ZBdih+1XihW-`M! zd3%@+Mhyk6L2+G3OK6zRVKb^G&6B3OrZll)>*k7*u4^%F&LQq#JayHj+96+F9&&&> zx|pj}YKOJo@b;jk*4egs;aTK(RYuTP5DrTvv~W4O44F*EMe%L=CC}WP*2$Us9<^22 z_c)r%PnYqydhvK{y*D=ba3bcrWdvs(h}HfkHg3@Md9FYITjrM55U)a3Btg$WS~H(; zt>Wc}fI#6Z&{@ez)gq_@_Y}ICVVCwCPG+9+d;g3L((CN(d!)FEu;$661;CVs6XsTG z9Za1k*AqqEj!g;STS)#oh)1}`;FV)hf+eeqK#bXEbTQ8zpe*iNRO*G;iz!=S2F-W( z`ZDiJz;$G%!-*1^2Sbb$iY;fu3Fj1l=kW;YU*w#kcH1f1C@Ho)m1v~k46=~13J~SH z8|0Z41VO#QWWBq#BD;?Fkmu$((X;Zc@y4<42;1bzLoQ|_^)$&dM@eLx+fhD9+E*9% zg%Z)IO6Sh-ymqclql{*oN`FP?*$^pe3VM}g?EAA2NwO<+U|e3aUL3)T6?$ zmJrr5xHa90#3Z4QA6m)8LzYs4##T+sL1CU6oDlC9WK4QgF4#xG=wtG=DSGD_wa;EZ1 z70+Ep5F3+`XTOSl;ek>3lwg?%!BSULoN((j3`z~md7#KPW11I%i8W&^Oi=%=mWc0` zHcc2=Y2NpRk&mOaJAE%vTd~UWhQx1+LNf)1R2o9B=JkvmP7>Uyq0B*3YaT621}w%! zsvM(~zfH6v&~S=dO_>v+KD@94Loe%$yGb)SXD5So6MLJ~n$gdj&);vn_*3-fjStb* z+n+XH>}n&;vm_fG(fBU1F%%{p;@N*eB!sQQ9}XGG7(X}430zE_T*TnMn0Lw{`RV7R9|O`}$~6g00PB}*TjQV9-xTF%TH>-ESaZ3Oxc+gpUPzu zo<`BSck}d#TEbwKHXbSmjwtQ|^GHXhJrm!d*XcLYthKF+9#GK(U9_go(*-9SrQWgQ zaKfVqt2qTyOpL~dd{+?|>%LI+Bl@C%R)}3(wGF#?QL}Q0l+M&E>OhlalA!peyuOP@ z@+_iJU@ZcbM}uyx_ay+j0q}YQ3}MV{&9a(jtKGiN6rrTPeB3@2VC0o;#${>1UcP$+ zB1I>W!H5THP-wg1K_cMiGbJlcIaf!nxce1t#8#u_=(3JH{s?}rM3?((R%u1V#Na7= zfz)Rq33)Y8N3)xqRHZ2U0xC|Q!{cP5v9?K-QwXTyq|u>MiA38Av-!5Lc%LaR&%l%e z{P!Qhc|ZLpO58TLMIvG=I6y9}m!mOqGSm7emeDo${g7ZZ7MS%bv$tDi+_%K8TQmvL z$D9xER%#Snqd<{qHqN#0pOzJ1eG9iPI1;Q!PnMP*EkAj(^5FiX`%6!rEHkqXT&amL zY#P;2Rc;*+EhR!zr0wALD=aRnyC$$5jQ)#m~yY9atxNMNwJQG?w@A)$hj7cs(iy*YZ~B2yM@4i*;8Y0E?u$RRGWX)0$!P(t1qgce+3M1_-Q~uU{k_gYtpHN;9-vzavUG?l8a&o?wYOQ{ z8qY6N1_T68i$of+JJm@ZQm3F-`?aqtm%7gOcsP6?r_`}sn;MRwB)w=G@-R*P_2-}T zye@U7O_m6Y7ID8Di~uF5e=w+lu{_faK!HEULu+<4so;>EazABh-@z+(Zc#t)T4=0W zSgKp2-*0{bAXS)%8czVhkv=S%{^GX{t!6Wsmd6I4=xU(IXR? zyBe>=Mm&<%*m%iUI36YmiA8j7IXvlRM{)O%2dkn1sh(olAEYz5qtjAb$i(XQ+1$}-$7 zEnIy2W;zDH^-Weq-EY9@yi%)LXZ#IP^s873m{ZhbgTa7;oKKAov%#D&tdvgZP@kW| z+fxvaXUU<=!Hd1f#R4tLz9hqvuoJ35*V!)Zf5|XKAi4@`J^6Iyzr^M*i(O6cFkFB{ zdr@uA6bG3H^~?!s6Rk!|1$DI(40)Cawp`OhLss3Y+EJ40%DtI`?Mw|Xqa7jRezdXu zVrvU1Ud|F6=S?H1Y+{vPqcC2I%g#S(gCy|Nr$h>t%}Cx(QyrP!iVLMeE%9wzKIo>S zYQ?qVn4J1(gdX$Zyhobk41ps&yxIaOp66NSm(9l~VM#f?_o+YpME88yKIarfQjQK) zt7YlwZgnB(TQDY!P~IsHDbSy76?nwmFQM!HRFbAQ)2Vmz-1137r?}=vlj*RnuU)m~ z&c0OjBH8+>Ooc_e*M~$O0D?kH-)7j*@<`%*87#R8rKiPA^Py-u#Vb%bniYwFym!q# zn3ZQ#`|AnIlz`t_M`dLwbz%*g>{{V?!mKmAZZK9S;r1lFUOQ`J0I8 zTPkHUnq0**nQCK2nhm8T?{mD*C;!;6304=T1WqW}7%AiVH*x>MhQl`m{uKpZ5Amu>!ik;JgB>Bx3DeM2g4`jRKMHaI{&wX6V{>3h%`WE?c$%O;Z8G z0+wxMFj|2?pPLhyGsYX3AjilCnhj?bU=-6(6^RD)!|e$%3Z#-_)Uz8ByRen+?%SK_ zTvg&`tJ=+eaz3ioYRyj8PuzW#tpq6gwQ^ya8H;oXkf<2IdKx@E12~b-l&#fIDmE(y z15H^N^s;fyE{I@|@f?miERWz5Y>|{?+jT8+GHQ!(B4P`QC%Y!2wcfjCGP)S|V<3Ci z^nyh;9f5?D04c3;*2=?5iTgPQ(wH0+Yf3PZvms|p3zXLl$Z5=PcV>GG+YG~+EA*usO*Q~i%0`( zKgR<=OvkraMI(CQe7LFS1}F$1rf zTbl>(KfK#{hw~t!j!YPWe->3MD(Bp=T{~EAq7D|mC~rXyhT@D;LXvYmHqmv)3TX|a$(J*1^TScs-F^@o?7`#>`R8E6HDfy&IVg`diDR`|)sLTa{ zQu3+n$}5yD0^jLD7o+>*Rg3bUQNylj3zKj;OrYQxk%WuMz-!u+BwP#=I5^fK;bJOt zL%@>KbL^Pt)S*>#>`mxfW?v^^h#!YL?E|H!C|jsN+`I>odO&{*c}85*rNX~lL2m&v z^_NqZZZs5&>w59G42&m52r3xSLAL)R+B8tkv-iayf zcqx=QKuqvqa83r4LdDD{ba_I=F+BL*mUF|6-4!P3^*IO1KPiKb|Exom}|qGBqJAv{JR`AW|3dXRC$oGK_E>;9d0? zQ|3laDkdR=My_>rfahfEG39H_e<%C+ce0QFp~*h}N2N3fcKClvPJ@5vF}Te<2LJHr z-dBhg|L+_H|IShH?;HjHkQ@az;ru&4!N2np{D$)r{7Xl?H*9-0j`S}djkDS48Hs6WzJCl4oS~^ z{of(!uS!(b5dR&L{@Nkw|EB~SkHzOu({FU2W`wMT&tA9YByT5(PEl>oKtzTfwo_Pkhwb*eST2#n7lC$`=$oT^yg=u zdAxeR8i=8PWx5t8MCgxg+;7=9-ki$+1;~#F@DHXxZZt@Nv{_w=`UF^!{!WqpQlI{$ zcz^;0o6kZaUTmtZiL*i|V6kj+fsn;3H;N-qUZ2B@0oe$IVwSHg*TiiT%~jvTqtoUf zJFB9ozETTx6wuhodfxjcH*qqI2d63RLn!?j+;OGIasoXXW9&DsMq5~u%RIk;6<~gvp>@oL za9NMW{Uk@P{G>Nnvqzj@Fu24D^^*(|jGydKj^*~Ih@?48I%6?mpq>h(juTUX9O;rX zcCyv5fdtL(MY5+|#edh3wBHSQOYB~#LR!*CMgYZ{BA;-3yH>y)G%4oh2-NmjJRsT84KC=S{$MJV?0k zI^m-73?$dq-m}&Tib9n?($gR1X^x)e5dJs?k$To_6VJSDyCi zX}@)1r^el+ewB23bNhwe*~-De$G7nA;6LAd_|w5bMfY2O*m(1PQ+=4TKWzTji`VMI zqW$6h>yO*&!-D-`duQW=`cSt&ymt^R4<;v%h_CzwNs9o`2YQ zp+~gu)>GeXtbOb!lki4W0dus($UL5Zt?SjL@k@@p74qrU?+$i0-@Nw_kFP>_r}qK0 z(|a513)XuZw~N+$dot?Q`w+_MLm1=qDU5Kb6~edFa?s5v5p*D@B4pB!04@mxp|TiO zAIk*xsQb6bVp|JyNE^MhJ3tqxv)l8#QtM-;sNQ`XPhr`@#w8KjYxDg0EncN31j z+OA<%llz!Ur4p;o1xdXzB$bLtl@kQ(%yr3lideW%0hjN<9+K;cbH*HNt)3Ta9kwN(?UCqK=` z-46PWt1Yovk(0N`DJ43nhC06 z{PXNb6QQ8GyVq(;%z?eV@0OLhq2LxP>E6!6K_mqyyh z(3%9z%p)>-O{DNqO(~bd5AX{}v)NBhV$>q8%iQqenluR=#?>BSFjwHDCxQq)8e#>6 z3Y;jqkzug%jkT~+nC6>w!OmP8FnYGlmkW7`a5hNb}>9M^@y|1g1) zeL}3!BvT^&Z0&xn@9#BR>=$4YPtEBB+L?Yx?3jU*$1jVBr-}wf336%?LJ*#FY zDXTnS=}~welNo|82C!ueXdUI7T?lQU?nuM?#8IPRFn0nvFUC;POx{jS+nNT&>8~ z$R#T}Q=-mx9A{Z;t{Q(ks+Dv}$`|@1@10J` zyGgyWz!h-xnY{X_Tf4ifad&VUukP;21{r!K3zQVx{4s*2U?e6XE2LZHp5kL!RP%{}gYika*ifO-q zhoj{`7L~+QML5r{0Oyz1{v=RM0#$vs-mKv+rb{x$&eDD-JIkZaF#VDg@zwgJx_4Gv z1u13WD{N}<0lG&*?no8mwe$Fta220<33={eqHC; zuIwxEix(g9M1K(U-SAfh7|jL_7Zwibv$c3s4~++;*PnLQ?Z$(=(4iKNdhKd;;MnHX zvFHpx5^1cq6c2V$hs4_Y)~eaWS_IVETll(Cza;6ByC}r~ClzFV3zcv^Ak@X$-U14z zEfr)7*T%xLsSU#a!M{l9STEdjp#Pbd`k|{Th%6y1<<;%0DbsY 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