From efc70982766c4d4089ff71a856218b3cfc6d0710 Mon Sep 17 00:00:00 2001 From: wildone Date: Fri, 26 Jul 2019 17:47:23 +1000 Subject: [PATCH 01/37] combine deploy into one line --- .travis.yml | 6 +----- 1 file changed, 1 insertion(+), 5 deletions(-) diff --git a/.travis.yml b/.travis.yml index 83c6b27..b040f65 100644 --- a/.travis.yml +++ b/.travis.yml @@ -44,11 +44,7 @@ before_deploy: #deploy to hub.docker deploy: - provider: script - script: docker push $IMAGE:$IMAGE_VERSION - - provider: script - script: docker push $IMAGE:latest - on: - branch: master + script: docker push $IMAGE:$IMAGE_VERSION && docker push $IMAGE:$CONTAINER_OUTPUT && if [[ $TRAVIS_BRANCH == "master" ]]; then docker push $IMAGE:latest; fi #update readme in hub.docker after_deploy: From cf3dd555b808e40c0cc2b686582dcc8d44c34c6a Mon Sep 17 00:00:00 2001 From: wildone Date: Fri, 26 Jul 2019 18:08:28 +1000 Subject: [PATCH 02/37] update test check --- .travis.yml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/.travis.yml b/.travis.yml index b040f65..2f0f3c1 100644 --- a/.travis.yml +++ b/.travis.yml @@ -15,7 +15,7 @@ before_install: - echo AUTO_JDKURLINFO=$AUTO_JDKURLINFO - export AUTO_JDKURL=$(echo ${AUTO_JDKURLINFO} | sed -e 's/.*"filepath":"\(http.*.rpm\)".*/\1/g' ) - echo AUTO_JDKURL=$AUTO_JDKURL - - export TEXT_EXPECTED=$(echo ${AUTO_JDKURL} | sed -e "s/.*jdk-${JAVA_VERSION}u\(.*\)[-_]linux.*/\1/g") + - export TEXT_EXPECTED=$(echo ${AUTO_JDKURL} | sed -e "s/.*jdk-\(.*\)[-_]linux.*/\1/g") - echo TEXT_EXPECTED=$TEXT_EXPECTED - export IMAGE_NAME=$(grep imagename Dockerfile | sed -e 's/.*imagename="\(.*\)".*/\1/') - export IMAGE_VERSION=$(grep version Dockerfile | sed -e 's/.*version="\(.*\)".*/\1/') @@ -29,6 +29,7 @@ install: - docker build --pull -t $IMAGE:$IMAGE_VERSION --build-arg ORACLE_USERNAME=${ORACLE_USERNAME} --build-arg ORACLE_PASSWORD=${ORACLE_PASSWORD} . - docker tag $IMAGE:$IMAGE_VERSION $IMAGE:latest - export CONTAINER_OUTPUT=$(docker run $IMAGE:$IMAGE_VERSION java -version 2>&1 | grep "java version" | sed -e 's/.*java version "\(.*\)".*/\1/') + - echo CONTAINER_OUTPUT=$CONTAINER_OUTPUT - docker tag $IMAGE:$IMAGE_VERSION $IMAGE:$CONTAINER_OUTPUT - docker images From fc69077c2c5b8d334e74f43d1ded5417710ab38f Mon Sep 17 00:00:00 2001 From: wildone Date: Fri, 26 Jul 2019 18:11:22 +1000 Subject: [PATCH 03/37] update test echo --- .travis.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.travis.yml b/.travis.yml index 2f0f3c1..fe4f601 100644 --- a/.travis.yml +++ b/.travis.yml @@ -9,7 +9,7 @@ before_install: - export JAVA_VERSION_TIMESTAMP=$(grep "ARG JAVA_VERSION_TIMESTAMP=" Dockerfile | sed -e 's/.*JAVA_VERSION_TIMESTAMP="\(.*\)".*/\1/') - echo JAVA_VERSION_TIMESTAMP=$JAVA_VERSION_TIMESTAMP - export JAVA_DOWNLOAD_URL=$(grep "ARG JAVA_DOWNLOAD_URL=" Dockerfile | sed -e 's/.*JAVA_DOWNLOAD_URL="\(.*\)".*/\1/') - - export JAVA_DOWNLOAD_URL=$($JAVA_DOWNLOAD_URL) + - export JAVA_DOWNLOAD_URL=$(echo $JAVA_DOWNLOAD_URL) - echo JAVA_DOWNLOAD_URL=$JAVA_DOWNLOAD_URL - export AUTO_JDKURLINFO=$(curl -LsN ${JAVA_DOWNLOAD_URL} | grep -m1 jdk\-${JAVA_VERSION}.*linux.*x64.*.rpm ) - echo AUTO_JDKURLINFO=$AUTO_JDKURLINFO From 3e2e1ecd2700dffe4310da75ff789be519580102 Mon Sep 17 00:00:00 2001 From: wildone Date: Fri, 26 Jul 2019 18:15:57 +1000 Subject: [PATCH 04/37] update echo --- .travis.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.travis.yml b/.travis.yml index fe4f601..09f8bc7 100644 --- a/.travis.yml +++ b/.travis.yml @@ -9,7 +9,7 @@ before_install: - export JAVA_VERSION_TIMESTAMP=$(grep "ARG JAVA_VERSION_TIMESTAMP=" Dockerfile | sed -e 's/.*JAVA_VERSION_TIMESTAMP="\(.*\)".*/\1/') - echo JAVA_VERSION_TIMESTAMP=$JAVA_VERSION_TIMESTAMP - export JAVA_DOWNLOAD_URL=$(grep "ARG JAVA_DOWNLOAD_URL=" Dockerfile | sed -e 's/.*JAVA_DOWNLOAD_URL="\(.*\)".*/\1/') - - export JAVA_DOWNLOAD_URL=$(echo $JAVA_DOWNLOAD_URL) + - export JAVA_DOWNLOAD_URL=$(echo "$JAVA_DOWNLOAD_URL") - echo JAVA_DOWNLOAD_URL=$JAVA_DOWNLOAD_URL - export AUTO_JDKURLINFO=$(curl -LsN ${JAVA_DOWNLOAD_URL} | grep -m1 jdk\-${JAVA_VERSION}.*linux.*x64.*.rpm ) - echo AUTO_JDKURLINFO=$AUTO_JDKURLINFO From 590b659d69d145b0d21c477a00408c4c25ffb4cd Mon Sep 17 00:00:00 2001 From: wildone Date: Fri, 26 Jul 2019 18:18:32 +1000 Subject: [PATCH 05/37] update url test --- .travis.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.travis.yml b/.travis.yml index 09f8bc7..40cfe6d 100644 --- a/.travis.yml +++ b/.travis.yml @@ -15,7 +15,7 @@ before_install: - echo AUTO_JDKURLINFO=$AUTO_JDKURLINFO - export AUTO_JDKURL=$(echo ${AUTO_JDKURLINFO} | sed -e 's/.*"filepath":"\(http.*.rpm\)".*/\1/g' ) - echo AUTO_JDKURL=$AUTO_JDKURL - - export TEXT_EXPECTED=$(echo ${AUTO_JDKURL} | sed -e "s/.*jdk-\(.*\)[-_]linux.*/\1/g") + - export TEXT_EXPECTED=$(echo ${AUTO_JDKURL} | sed -e "s/.*jdk-${JAVA_VERSION}u\(.*\)[-_]linux.*/\1/g") - echo TEXT_EXPECTED=$TEXT_EXPECTED - export IMAGE_NAME=$(grep imagename Dockerfile | sed -e 's/.*imagename="\(.*\)".*/\1/') - export IMAGE_VERSION=$(grep version Dockerfile | sed -e 's/.*version="\(.*\)".*/\1/') From 45180fd7b15b9a5d806320833672cf9f1b2762da Mon Sep 17 00:00:00 2001 From: wildone Date: Sat, 27 Jul 2019 05:23:40 +1000 Subject: [PATCH 06/37] update evaluate of string command --- .travis.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.travis.yml b/.travis.yml index 40cfe6d..2c14173 100644 --- a/.travis.yml +++ b/.travis.yml @@ -9,7 +9,7 @@ before_install: - export JAVA_VERSION_TIMESTAMP=$(grep "ARG JAVA_VERSION_TIMESTAMP=" Dockerfile | sed -e 's/.*JAVA_VERSION_TIMESTAMP="\(.*\)".*/\1/') - echo JAVA_VERSION_TIMESTAMP=$JAVA_VERSION_TIMESTAMP - export JAVA_DOWNLOAD_URL=$(grep "ARG JAVA_DOWNLOAD_URL=" Dockerfile | sed -e 's/.*JAVA_DOWNLOAD_URL="\(.*\)".*/\1/') - - export JAVA_DOWNLOAD_URL=$(echo "$JAVA_DOWNLOAD_URL") + - export JAVA_DOWNLOAD_URL=$(eval "echo $JAVA_DOWNLOAD_URL") - echo JAVA_DOWNLOAD_URL=$JAVA_DOWNLOAD_URL - export AUTO_JDKURLINFO=$(curl -LsN ${JAVA_DOWNLOAD_URL} | grep -m1 jdk\-${JAVA_VERSION}.*linux.*x64.*.rpm ) - echo AUTO_JDKURLINFO=$AUTO_JDKURLINFO From 82a07bd725d38172257261e176a5bda9a873389a Mon Sep 17 00:00:00 2001 From: wildone Date: Sat, 27 Jul 2019 05:32:34 +1000 Subject: [PATCH 07/37] add else for test output --- .travis.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.travis.yml b/.travis.yml index 2c14173..f0105bf 100644 --- a/.travis.yml +++ b/.travis.yml @@ -35,7 +35,7 @@ install: #test script: - - if [[ "$CONTAINER_OUTPUT" != *$TEXT_EXPECTED* ]]; then echo "CONTAINER TEST DID NOT PASS" && exit 1; fi + - if [[ "$CONTAINER_OUTPUT" != *$TEXT_EXPECTED* ]]; then echo "CONTAINER TEST DID NOT PASS" && exit 1; else echo "CONTAINER TEST PASSED"; fi #login to hub.docker From 35c47e50dd4c1a2571ce8b234c8c73ca3cde1677 Mon Sep 17 00:00:00 2001 From: wildone Date: Sat, 27 Jul 2019 15:35:39 +1000 Subject: [PATCH 08/37] update test check --- .travis.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.travis.yml b/.travis.yml index f0105bf..7fde02b 100644 --- a/.travis.yml +++ b/.travis.yml @@ -35,7 +35,7 @@ install: #test script: - - if [[ "$CONTAINER_OUTPUT" != *$TEXT_EXPECTED* ]]; then echo "CONTAINER TEST DID NOT PASS" && exit 1; else echo "CONTAINER TEST PASSED"; fi + - if [[ "${CONTAINER_OUTPUT}" != *${TEXT_EXPECTED}* ]]; then echo "CONTAINER TEST DID NOT PASS" && exit 1; fi #login to hub.docker From 073004a9f85741f5cde7dd30bb038ac56251a10e Mon Sep 17 00:00:00 2001 From: wildone Date: Sat, 27 Jul 2019 17:46:48 +1000 Subject: [PATCH 09/37] use travis_terminate 1 to stop pipeline --- .travis.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.travis.yml b/.travis.yml index 7fde02b..f8ecbd2 100644 --- a/.travis.yml +++ b/.travis.yml @@ -35,7 +35,7 @@ install: #test script: - - if [[ "${CONTAINER_OUTPUT}" != *${TEXT_EXPECTED}* ]]; then echo "CONTAINER TEST DID NOT PASS" && exit 1; fi + - if [[ ! ${CONTAINER_OUTPUT} =~ ${TEXT_EXPECTED} ]]; then travis_terminate 1; fi #login to hub.docker From d4e514de6d3c2e09b49630040ed029749537e3ba Mon Sep 17 00:00:00 2001 From: wildone Date: Sat, 27 Jul 2019 17:51:35 +1000 Subject: [PATCH 10/37] update yml format --- .travis.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.travis.yml b/.travis.yml index f8ecbd2..911b3da 100644 --- a/.travis.yml +++ b/.travis.yml @@ -44,7 +44,7 @@ before_deploy: #deploy to hub.docker deploy: - - provider: script + - provider: script script: docker push $IMAGE:$IMAGE_VERSION && docker push $IMAGE:$CONTAINER_OUTPUT && if [[ $TRAVIS_BRANCH == "master" ]]; then docker push $IMAGE:latest; fi #update readme in hub.docker From 9c270baa74207504831f4617c070972ea7dd2e3c Mon Sep 17 00:00:00 2001 From: wildone Date: Sat, 27 Jul 2019 18:03:51 +1000 Subject: [PATCH 11/37] combine all steps into script --- .travis.yml | 16 ++++------------ 1 file changed, 4 insertions(+), 12 deletions(-) diff --git a/.travis.yml b/.travis.yml index 911b3da..db3a806 100644 --- a/.travis.yml +++ b/.travis.yml @@ -36,17 +36,9 @@ install: #test script: - if [[ ! ${CONTAINER_OUTPUT} =~ ${TEXT_EXPECTED} ]]; then travis_terminate 1; fi - - -#login to hub.docker -before_deploy: + - echo "LOGIN TO HUB.DOCKER" - docker login -u $DOCKER_USERNAME -p $DOCKER_PASSWORD - -#deploy to hub.docker -deploy: - - provider: script - script: docker push $IMAGE:$IMAGE_VERSION && docker push $IMAGE:$CONTAINER_OUTPUT && if [[ $TRAVIS_BRANCH == "master" ]]; then docker push $IMAGE:latest; fi - -#update readme in hub.docker -after_deploy: + - echo "PUSH HUB.DOCKER" + - docker push $IMAGE:$IMAGE_VERSION && docker push $IMAGE:$CONTAINER_OUTPUT && if [[ $TRAVIS_BRANCH == "master" ]]; then docker push $IMAGE:latest; fi + - echo "UPDATE README IN HUB.DOCKER" - if [[ $TRAVIS_BRANCH != "master" ]]; then docker run --rm -v $(pwd)/README.md:/data/README.md -e DOCKERHUB_USERNAME=$DOCKER_USERNAME -e DOCKERHUB_PASSWORD=$DOCKER_PASSWORD -e DOCKERHUB_REPO_PREFIX=$ORGANISATION_NAME -e DOCKERHUB_REPO_NAME=$IMAGE sheogorath/readme-to-dockerhub; fi From 415a6696b57714fddd5dde45348a01ef2b2b141e Mon Sep 17 00:00:00 2001 From: wildone Date: Wed, 2 Oct 2019 13:32:09 +1000 Subject: [PATCH 12/37] update to match master --- .gitlab-ci.yml | 48 ------------------------------------------------ .travis.yml | 48 +++++++++++++++++++++++++++--------------------- Dockerfile | 12 +++++++++--- README.md | 13 +++++++++---- lint.sh | 3 +++ 5 files changed, 48 insertions(+), 76 deletions(-) delete mode 100644 .gitlab-ci.yml create mode 100755 lint.sh diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml deleted file mode 100644 index 4994647..0000000 --- a/.gitlab-ci.yml +++ /dev/null @@ -1,48 +0,0 @@ -image: docker:stable -services: -- docker:dind - -stages: -- build -- test -- release -- trigger - -variables: - DOCKER_HOST: tcp://docker:2375 - DOCKER_DRIVER: overlay2 - CONTAINER_TEST_IMAGE: $CI_REGISTRY_IMAGE/oracle-jdk:$CI_COMMIT_REF_NAME - CONTAINER_RELEASE_IMAGE: $CI_REGISTRY_IMAGE/oracle-jdk:latest - -before_script: - - docker login -u "$CI_REGISTRY_USER" -p "$CI_REGISTRY_PASSWORD" $CI_REGISTRY - -build: - stage: build - script: - - docker build --pull -t "$CONTAINER_TEST_IMAGE" . - - docker push "$CONTAINER_TEST_IMAGE" - -test: - stage: test - script: - - docker run $CONTAINER_TEST_IMAGE java -version - -release-image: - stage: release - script: - - docker pull "$CONTAINER_TEST_IMAGE" - - docker tag "$CONTAINER_TEST_IMAGE" "$CONTAINER_RELEASE_IMAGE" - - docker push "$CONTAINER_RELEASE_IMAGE" - only: - - master - -trigger_build: - stage: trigger - script: - - echo "Build java-ffmpeg" - - docker run appropriate/curl curl -X POST -F "token=899d524c720619923f4fdee21cb1d9" -F "ref=$CI_COMMIT_REF_NAME" https://gitlab.com/api/v4/projects/7625246/trigger/pipeline - - echo "Build jenkins-base" - - docker run appropriate/curl curl -X POST -F "token=f267cb3a509038902c71f5d23d6dca" -F "ref=$CI_COMMIT_REF_NAME" https://gitlab.com/api/v4/projects/7623205/trigger/pipeline - - echo "Build nexus" - - docker run appropriate/curl curl -X POST -F "token=4d9da1a5bc94b1d89bfaf14d92568a" -F "ref=$CI_COMMIT_REF_NAME" https://gitlab.com/api/v4/projects/7623222/trigger/pipeline diff --git a/.travis.yml b/.travis.yml index db3a806..b282f1f 100644 --- a/.travis.yml +++ b/.travis.yml @@ -4,41 +4,47 @@ services: - 'docker' before_install: - - export JAVA_VERSION=$(grep "ARG JAVA_VERSION=" Dockerfile | sed -e 's/.*JAVA_VERSION="\(.*\)".*/\1/') - - echo JAVA_VERSION=$JAVA_VERSION - - export JAVA_VERSION_TIMESTAMP=$(grep "ARG JAVA_VERSION_TIMESTAMP=" Dockerfile | sed -e 's/.*JAVA_VERSION_TIMESTAMP="\(.*\)".*/\1/') - - echo JAVA_VERSION_TIMESTAMP=$JAVA_VERSION_TIMESTAMP - - export JAVA_DOWNLOAD_URL=$(grep "ARG JAVA_DOWNLOAD_URL=" Dockerfile | sed -e 's/.*JAVA_DOWNLOAD_URL="\(.*\)".*/\1/') - - export JAVA_DOWNLOAD_URL=$(eval "echo $JAVA_DOWNLOAD_URL") - - echo JAVA_DOWNLOAD_URL=$JAVA_DOWNLOAD_URL - - export AUTO_JDKURLINFO=$(curl -LsN ${JAVA_DOWNLOAD_URL} | grep -m1 jdk\-${JAVA_VERSION}.*linux.*x64.*.rpm ) - - echo AUTO_JDKURLINFO=$AUTO_JDKURLINFO - - export AUTO_JDKURL=$(echo ${AUTO_JDKURLINFO} | sed -e 's/.*"filepath":"\(http.*.rpm\)".*/\1/g' ) - - echo AUTO_JDKURL=$AUTO_JDKURL - - export TEXT_EXPECTED=$(echo ${AUTO_JDKURL} | sed -e "s/.*jdk-${JAVA_VERSION}u\(.*\)[-_]linux.*/\1/g") - - echo TEXT_EXPECTED=$TEXT_EXPECTED - - export IMAGE_NAME=$(grep imagename Dockerfile | sed -e 's/.*imagename="\(.*\)".*/\1/') - - export IMAGE_VERSION=$(grep version Dockerfile | sed -e 's/.*version="\(.*\)".*/\1/') + - echo GET CONFIG FROM DOCKERFILE + - export IMAGE_NAME=$(grep imagename= Dockerfile | sed -e 's/.*imagename="\(.*\)".*/\1/') + - export TEST_COMMAND=$(grep test.command= Dockerfile | sed -e 's/.*test.command="\(.*\)".*/\1/') + - export TEST_COMMAND_VERIFY=$(grep test.command.verify= Dockerfile | sed -e 's/.*test.command.verify="\(.*\)".*/\1/') + - export IMAGE_VERSION=$(grep version= Dockerfile | sed -e 's/.*version="\(.*\)".*/\1/') - export IMAGE="$ORGANISATION_NAME/$IMAGE_NAME" - echo IMAGE_NAME=$IMAGE_NAME - echo IMAGE_VERSION=$IMAGE_VERSION + - echo TEST_COMMAND=$TEST_COMMAND + - echo TEST_COMMAND_VERIFY=$TEST_COMMAND_VERIFY + - echo GET CONFIG FROM GIT + - export CURRENT_VERSION=$(git describe --tag --always --long | sed -e 's/\(.*\)-\(.*\)-.*/\1.\2/') + - declare -a CURRENT_VERSION_ARRAY="(${CURRENT_VERSION//./ })"; export SEMVER_MAJOR=${CURRENT_VERSION_ARRAY[0]}; export SEMVER_MINOR=${CURRENT_VERSION_ARRAY[1]}; export SEMVER_BUILD=${CURRENT_VERSION_ARRAY[-1]} + - echo SEMVER_MAJOR:${SEMVER_MAJOR} + - echo SEMVER_MINOR:${SEMVER_MINOR} + - echo SEMVER_BUILD:${SEMVER_BUILD} + - export SEMVER=${SEMVER_MAJOR}.${SEMVER_MINOR}.${SEMVER_BUILD} + - echo SEMVER:$SEMVER + - if [[ ${SEMVER_MAJOR} == "" ]]; then travis_terminate 1; fi + - export TRAVIS_TAG=$SEMVER + - echo TRAVIS_TAG:$TRAVIS_TAG -#build +#build and test install: - - docker images - docker build --pull -t $IMAGE:$IMAGE_VERSION --build-arg ORACLE_USERNAME=${ORACLE_USERNAME} --build-arg ORACLE_PASSWORD=${ORACLE_PASSWORD} . - - docker tag $IMAGE:$IMAGE_VERSION $IMAGE:latest + - export CONTAINER_COMMAND="docker run $IMAGE:$IMAGE_VERSION $TEST_COMMAND" + - echo CONTAINER_COMMAND=$CONTAINER_COMMAND - export CONTAINER_OUTPUT=$(docker run $IMAGE:$IMAGE_VERSION java -version 2>&1 | grep "java version" | sed -e 's/.*java version "\(.*\)".*/\1/') - echo CONTAINER_OUTPUT=$CONTAINER_OUTPUT - docker tag $IMAGE:$IMAGE_VERSION $IMAGE:$CONTAINER_OUTPUT + - if [[ ! ${CONTAINER_OUTPUT} =~ ${TEST_COMMAND_VERIFY} ]]; then travis_terminate 1; fi - docker images #test script: - - if [[ ! ${CONTAINER_OUTPUT} =~ ${TEXT_EXPECTED} ]]; then travis_terminate 1; fi - echo "LOGIN TO HUB.DOCKER" - docker login -u $DOCKER_USERNAME -p $DOCKER_PASSWORD - echo "PUSH HUB.DOCKER" - - docker push $IMAGE:$IMAGE_VERSION && docker push $IMAGE:$CONTAINER_OUTPUT && if [[ $TRAVIS_BRANCH == "master" ]]; then docker push $IMAGE:latest; fi + - docker push $IMAGE:$IMAGE_VERSION + - docker push $IMAGE:$CONTAINER_OUTPUT + - if [[ $TRAVIS_BRANCH == "master" ]]; then docker tag $IMAGE:$IMAGE_VERSION $IMAGE:latest && docker push $IMAGE:latest; fi - echo "UPDATE README IN HUB.DOCKER" - - if [[ $TRAVIS_BRANCH != "master" ]]; then docker run --rm -v $(pwd)/README.md:/data/README.md -e DOCKERHUB_USERNAME=$DOCKER_USERNAME -e DOCKERHUB_PASSWORD=$DOCKER_PASSWORD -e DOCKERHUB_REPO_PREFIX=$ORGANISATION_NAME -e DOCKERHUB_REPO_NAME=$IMAGE sheogorath/readme-to-dockerhub; fi + - if [[ $TRAVIS_BRANCH == "master" ]]; then docker run --rm -v $(pwd):/data/ aemdesign/dockerhub-description "$DOCKER_USERNAME" "$DOCKER_PASSWORD" "$IMAGE"; fi + diff --git a/Dockerfile b/Dockerfile index d2839ef..8303ba5 100644 --- a/Dockerfile +++ b/Dockerfile @@ -3,9 +3,11 @@ FROM aemdesign/centos-tini:latest MAINTAINER devops LABEL os="centos" \ - container.description="oracle jdk 8" \ - version="1.0-jdk8" \ - imagename="oracle-jdk" + container.description="oracle jdk" \ + version="jdk8" \ + imagename="oracle-jdk" \ + test.command=" java -version 2>&1 | grep 'java version' | sed -e 's/.*java version "\(.*\)".*/\1/'" \ + test.command.verify="1.8" ARG JAVA_VERSION="8" ARG JAVA_VERSION_TIMESTAMP="2133151" @@ -16,10 +18,14 @@ ARG ORACLE_USERNAME="devops.aemdesign@gmail.com" COPY oracle-download.sh . RUN chmod +x oracle-download.sh && \ + echo JAVA_DOWNLOAD_URL=$JAVA_DOWNLOAD_URL && \ AUTO_JDKURLINFO=$(curl -LsN ${JAVA_DOWNLOAD_URL} | grep -m1 jdk\-${JAVA_VERSION}.*linux.*x64.*.rpm ) && \ AUTO_JDKURL=$(echo ${AUTO_JDKURLINFO} | sed -e 's/.*"filepath":"\(http.*.rpm\)".*/\1/g' ) && \ + echo AUTO_JDKURL=$AUTO_JDKURL && \ AUTO_JDKMD5=$(echo ${AUTO_JDKURLINFO} | sed -e 's/.*"MD5":"\(.*\)",".*/\1/g' ) && \ + echo AUTO_JDKSHA256=$AUTO_JDKSHA256 && \ AUTO_JDKFILE=$(echo ${AUTO_JDKURL} | sed 's,^[^ ]*/,,' ) && \ + echo AUTO_JDKFILE=$AUTO_JDKFILE && \ echo ./oracle-download.sh --cookie=accept-securebackup-cookie --output=${AUTO_JDKFILE} --password=${ORACLE_PASSWORD} --username=${ORACLE_USERNAME} ${AUTO_JDKURL} && \ echo $(./oracle-download.sh --cookie=accept-securebackup-cookie --output=${AUTO_JDKFILE} --password=${ORACLE_PASSWORD} --username=${ORACLE_USERNAME} ${AUTO_JDKURL}) && \ echo "${AUTO_JDKMD5} ${AUTO_JDKFILE}" >> MD5SUM && \ diff --git a/README.md b/README.md index 0d50981..bd5d53a 100644 --- a/README.md +++ b/README.md @@ -1,8 +1,13 @@ ## CentOS 7 with Oracle JDK [![build_status](https://travis-ci.org/aem-design/oracle-jdk.svg?branch=master)](https://travis-ci.org/aem-design/oracle-jdk) - - +[![github license](https://img.shields.io/github/license/aem-design/oracle-jdk)](https://github.com/aem-design/oracle-jdk) +[![github issues](https://img.shields.io/github/issues/aem-design/oracle-jdk)](https://github.com/aem-design/oracle-jdk) +[![github last commit](https://img.shields.io/github/last-commit/aem-design/oracle-jdk)](https://github.com/aem-design/oracle-jdk) +[![github repo size](https://img.shields.io/github/repo-size/aem-design/oracle-jdk)](https://github.com/aem-design/oracle-jdk) +[![docker stars](https://img.shields.io/docker/stars/aemdesign/oracle-jdk)](https://hub.docker.com/r/aemdesign/oracle-jdk) +[![docker pulls](https://img.shields.io/docker/pulls/aemdesign/oracle-jdk)](https://hub.docker.com/r/aemdesign/oracle-jdk) +[![github release](https://img.shields.io/github/release/aem-design/oracle-jdk)](https://github.com/aem-design/oracle-jdk) This is docker image based on [aemdesign/centos-tini](https://hub.docker.com/r/aemdesign/centos-tini/) with Oracle JDK added. @@ -43,12 +48,12 @@ export JAVA_DOWNLOAD_URL="http://www.oracle.com/technetwork/java/javase/download export AUTO_JDKURLINFO=$(curl -LsN ${JAVA_DOWNLOAD_URL} | grep -m1 jdk\-${JAVA_VERSION}\.*linux\.*x64.*.rpm ) && \ echo AUTO_JDKURLINFO=$AUTO_JDKURLINFO && \ AUTO_JDKURL=$(echo ${AUTO_JDKURLINFO} | sed -e 's/.*"filepath":"\(http.*.rpm\)".*/\1/g' ) && \ -AUTO_JDKMD5=$(echo ${AUTO_JDKURLINFO} | sed -e 's/.*"SHA256":"\(.*\)".*/\1/g' ) && \ +AUTO_JDKSHA256=$(echo ${AUTO_JDKURLINFO} | sed -e 's/.*"SHA256":"\(.*\)".*/\1/g' ) && \ export AUTO_JDKFILE=$(echo ${AUTO_JDKURL} | sed 's,^[^ ]*/,,' ) && \ echo JAVA_VERSION_TIMESTAMP=$JAVA_VERSION_TIMESTAMP && \ echo JAVA_DOWNLOAD_URL=$JAVA_DOWNLOAD_URL && \ echo AUTO_JDKURL=$AUTO_JDKURL && \ -echo AUTO_JDKMD5=$AUTO_JDKMD5 && \ +echo AUTO_JDKSHA256=$AUTO_JDKSHA256 && \ echo AUTO_JDKFILE=$AUTO_JDKFILE ``` diff --git a/lint.sh b/lint.sh new file mode 100755 index 0000000..f9b129b --- /dev/null +++ b/lint.sh @@ -0,0 +1,3 @@ +#!/usr/bin/env bash + +travis lint .travis.yml From b5a33f7d94d5ef31fccf4a20c7ad5d0395ef89d8 Mon Sep 17 00:00:00 2001 From: wildone Date: Wed, 2 Oct 2019 16:23:25 +1000 Subject: [PATCH 13/37] update to self increment tags on release --- .travis.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.travis.yml b/.travis.yml index b282f1f..53da264 100644 --- a/.travis.yml +++ b/.travis.yml @@ -16,10 +16,10 @@ before_install: - echo TEST_COMMAND_VERIFY=$TEST_COMMAND_VERIFY - echo GET CONFIG FROM GIT - export CURRENT_VERSION=$(git describe --tag --always --long | sed -e 's/\(.*\)-\(.*\)-.*/\1.\2/') - - declare -a CURRENT_VERSION_ARRAY="(${CURRENT_VERSION//./ })"; export SEMVER_MAJOR=${CURRENT_VERSION_ARRAY[0]}; export SEMVER_MINOR=${CURRENT_VERSION_ARRAY[1]}; export SEMVER_BUILD=${CURRENT_VERSION_ARRAY[-1]} + - declare -a CURRENT_VERSION_ARRAY="(${CURRENT_VERSION//./ })"; export SEMVER_MAJOR=${CURRENT_VERSION_ARRAY[0]}; export SEMVER_MINOR=${CURRENT_VERSION_ARRAY[1]}; export SEMVER_PATCH=${CURRENT_VERSION_ARRAY[2]}; export SEMVER_BUILD=${CURRENT_VERSION_ARRAY[-1]} - echo SEMVER_MAJOR:${SEMVER_MAJOR} - echo SEMVER_MINOR:${SEMVER_MINOR} - - echo SEMVER_BUILD:${SEMVER_BUILD} + - echo SEMVER_BUILD:$(( ${SEMVER_PATCH} + ${SEMVER_BUILD} )) - export SEMVER=${SEMVER_MAJOR}.${SEMVER_MINOR}.${SEMVER_BUILD} - echo SEMVER:$SEMVER - if [[ ${SEMVER_MAJOR} == "" ]]; then travis_terminate 1; fi From a07769dd74af34821b86ee42dd34170b60523afe Mon Sep 17 00:00:00 2001 From: wildone Date: Thu, 3 Oct 2019 10:46:16 +1000 Subject: [PATCH 14/37] update to match master --- .travis.yml | 21 +++++++++++++++++++-- 1 file changed, 19 insertions(+), 2 deletions(-) diff --git a/.travis.yml b/.travis.yml index 53da264..2ba36fd 100644 --- a/.travis.yml +++ b/.travis.yml @@ -1,5 +1,7 @@ language: java +if: tag is blank + services: - 'docker' @@ -17,9 +19,10 @@ before_install: - echo GET CONFIG FROM GIT - export CURRENT_VERSION=$(git describe --tag --always --long | sed -e 's/\(.*\)-\(.*\)-.*/\1.\2/') - declare -a CURRENT_VERSION_ARRAY="(${CURRENT_VERSION//./ })"; export SEMVER_MAJOR=${CURRENT_VERSION_ARRAY[0]}; export SEMVER_MINOR=${CURRENT_VERSION_ARRAY[1]}; export SEMVER_PATCH=${CURRENT_VERSION_ARRAY[2]}; export SEMVER_BUILD=${CURRENT_VERSION_ARRAY[-1]} + - export SEMVER_BUILD=$(( ${SEMVER_PATCH} + ${SEMVER_BUILD} )) - echo SEMVER_MAJOR:${SEMVER_MAJOR} - echo SEMVER_MINOR:${SEMVER_MINOR} - - echo SEMVER_BUILD:$(( ${SEMVER_PATCH} + ${SEMVER_BUILD} )) + - echo SEMVER_BUILD:${SEMVER_BUILD} - export SEMVER=${SEMVER_MAJOR}.${SEMVER_MINOR}.${SEMVER_BUILD} - echo SEMVER:$SEMVER - if [[ ${SEMVER_MAJOR} == "" ]]; then travis_terminate 1; fi @@ -31,7 +34,7 @@ install: - docker build --pull -t $IMAGE:$IMAGE_VERSION --build-arg ORACLE_USERNAME=${ORACLE_USERNAME} --build-arg ORACLE_PASSWORD=${ORACLE_PASSWORD} . - export CONTAINER_COMMAND="docker run $IMAGE:$IMAGE_VERSION $TEST_COMMAND" - echo CONTAINER_COMMAND=$CONTAINER_COMMAND - - export CONTAINER_OUTPUT=$(docker run $IMAGE:$IMAGE_VERSION java -version 2>&1 | grep "java version" | sed -e 's/.*java version "\(.*\)".*/\1/') + - export CONTAINER_OUTPUT=$(eval $CONTAINER_COMMAND) - echo CONTAINER_OUTPUT=$CONTAINER_OUTPUT - docker tag $IMAGE:$IMAGE_VERSION $IMAGE:$CONTAINER_OUTPUT - if [[ ! ${CONTAINER_OUTPUT} =~ ${TEST_COMMAND_VERIFY} ]]; then travis_terminate 1; fi @@ -48,3 +51,17 @@ script: - echo "UPDATE README IN HUB.DOCKER" - if [[ $TRAVIS_BRANCH == "master" ]]; then docker run --rm -v $(pwd):/data/ aemdesign/dockerhub-description "$DOCKER_USERNAME" "$DOCKER_PASSWORD" "$IMAGE"; fi +## Get the project version +before_deploy: + - if [[ $TRAVIS_BRANCH == "master" ]]; then git tag $TRAVIS_TAG; fi + +## Create release in GitHub +deploy: + provider: releases + tag_name: $TRAVIS_TAG + name: $TRAVIS_TAG + target_commitish: $TRAVIS_COMMIT + api_key: $GITHUB_TOKEN + skip_cleanup: true + on: + branch: master From 9743357c9cf0c35ff8c795c03db581d41a0fe7c7 Mon Sep 17 00:00:00 2001 From: wildone Date: Thu, 3 Oct 2019 11:37:05 +1000 Subject: [PATCH 15/37] use centos 7 --- Dockerfile | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Dockerfile b/Dockerfile index 8303ba5..0336ac8 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,8 +1,8 @@ -FROM aemdesign/centos-tini:latest +FROM aemdesign/centos-tini:centos7 MAINTAINER devops -LABEL os="centos" \ +LABEL os="centos 7" \ container.description="oracle jdk" \ version="jdk8" \ imagename="oracle-jdk" \ From 735df40b8ade909759b2e544de7e75e302b9818a Mon Sep 17 00:00:00 2001 From: wildone Date: Mon, 29 Mar 2021 16:19:18 +1100 Subject: [PATCH 16/37] update jdk8 --- .github/workflows/build.yml | 63 +++++++++++++++ .gitignore | 15 ++++ .travis.yml | 67 ---------------- Dockerfile | 52 ++++++++---- build.ps1 | 22 ++++++ debug.ps1 | 21 +++++ test/run_tests.sh | 152 ++++++++++++++++++++++++++++++++++++ 7 files changed, 310 insertions(+), 82 deletions(-) create mode 100644 .github/workflows/build.yml create mode 100644 .gitignore delete mode 100644 .travis.yml create mode 100644 build.ps1 create mode 100644 debug.ps1 create mode 100644 test/run_tests.sh diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml new file mode 100644 index 0000000..116f336 --- /dev/null +++ b/.github/workflows/build.yml @@ -0,0 +1,63 @@ +name: build + +on: [push] + +jobs: + build: + if: "!contains(github.event.head_commit.message, 'skip ci')" + runs-on: ubuntu-latest + env: + DOCKER_REGISTRY: docker.io + ORGANISATION_NAME: aemdesign + DOCKER_USERNAME: ${{ secrets.DOCKER_USERNAME }} + DOCKER_PASSWORD: ${{ secrets.DOCKER_PASSWORD }} + ORACLE_PASSWORD: ${{ secrets.ORACLE_PASSWORD }} + + steps: + - name: Experimental Status + run: | + docker version -f '{{.Server.Experimental}}' + - name: Docker + run: | + docker version -f '{{.Server.Experimental}}' + export DOCKER_CLI_EXPERIMENTAL=enabled + docker version -f '{{.Server.Experimental}}' + sudo service docker restart + docker version -f '{{.Server.Experimental}}' + sudo rm /etc/docker/daemon.json + echo $'{\n "experimental": true\n}' | sudo tee /etc/docker/daemon.json + sudo service docker restart + docker version -f '{{.Server.Experimental}}' + - uses: actions/checkout@v2 + - name: set envirnment variables + id: config + run: | + source <(curl -sL https://github.com/aem-design/aemdesign-docker/releases/latest/download/github_get_config.sh) + source <(curl -sL https://github.com/aem-design/aemdesign-docker/releases/latest/download/github_get_version.sh) + - name: build and test docker image + run: | + docker build --build-arg ORACLE_PASSWORD=$ORACLE_PASSWORD --pull --squash -t $IMAGE:$GIT_BRANCH . + (cd test && bash ./run_tests.sh "$IMAGE:$GIT_BRANCH") + docker images + - name: login to docker registry + run: echo "${{ secrets.DOCKER_PASSWORD }}" | docker login ${DOCKER_REGISTRY} -u "${{ secrets.DOCKER_USERNAME }}" --password-stdin + + - name: push image version + run: | + docker push $IMAGE:$GIT_BRANCH + - name: push latest image on master + if: github.ref == 'refs/heads/master' + run: | + docker tag $IMAGE:$GIT_BRANCH $IMAGE:latest + docker push $IMAGE:latest + - name: update registry description with readme on master + if: github.ref == 'refs/heads/master' + run: | + docker run --rm -v $(pwd):/data/ aemdesign/dockerhub-description "$DOCKER_USERNAME" "$DOCKER_PASSWORD" "$IMAGE" + - uses: meeDamian/github-release@1.0 + if: github.ref == 'refs/heads/master' + with: + token: ${{ secrets.GITHUB_TOKEN }} + tag: ${{ env.GITHUB_TAG }} + name: ${{ env.GITHUB_TAG }} + body: ${{ env.GIT_RELEASE_NOTES }} diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..b5dd703 --- /dev/null +++ b/.gitignore @@ -0,0 +1,15 @@ + +# Ignore IDE and Operating System artifacts +.idea +.classpath +.metadata +.project +.settings +maven-eclipse.xml +*.iml +*.ipr +*.iws +.DS_Store + +target/ +logs/ diff --git a/.travis.yml b/.travis.yml deleted file mode 100644 index 2ba36fd..0000000 --- a/.travis.yml +++ /dev/null @@ -1,67 +0,0 @@ -language: java - -if: tag is blank - -services: - - 'docker' - -before_install: - - echo GET CONFIG FROM DOCKERFILE - - export IMAGE_NAME=$(grep imagename= Dockerfile | sed -e 's/.*imagename="\(.*\)".*/\1/') - - export TEST_COMMAND=$(grep test.command= Dockerfile | sed -e 's/.*test.command="\(.*\)".*/\1/') - - export TEST_COMMAND_VERIFY=$(grep test.command.verify= Dockerfile | sed -e 's/.*test.command.verify="\(.*\)".*/\1/') - - export IMAGE_VERSION=$(grep version= Dockerfile | sed -e 's/.*version="\(.*\)".*/\1/') - - export IMAGE="$ORGANISATION_NAME/$IMAGE_NAME" - - echo IMAGE_NAME=$IMAGE_NAME - - echo IMAGE_VERSION=$IMAGE_VERSION - - echo TEST_COMMAND=$TEST_COMMAND - - echo TEST_COMMAND_VERIFY=$TEST_COMMAND_VERIFY - - echo GET CONFIG FROM GIT - - export CURRENT_VERSION=$(git describe --tag --always --long | sed -e 's/\(.*\)-\(.*\)-.*/\1.\2/') - - declare -a CURRENT_VERSION_ARRAY="(${CURRENT_VERSION//./ })"; export SEMVER_MAJOR=${CURRENT_VERSION_ARRAY[0]}; export SEMVER_MINOR=${CURRENT_VERSION_ARRAY[1]}; export SEMVER_PATCH=${CURRENT_VERSION_ARRAY[2]}; export SEMVER_BUILD=${CURRENT_VERSION_ARRAY[-1]} - - export SEMVER_BUILD=$(( ${SEMVER_PATCH} + ${SEMVER_BUILD} )) - - echo SEMVER_MAJOR:${SEMVER_MAJOR} - - echo SEMVER_MINOR:${SEMVER_MINOR} - - echo SEMVER_BUILD:${SEMVER_BUILD} - - export SEMVER=${SEMVER_MAJOR}.${SEMVER_MINOR}.${SEMVER_BUILD} - - echo SEMVER:$SEMVER - - if [[ ${SEMVER_MAJOR} == "" ]]; then travis_terminate 1; fi - - export TRAVIS_TAG=$SEMVER - - echo TRAVIS_TAG:$TRAVIS_TAG - -#build and test -install: - - docker build --pull -t $IMAGE:$IMAGE_VERSION --build-arg ORACLE_USERNAME=${ORACLE_USERNAME} --build-arg ORACLE_PASSWORD=${ORACLE_PASSWORD} . - - export CONTAINER_COMMAND="docker run $IMAGE:$IMAGE_VERSION $TEST_COMMAND" - - echo CONTAINER_COMMAND=$CONTAINER_COMMAND - - export CONTAINER_OUTPUT=$(eval $CONTAINER_COMMAND) - - echo CONTAINER_OUTPUT=$CONTAINER_OUTPUT - - docker tag $IMAGE:$IMAGE_VERSION $IMAGE:$CONTAINER_OUTPUT - - if [[ ! ${CONTAINER_OUTPUT} =~ ${TEST_COMMAND_VERIFY} ]]; then travis_terminate 1; fi - - docker images - -#test -script: - - echo "LOGIN TO HUB.DOCKER" - - docker login -u $DOCKER_USERNAME -p $DOCKER_PASSWORD - - echo "PUSH HUB.DOCKER" - - docker push $IMAGE:$IMAGE_VERSION - - docker push $IMAGE:$CONTAINER_OUTPUT - - if [[ $TRAVIS_BRANCH == "master" ]]; then docker tag $IMAGE:$IMAGE_VERSION $IMAGE:latest && docker push $IMAGE:latest; fi - - echo "UPDATE README IN HUB.DOCKER" - - if [[ $TRAVIS_BRANCH == "master" ]]; then docker run --rm -v $(pwd):/data/ aemdesign/dockerhub-description "$DOCKER_USERNAME" "$DOCKER_PASSWORD" "$IMAGE"; fi - -## Get the project version -before_deploy: - - if [[ $TRAVIS_BRANCH == "master" ]]; then git tag $TRAVIS_TAG; fi - -## Create release in GitHub -deploy: - provider: releases - tag_name: $TRAVIS_TAG - name: $TRAVIS_TAG - target_commitish: $TRAVIS_COMMIT - api_key: $GITHUB_TOKEN - skip_cleanup: true - on: - branch: master diff --git a/Dockerfile b/Dockerfile index 0336ac8..a0822e8 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,34 +1,56 @@ -FROM aemdesign/centos-tini:centos7 +FROM aemdesign/centos-tini:centos8 -MAINTAINER devops - -LABEL os="centos 7" \ +LABEL os="centos 8" \ container.description="oracle jdk" \ version="jdk8" \ + maintainer="devops " \ imagename="oracle-jdk" \ test.command=" java -version 2>&1 | grep 'java version' | sed -e 's/.*java version "\(.*\)".*/\1/'" \ test.command.verify="1.8" + ARG JAVA_VERSION="8" ARG JAVA_VERSION_TIMESTAMP="2133151" -ARG JAVA_DOWNLOAD_URL="http://www.oracle.com/technetwork/java/javase/downloads/jdk${JAVA_VERSION}-downloads-${JAVA_VERSION_TIMESTAMP}.html" +ARG JAVA_DOWNLOAD_URL="https://www.oracle.com/au/java/technologies/javase-jdk${JAVA_VERSION}-downloads.html" ARG ORACLE_PASSWORD="xxx" ARG ORACLE_USERNAME="devops.aemdesign@gmail.com" COPY oracle-download.sh . -RUN chmod +x oracle-download.sh && \ +RUN \ + echo "GET INFO ABOUT JDK" && \ + # get download page echo JAVA_DOWNLOAD_URL=$JAVA_DOWNLOAD_URL && \ + AUTO_PAGE=$(curl -LsN ${JAVA_DOWNLOAD_URL}) && \ + # get checksum url from download page + AUTO_CHECKSUM_URL=https:$(echo ${AUTO_PAGE} | sed -e 's/.*href="\(.*-checksum.html\)".*/\1/g') && \ + echo AUTO_CHECKSUM_URL=${AUTO_CHECKSUM_URL} && \ + # get the checksum url + AUTO_PAGE_CHECKSUM=$(curl -LsN ${AUTO_CHECKSUM_URL}) && \ + # find jdk reference in downlaod page AUTO_JDKURLINFO=$(curl -LsN ${JAVA_DOWNLOAD_URL} | grep -m1 jdk\-${JAVA_VERSION}.*linux.*x64.*.rpm ) && \ - AUTO_JDKURL=$(echo ${AUTO_JDKURLINFO} | sed -e 's/.*"filepath":"\(http.*.rpm\)".*/\1/g' ) && \ + echo AUTO_JDKURLINFO=${AUTO_JDKURLINFO} && \ + # get jdk url + AUTO_JDKURL=$(echo ${AUTO_JDKURLINFO} | sed -e "s/.*data-file='\(https.*.rpm\)'.*/\1/g" ) && \ echo AUTO_JDKURL=$AUTO_JDKURL && \ - AUTO_JDKMD5=$(echo ${AUTO_JDKURLINFO} | sed -e 's/.*"MD5":"\(.*\)",".*/\1/g' ) && \ - echo AUTO_JDKSHA256=$AUTO_JDKSHA256 && \ - AUTO_JDKFILE=$(echo ${AUTO_JDKURL} | sed 's,^[^ ]*/,,' ) && \ + # get jdk filename + AUTO_JDKFILE=$(echo ${AUTO_JDKURL} | sed 's/.*\///' ) && \ echo AUTO_JDKFILE=$AUTO_JDKFILE && \ - echo ./oracle-download.sh --cookie=accept-securebackup-cookie --output=${AUTO_JDKFILE} --password=${ORACLE_PASSWORD} --username=${ORACLE_USERNAME} ${AUTO_JDKURL} && \ - echo $(./oracle-download.sh --cookie=accept-securebackup-cookie --output=${AUTO_JDKFILE} --password=${ORACLE_PASSWORD} --username=${ORACLE_USERNAME} ${AUTO_JDKURL}) && \ - echo "${AUTO_JDKMD5} ${AUTO_JDKFILE}" >> MD5SUM && \ - md5sum -c MD5SUM && \ + # get checksum value + AUTO_CHECKSUM_VALUE=$(echo "${AUTO_PAGE_CHECKSUM}" | grep -m1 ${AUTO_JDKFILE}) && \ + echo AUTO_CHECKSUM_VALUE=${AUTO_CHECKSUM_VALUE} && \ + AUTO_JDKSHA256=$(echo ${AUTO_CHECKSUM_VALUE} | sed -e 's/.*sha256: \([0-9a-z]*\).*/\1/g' ) && \ + echo AUTO_JDKSHA256=$AUTO_JDKSHA256 && \ + echo "DOWNLOAD JDK" && \ + # download jdk + echo ./oracle-download.sh -C accept-securebackup-cookie -O ${AUTO_JDKFILE} -P ${ORACLE_PASSWORD} -U ${ORACLE_USERNAME} ${AUTO_JDKURL} && \ + bash ./oracle-download.sh -C accept-securebackup-cookie -O ${AUTO_JDKFILE} -P ${ORACLE_PASSWORD} -U ${ORACLE_USERNAME} ${AUTO_JDKURL} && \ + ls -l && \ + # verify jdk signature + echo "${AUTO_JDKSHA256} ${AUTO_JDKFILE}" >> CHECKSUM && \ + cat CHECKSUM && \ + sha256sum -c CHECKSUM && \ + echo "INSTALL JDK" && \ + # install jdk rpm -Uvh $AUTO_JDKFILE && \ - rm -f $AUTO_JDKFILE MD5SUM + rm -f $AUTO_JDKFILE CHECKSUM diff --git a/build.ps1 b/build.ps1 new file mode 100644 index 0000000..70c2519 --- /dev/null +++ b/build.ps1 @@ -0,0 +1,22 @@ +Param( + [string]$LOG_PATH = "${PWD}\logs", + [string]$LOG_PEFIX = "docker", + [string]$LOG_SUFFIX = ".log", + [string]$TAG = "jdk11", + [string]$FILE = "Dockerfile", + [string]$FUNCTIONS_URI = "https://github.com/aem-design/aemdesign-docker/releases/latest/download/functions.ps1", + [string]$COMMAND = "docker build --build-arg ORACLE_PASSWORD=$ORACLE_PASSWORD . -f .\${FILE} -t ${TAG}" +) + +$SKIP_CONFIG = $true +$PARENT_PROJECT_PATH = "." + +. ([Scriptblock]::Create((([System.Text.Encoding]::ASCII).getString((Invoke-WebRequest -Uri "${FUNCTIONS_URI}").Content)))) + +printSectionBanner "Building Image" +printSectionLine ( $COMMAND -replace $ORACLE_PASSWORD, $( "*" * $ORACLE_PASSWORD.length ) ) "warn" + +Invoke-Expression -Command "$COMMAND" | Tee-Object -Append -FilePath "${LOG_FILE}" + + + diff --git a/debug.ps1 b/debug.ps1 new file mode 100644 index 0000000..5163961 --- /dev/null +++ b/debug.ps1 @@ -0,0 +1,21 @@ +Param( + [string]$LOG_PATH = "${PWD}\logs", + [string]$LOG_PEFIX = "docker", + [string]$LOG_SUFFIX = ".log", + [string]$TAG = "jdk11", + [string]$FILE = "Dockerfile", + [string]$FUNCTIONS_URI = "https://github.com/aem-design/aemdesign-docker/releases/latest/download/functions.ps1", + [string]$COMMAND = "docker build . -f .\${FILE} -t ${TAG}" +) + +$SKIP_CONFIG = $true +$PARENT_PROJECT_PATH = "." + +. ([Scriptblock]::Create((([System.Text.Encoding]::ASCII).getString((Invoke-WebRequest -Uri "${FUNCTIONS_URI}").Content)))) + +printSectionBanner "Loading Debug Image" +printSectionLine "$COMMAND" "warn" + +$IMAGENAME=Select-String -path $FILE '.*imagename="(.*)".*' -AllMatches | Foreach-Object {$_.Matches} | Foreach-Object {$_.Groups[1].Value} + +docker run -it --rm -v ${PWD}:/build/source:rw aemdesign/centos-java-buildpack bash --login diff --git a/test/run_tests.sh b/test/run_tests.sh new file mode 100644 index 0000000..b90ee0d --- /dev/null +++ b/test/run_tests.sh @@ -0,0 +1,152 @@ +#!/bin/bash +# +# The 'run' performs a simple test that verifies that STI image. +# The main focus is that the image prints out the base-usage properly. +# +# IMAGE_NAME specifies a name of the candidate image used for testing. +# The image has to be available before this script is executed. +# +IMAGE_NAME=${1:-aemdesign/centos-java-buildpack} +FLAG_DEBUG=${2:-true} +IP=$(which ip) +if [[ -z $IP ]]; then + LOCAL_IP="localhost" +else + LOCAL_IP=$($IP route | awk '/default/ { print $3 }') +fi + + + +#debug(message,type[error,info,warning],newlinesiffix) +function debug { + + local DEFAULT_COLOR_WARN="\033[0;31;93m" #light yellow + local DEFAULT_COLOR_ERROR="\033[0;31;91m" #light red + local DEFAULT_COLOR_INFO="\033[0;31;94m" #light blue + local DEFAULT_COLOR_DEFAULT="\033[0;31;92m" #light green + local DEFAULT_COLOR_RESET="\033[0m" #light green + + COLOR_WARN="${COLOR_WARN:-$DEFAULT_COLOR_WARN}" #light yellow + COLOR_ERROR="${COLOR_ERROR:-$DEFAULT_COLOR_ERROR}" #light red + COLOR_INFO="${COLOR_INFO:-$DEFAULT_COLOR_INFO}" #light blue + COLOR_DEFAULT="${COLOR_DEFAULT:-$DEFAULT_COLOR_DEFAULT}" #light green + COLOR_RESET="${COLOR_RESET:-$DEFAULT_COLOR_RESET}" #light green + + LABEL_WARN="${LABEL_WARN:-*WARN*}" + LABEL_ERROR="${LABEL_ERROR:-*ERROR*}" + LABEL_INFO="${LABEL_INFO:-*INFO*}" + LABEL_DEFAULT="${LABEL_DEFAULT:-}" + + + COLOR_START="$COLOR_DEFAULT" + COLOR_END="$COLOR_RESET" + + local TEXT="${1:-}" + local TYPE="${2:-}" + local LABEL_TEXT="" + local TEXT_SUFFUX="" + local NEWLINESUFFUX=$3 + + if [ ! "$NEWLINESUFFUX" == "" ]; then + TEXT_SUFFUX="$NEWLINESUFFUX" + fi + + case $TYPE in + ("error") COLOR_START="$COLOR_ERROR" LABEL_TEXT="$LABEL_ERROR " COLOR_END="$COLOR_END";; + ("info") COLOR_START="$COLOR_INFO" LABEL_TEXT="$LABEL_INFO ";; + ("warn") COLOR_START="$COLOR_WARN" LABEL_TEXT="$LABEL_WARN ";; + esac + + + if [ "$FLAG_DEBUG" == "true" ]; then + + local LABEL="" + if [ "$FLAG_DEBUG_LABEL" == "true" ]; then + LABEL=${LABEL_TEXT:-} + fi + + TEXT="${TEXT//#d:/$COLOR_DEFAULT}" + TEXT="${TEXT//#w:/$COLOR_WARN}" + TEXT="${TEXT//#e:/$COLOR_ERROR}" + TEXT="${TEXT//#i:/$COLOR_INFO}" + TEXT="${TEXT//#r:/$COLOR_INFO}" + + echo -e "$COLOR_START$LABEL$TEXT$TEXT_SUFFUX$COLOR_END" +# printf "$COLOR_START%s%s$COLOR_END$TEXT_SUFFUX" "$LABEL" "$TEXT" + fi +} + + +printTitle() { + echo -n ${1:-Test} +} +printLine() { + echo ${1:-Test} +} +printResult() { + debug "${1:-fail}" "${1:-fail}" +} +printDebug() { + debug "$(printf '*%.0s' {1..100})" "error" + echo ${1:-Test Failed} + echo "${2:-No Output}" + debug "$(printf '*%.0s' {1..100})" "error" +} + +test_usage_java() { + printLine "Testing java" + CHECK="1.8" + + printLine "Starting Container" + + OUTPUT=$(docker run --rm ${IMAGE_NAME} java -version 2>&1 | grep 'java version' | sed -e 's/.*java version "\(.*\)".*/\1/') + + if [[ "$OUTPUT" != *"$CHECK"* ]]; then + printResult "error" + printDebug "Image '${IMAGE_NAME}' test FAILED could not find ${CHECK} in output" "${OUTPUT}" + exit 1 + else + printResult "success" + fi +} + +test_usage_node() { + printLine "Testing node" + CHECK="$(cat ../Dockerfile | grep -m1 NODE_VERSION | sed -e 's/.*NODE_VERSION="\(.*\)".*/\1/g')" + COMMAND="$(cat ../Dockerfile | grep -m1 test.command | sed -e 's/.*test.command="\(.*\)".*/\1/g')" + + printLine "Starting Container" + + OUTPUT=$(docker run --rm ${IMAGE_NAME} bash --login -c "${COMMAND}") + + if [[ "$OUTPUT" != *"$CHECK"* ]]; then + printResult "error" + printDebug "Image '${IMAGE_NAME}' test FAILED could not find ${CHECK} in output" "${OUTPUT}" + exit 1 + else + printResult "success" + fi +} + +test_usage_maven() { + printLine "Testing maven" + CHECK="$(cat ../Dockerfile | grep -m1 MAVEN_VERSION | sed -e 's/.*MAVEN_VERSION="\(.*\)".*/\1/g')" + + printLine "Starting Container" + + OUTPUT=$(docker run --rm ${IMAGE_NAME} mvn -version) + + if [[ "$OUTPUT" != *"$CHECK"* ]]; then + printResult "error" + printDebug "Image '${IMAGE_NAME}' test FAILED could not find ${CHECK} in output" "${OUTPUT}" + exit 1 + else + printResult "success" + fi +} + +test_usage_java + +test_usage_node + +test_usage_maven From df16237a658500c089e3eb1faff173eb6fedef97 Mon Sep 17 00:00:00 2001 From: wildone Date: Mon, 29 Mar 2021 16:25:02 +1100 Subject: [PATCH 17/37] split into steps --- Dockerfile | 35 ++++++++++++++++++++++++++--------- 1 file changed, 26 insertions(+), 9 deletions(-) diff --git a/Dockerfile b/Dockerfile index a0822e8..bcb5ba5 100644 --- a/Dockerfile +++ b/Dockerfile @@ -21,35 +21,52 @@ RUN \ echo "GET INFO ABOUT JDK" && \ # get download page echo JAVA_DOWNLOAD_URL=$JAVA_DOWNLOAD_URL && \ - AUTO_PAGE=$(curl -LsN ${JAVA_DOWNLOAD_URL}) && \ + AUTO_PAGE=$(curl -LsN ${JAVA_DOWNLOAD_URL}) +RUN \ # get checksum url from download page AUTO_CHECKSUM_URL=https:$(echo ${AUTO_PAGE} | sed -e 's/.*href="\(.*-checksum.html\)".*/\1/g') && \ - echo AUTO_CHECKSUM_URL=${AUTO_CHECKSUM_URL} && \ + echo AUTO_CHECKSUM_URL=${AUTO_CHECKSUM_URL} + +RUN \ # get the checksum url - AUTO_PAGE_CHECKSUM=$(curl -LsN ${AUTO_CHECKSUM_URL}) && \ + AUTO_PAGE_CHECKSUM=$(curl -LsN ${AUTO_CHECKSUM_URL}) + +RUN \ # find jdk reference in downlaod page AUTO_JDKURLINFO=$(curl -LsN ${JAVA_DOWNLOAD_URL} | grep -m1 jdk\-${JAVA_VERSION}.*linux.*x64.*.rpm ) && \ - echo AUTO_JDKURLINFO=${AUTO_JDKURLINFO} && \ + echo AUTO_JDKURLINFO=${AUTO_JDKURLINFO} + +RUN \ # get jdk url AUTO_JDKURL=$(echo ${AUTO_JDKURLINFO} | sed -e "s/.*data-file='\(https.*.rpm\)'.*/\1/g" ) && \ - echo AUTO_JDKURL=$AUTO_JDKURL && \ + echo AUTO_JDKURL=$AUTO_JDKURL + +RUN \ # get jdk filename AUTO_JDKFILE=$(echo ${AUTO_JDKURL} | sed 's/.*\///' ) && \ - echo AUTO_JDKFILE=$AUTO_JDKFILE && \ + echo AUTO_JDKFILE=$AUTO_JDKFILE + +RUN \ # get checksum value AUTO_CHECKSUM_VALUE=$(echo "${AUTO_PAGE_CHECKSUM}" | grep -m1 ${AUTO_JDKFILE}) && \ echo AUTO_CHECKSUM_VALUE=${AUTO_CHECKSUM_VALUE} && \ AUTO_JDKSHA256=$(echo ${AUTO_CHECKSUM_VALUE} | sed -e 's/.*sha256: \([0-9a-z]*\).*/\1/g' ) && \ - echo AUTO_JDKSHA256=$AUTO_JDKSHA256 && \ + echo AUTO_JDKSHA256=$AUTO_JDKSHA256 + +RUN \ echo "DOWNLOAD JDK" && \ # download jdk echo ./oracle-download.sh -C accept-securebackup-cookie -O ${AUTO_JDKFILE} -P ${ORACLE_PASSWORD} -U ${ORACLE_USERNAME} ${AUTO_JDKURL} && \ bash ./oracle-download.sh -C accept-securebackup-cookie -O ${AUTO_JDKFILE} -P ${ORACLE_PASSWORD} -U ${ORACLE_USERNAME} ${AUTO_JDKURL} && \ - ls -l && \ + ls -l + +RUN \ # verify jdk signature echo "${AUTO_JDKSHA256} ${AUTO_JDKFILE}" >> CHECKSUM && \ cat CHECKSUM && \ - sha256sum -c CHECKSUM && \ + sha256sum -c CHECKSUM + +RUN \ echo "INSTALL JDK" && \ # install jdk rpm -Uvh $AUTO_JDKFILE && \ From a389d6864735c2e98c1f17662b437ee97d135ea1 Mon Sep 17 00:00:00 2001 From: wildone Date: Mon, 29 Mar 2021 16:28:50 +1100 Subject: [PATCH 18/37] update checksum url --- Dockerfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Dockerfile b/Dockerfile index bcb5ba5..b56897b 100644 --- a/Dockerfile +++ b/Dockerfile @@ -24,7 +24,7 @@ RUN \ AUTO_PAGE=$(curl -LsN ${JAVA_DOWNLOAD_URL}) RUN \ # get checksum url from download page - AUTO_CHECKSUM_URL=https:$(echo ${AUTO_PAGE} | sed -e 's/.*href="\(.*-checksum.html\)".*/\1/g') && \ + AUTO_CHECKSUM_URL=https:$(echo ${AUTO_PAGE} | sed -e 's/.*href="\(.*checksum.html\)".*/\1/g') && \ echo AUTO_CHECKSUM_URL=${AUTO_CHECKSUM_URL} RUN \ From 055134ddc670b97b268ff60647af518df0c35a1a Mon Sep 17 00:00:00 2001 From: wildone Date: Mon, 29 Mar 2021 16:31:43 +1100 Subject: [PATCH 19/37] update url --- Dockerfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Dockerfile b/Dockerfile index b56897b..8b848fb 100644 --- a/Dockerfile +++ b/Dockerfile @@ -11,7 +11,7 @@ LABEL os="centos 8" \ ARG JAVA_VERSION="8" ARG JAVA_VERSION_TIMESTAMP="2133151" -ARG JAVA_DOWNLOAD_URL="https://www.oracle.com/au/java/technologies/javase-jdk${JAVA_VERSION}-downloads.html" +ARG JAVA_DOWNLOAD_URL="https://www.oracle.com/au/java/technologies/javase/javase-jdk8-downloads.html" ARG ORACLE_PASSWORD="xxx" ARG ORACLE_USERNAME="devops.aemdesign@gmail.com" From f6e61f644d207348ad29f82707aa04f7a9ad905c Mon Sep 17 00:00:00 2001 From: wildone Date: Mon, 29 Mar 2021 16:35:41 +1100 Subject: [PATCH 20/37] update url --- Dockerfile | 37 ++++++++++--------------------------- 1 file changed, 10 insertions(+), 27 deletions(-) diff --git a/Dockerfile b/Dockerfile index 8b848fb..baba761 100644 --- a/Dockerfile +++ b/Dockerfile @@ -11,7 +11,7 @@ LABEL os="centos 8" \ ARG JAVA_VERSION="8" ARG JAVA_VERSION_TIMESTAMP="2133151" -ARG JAVA_DOWNLOAD_URL="https://www.oracle.com/au/java/technologies/javase/javase-jdk8-downloads.html" +ARG JAVA_DOWNLOAD_URL="https://www.oracle.com/au/java/technologies/javase-jdk${JAVA_VERSION}-downloads.html" ARG ORACLE_PASSWORD="xxx" ARG ORACLE_USERNAME="devops.aemdesign@gmail.com" @@ -21,52 +21,35 @@ RUN \ echo "GET INFO ABOUT JDK" && \ # get download page echo JAVA_DOWNLOAD_URL=$JAVA_DOWNLOAD_URL && \ - AUTO_PAGE=$(curl -LsN ${JAVA_DOWNLOAD_URL}) -RUN \ + AUTO_PAGE=$(curl -LsN ${JAVA_DOWNLOAD_URL}) && \ # get checksum url from download page AUTO_CHECKSUM_URL=https:$(echo ${AUTO_PAGE} | sed -e 's/.*href="\(.*checksum.html\)".*/\1/g') && \ - echo AUTO_CHECKSUM_URL=${AUTO_CHECKSUM_URL} - -RUN \ + echo AUTO_CHECKSUM_URL=${AUTO_CHECKSUM_URL} && \ # get the checksum url - AUTO_PAGE_CHECKSUM=$(curl -LsN ${AUTO_CHECKSUM_URL}) - -RUN \ + AUTO_PAGE_CHECKSUM=$(curl -LsN ${AUTO_CHECKSUM_URL}) && \ # find jdk reference in downlaod page AUTO_JDKURLINFO=$(curl -LsN ${JAVA_DOWNLOAD_URL} | grep -m1 jdk\-${JAVA_VERSION}.*linux.*x64.*.rpm ) && \ - echo AUTO_JDKURLINFO=${AUTO_JDKURLINFO} - -RUN \ + echo AUTO_JDKURLINFO=${AUTO_JDKURLINFO} && \ # get jdk url AUTO_JDKURL=$(echo ${AUTO_JDKURLINFO} | sed -e "s/.*data-file='\(https.*.rpm\)'.*/\1/g" ) && \ - echo AUTO_JDKURL=$AUTO_JDKURL - -RUN \ + echo AUTO_JDKURL=$AUTO_JDKURL && \ # get jdk filename AUTO_JDKFILE=$(echo ${AUTO_JDKURL} | sed 's/.*\///' ) && \ - echo AUTO_JDKFILE=$AUTO_JDKFILE - -RUN \ + echo AUTO_JDKFILE=$AUTO_JDKFILE && \ # get checksum value AUTO_CHECKSUM_VALUE=$(echo "${AUTO_PAGE_CHECKSUM}" | grep -m1 ${AUTO_JDKFILE}) && \ echo AUTO_CHECKSUM_VALUE=${AUTO_CHECKSUM_VALUE} && \ AUTO_JDKSHA256=$(echo ${AUTO_CHECKSUM_VALUE} | sed -e 's/.*sha256: \([0-9a-z]*\).*/\1/g' ) && \ - echo AUTO_JDKSHA256=$AUTO_JDKSHA256 - -RUN \ + echo AUTO_JDKSHA256=$AUTO_JDKSHA256 && \ echo "DOWNLOAD JDK" && \ # download jdk echo ./oracle-download.sh -C accept-securebackup-cookie -O ${AUTO_JDKFILE} -P ${ORACLE_PASSWORD} -U ${ORACLE_USERNAME} ${AUTO_JDKURL} && \ bash ./oracle-download.sh -C accept-securebackup-cookie -O ${AUTO_JDKFILE} -P ${ORACLE_PASSWORD} -U ${ORACLE_USERNAME} ${AUTO_JDKURL} && \ - ls -l - -RUN \ + ls -l && \ # verify jdk signature echo "${AUTO_JDKSHA256} ${AUTO_JDKFILE}" >> CHECKSUM && \ cat CHECKSUM && \ - sha256sum -c CHECKSUM - -RUN \ + sha256sum -c CHECKSUM && \ echo "INSTALL JDK" && \ # install jdk rpm -Uvh $AUTO_JDKFILE && \ From e8ef82cea90369aefb11f6d18f2904cbb32dce13 Mon Sep 17 00:00:00 2001 From: wildone Date: Mon, 29 Mar 2021 16:40:26 +1100 Subject: [PATCH 21/37] update url --- .gitignore | 1 + Dockerfile | 2 +- test/run_tests.sh | 46 ++++------------------------------------------ 3 files changed, 6 insertions(+), 43 deletions(-) diff --git a/.gitignore b/.gitignore index b5dd703..5e5f546 100644 --- a/.gitignore +++ b/.gitignore @@ -10,6 +10,7 @@ maven-eclipse.xml *.ipr *.iws .DS_Store +*.rpm target/ logs/ diff --git a/Dockerfile b/Dockerfile index baba761..718e855 100644 --- a/Dockerfile +++ b/Dockerfile @@ -31,7 +31,7 @@ RUN \ AUTO_JDKURLINFO=$(curl -LsN ${JAVA_DOWNLOAD_URL} | grep -m1 jdk\-${JAVA_VERSION}.*linux.*x64.*.rpm ) && \ echo AUTO_JDKURLINFO=${AUTO_JDKURLINFO} && \ # get jdk url - AUTO_JDKURL=$(echo ${AUTO_JDKURLINFO} | sed -e "s/.*data-file='\(https.*.rpm\)'.*/\1/g" ) && \ + AUTO_JDKURL=$(echo ${AUTO_JDKURLINFO} | sed -e "s/.*data-file='\(//.*.rpm\)'.*/\1/g" ) && \ echo AUTO_JDKURL=$AUTO_JDKURL && \ # get jdk filename AUTO_JDKFILE=$(echo ${AUTO_JDKURL} | sed 's/.*\///' ) && \ diff --git a/test/run_tests.sh b/test/run_tests.sh index b90ee0d..3cfe158 100644 --- a/test/run_tests.sh +++ b/test/run_tests.sh @@ -6,7 +6,7 @@ # IMAGE_NAME specifies a name of the candidate image used for testing. # The image has to be available before this script is executed. # -IMAGE_NAME=${1:-aemdesign/centos-java-buildpack} +IMAGE_NAME=${1:-aemdesign/oracle-jdk} FLAG_DEBUG=${2:-true} IP=$(which ip) if [[ -z $IP ]]; then @@ -93,8 +93,8 @@ printDebug() { debug "$(printf '*%.0s' {1..100})" "error" } -test_usage_java() { - printLine "Testing java" +test_docker_run_usage() { + printLine "Testing 'docker run' usage" CHECK="1.8" printLine "Starting Container" @@ -110,43 +110,5 @@ test_usage_java() { fi } -test_usage_node() { - printLine "Testing node" - CHECK="$(cat ../Dockerfile | grep -m1 NODE_VERSION | sed -e 's/.*NODE_VERSION="\(.*\)".*/\1/g')" - COMMAND="$(cat ../Dockerfile | grep -m1 test.command | sed -e 's/.*test.command="\(.*\)".*/\1/g')" - printLine "Starting Container" - - OUTPUT=$(docker run --rm ${IMAGE_NAME} bash --login -c "${COMMAND}") - - if [[ "$OUTPUT" != *"$CHECK"* ]]; then - printResult "error" - printDebug "Image '${IMAGE_NAME}' test FAILED could not find ${CHECK} in output" "${OUTPUT}" - exit 1 - else - printResult "success" - fi -} - -test_usage_maven() { - printLine "Testing maven" - CHECK="$(cat ../Dockerfile | grep -m1 MAVEN_VERSION | sed -e 's/.*MAVEN_VERSION="\(.*\)".*/\1/g')" - - printLine "Starting Container" - - OUTPUT=$(docker run --rm ${IMAGE_NAME} mvn -version) - - if [[ "$OUTPUT" != *"$CHECK"* ]]; then - printResult "error" - printDebug "Image '${IMAGE_NAME}' test FAILED could not find ${CHECK} in output" "${OUTPUT}" - exit 1 - else - printResult "success" - fi -} - -test_usage_java - -test_usage_node - -test_usage_maven +test_docker_run_usage From 78bb3e6179cf6fec7d35deb560a62cfbdfd2c985 Mon Sep 17 00:00:00 2001 From: wildone Date: Mon, 29 Mar 2021 16:42:43 +1100 Subject: [PATCH 22/37] update url --- Dockerfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Dockerfile b/Dockerfile index 718e855..6576112 100644 --- a/Dockerfile +++ b/Dockerfile @@ -31,7 +31,7 @@ RUN \ AUTO_JDKURLINFO=$(curl -LsN ${JAVA_DOWNLOAD_URL} | grep -m1 jdk\-${JAVA_VERSION}.*linux.*x64.*.rpm ) && \ echo AUTO_JDKURLINFO=${AUTO_JDKURLINFO} && \ # get jdk url - AUTO_JDKURL=$(echo ${AUTO_JDKURLINFO} | sed -e "s/.*data-file='\(//.*.rpm\)'.*/\1/g" ) && \ + AUTO_JDKURL=$(echo ${AUTO_JDKURLINFO} | sed -e "s/.*data-file='\(\/\/.*.rpm\)'.*/\1/g" ) && \ echo AUTO_JDKURL=$AUTO_JDKURL && \ # get jdk filename AUTO_JDKFILE=$(echo ${AUTO_JDKURL} | sed 's/.*\///' ) && \ From c2cb2c873ebd36f201606953b2262458208487b2 Mon Sep 17 00:00:00 2001 From: wildone Date: Mon, 29 Mar 2021 16:44:41 +1100 Subject: [PATCH 23/37] update url --- Dockerfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Dockerfile b/Dockerfile index 6576112..3d84ada 100644 --- a/Dockerfile +++ b/Dockerfile @@ -31,7 +31,7 @@ RUN \ AUTO_JDKURLINFO=$(curl -LsN ${JAVA_DOWNLOAD_URL} | grep -m1 jdk\-${JAVA_VERSION}.*linux.*x64.*.rpm ) && \ echo AUTO_JDKURLINFO=${AUTO_JDKURLINFO} && \ # get jdk url - AUTO_JDKURL=$(echo ${AUTO_JDKURLINFO} | sed -e "s/.*data-file='\(\/\/.*.rpm\)'.*/\1/g" ) && \ + AUTO_JDKURL=$(echo https:${AUTO_JDKURLINFO} | sed -e "s/.*data-file='\(\/\/.*.rpm\)'.*/\1/g" ) && \ echo AUTO_JDKURL=$AUTO_JDKURL && \ # get jdk filename AUTO_JDKFILE=$(echo ${AUTO_JDKURL} | sed 's/.*\///' ) && \ From fd3476741b444ac9fd7dde95034595d2a5d26a8b Mon Sep 17 00:00:00 2001 From: wildone Date: Mon, 29 Mar 2021 16:46:54 +1100 Subject: [PATCH 24/37] update url --- Dockerfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Dockerfile b/Dockerfile index 3d84ada..17c730b 100644 --- a/Dockerfile +++ b/Dockerfile @@ -31,7 +31,7 @@ RUN \ AUTO_JDKURLINFO=$(curl -LsN ${JAVA_DOWNLOAD_URL} | grep -m1 jdk\-${JAVA_VERSION}.*linux.*x64.*.rpm ) && \ echo AUTO_JDKURLINFO=${AUTO_JDKURLINFO} && \ # get jdk url - AUTO_JDKURL=$(echo https:${AUTO_JDKURLINFO} | sed -e "s/.*data-file='\(\/\/.*.rpm\)'.*/\1/g" ) && \ + AUTO_JDKURL=https:$(echo ${AUTO_JDKURLINFO} | sed -e "s/.*data-file='\(\/\/.*.rpm\)'.*/\1/g" ) && \ echo AUTO_JDKURL=$AUTO_JDKURL && \ # get jdk filename AUTO_JDKFILE=$(echo ${AUTO_JDKURL} | sed 's/.*\///' ) && \ From ec9d4e456618bc35ffe521a3380f345d607b6524 Mon Sep 17 00:00:00 2001 From: wildone Date: Sun, 16 May 2021 00:21:34 +1000 Subject: [PATCH 25/37] update gitattibutes [skip ci] --- .gitattributes | 31 +++++++++++++++++++++++++++++++ 1 file changed, 31 insertions(+) create mode 100644 .gitattributes diff --git a/.gitattributes b/.gitattributes new file mode 100644 index 0000000..4595cc3 --- /dev/null +++ b/.gitattributes @@ -0,0 +1,31 @@ +* text eol=crlf +* text eol=lf + +*.zip filter=lfs diff=lfs merge=lfs -text +*.jar filter=lfs diff=lfs merge=lfs -text +*.tar.gz filter=lfs diff=lfs merge=lfs -text +*.jpg filter=lfs diff=lfs merge=lfs -text +*.jpeg filter=lfs diff=lfs merge=lfs -text +*.tiff filter=lfs diff=lfs merge=lfs -text +*.ico filter=lfs diff=lfs merge=lfs -text +*.gif filter=lfs diff=lfs merge=lfs -text +*.png filter=lfs diff=lfs merge=lfs -text +original filter=lfs diff=lfs merge=lfs -text +file filter=lfs diff=lfs merge=lfs -text +folderThumbnail filter=lfs diff=lfs merge=lfs -text +*.woff filter=lfs diff=lfs merge=lfs -text +*.woff2 filter=lfs diff=lfs merge=lfs -text +*.eot filter=lfs diff=lfs merge=lfs -text +*.ttf filter=lfs diff=lfs merge=lfs -text +*.mp4 filter=lfs diff=lfs merge=lfs -text +*.flv filter=lfs diff=lfs merge=lfs -text +*.m4v filter=lfs diff=lfs merge=lfs -text +*.avi filter=lfs diff=lfs merge=lfs -text +*.psd filter=lfs diff=lfs merge=lfs -text +*.pdf filter=lfs diff=lfs merge=lfs -text +*.3gp filter=lfs diff=lfs merge=lfs -text +*.ogv filter=lfs diff=lfs merge=lfs -text +*.webm filter=lfs diff=lfs merge=lfs -text +*.wdmg filter=lfs diff=lfs merge=lfs -text +*.svg filter=lfs diff=lfs merge=lfs -text +*.sftmp filter=lfs diff=lfs merge=lfs -text From 3124cc1bba41d4b4745bc6756b67180dc1582e1e Mon Sep 17 00:00:00 2001 From: wildone Date: Sun, 6 Feb 2022 01:49:07 +1100 Subject: [PATCH 26/37] move to debian. --- .github/workflows/build.yml | 92 +++++++++++++++++++++++-------------- Dockerfile | 55 ++++++---------------- README.md | 85 ++++------------------------------ build.ps1 | 6 +-- debug.ps1 | 4 +- gdrive.sh | 45 ++++++++++++++++++ oracle-download.sh | 10 +++- 7 files changed, 141 insertions(+), 156 deletions(-) create mode 100644 gdrive.sh diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 116f336..6178c87 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -1,6 +1,9 @@ name: build -on: [push] +on: + push: + branches: + - '*' jobs: build: @@ -11,49 +14,70 @@ jobs: ORGANISATION_NAME: aemdesign DOCKER_USERNAME: ${{ secrets.DOCKER_USERNAME }} DOCKER_PASSWORD: ${{ secrets.DOCKER_PASSWORD }} - ORACLE_PASSWORD: ${{ secrets.ORACLE_PASSWORD }} + JDK_DRIVEID: ${{ secrets.JDK_DRIVEID }} steps: - - name: Experimental Status - run: | - docker version -f '{{.Server.Experimental}}' - - name: Docker - run: | - docker version -f '{{.Server.Experimental}}' - export DOCKER_CLI_EXPERIMENTAL=enabled - docker version -f '{{.Server.Experimental}}' - sudo service docker restart - docker version -f '{{.Server.Experimental}}' - sudo rm /etc/docker/daemon.json - echo $'{\n "experimental": true\n}' | sudo tee /etc/docker/daemon.json - sudo service docker restart - docker version -f '{{.Server.Experimental}}' + - uses: actions/checkout@v2 - name: set envirnment variables id: config run: | source <(curl -sL https://github.com/aem-design/aemdesign-docker/releases/latest/download/github_get_config.sh) source <(curl -sL https://github.com/aem-design/aemdesign-docker/releases/latest/download/github_get_version.sh) - - name: build and test docker image - run: | - docker build --build-arg ORACLE_PASSWORD=$ORACLE_PASSWORD --pull --squash -t $IMAGE:$GIT_BRANCH . - (cd test && bash ./run_tests.sh "$IMAGE:$GIT_BRANCH") - docker images - - name: login to docker registry - run: echo "${{ secrets.DOCKER_PASSWORD }}" | docker login ${DOCKER_REGISTRY} -u "${{ secrets.DOCKER_USERNAME }}" --password-stdin - - name: push image version - run: | - docker push $IMAGE:$GIT_BRANCH - - name: push latest image on master - if: github.ref == 'refs/heads/master' - run: | - docker tag $IMAGE:$GIT_BRANCH $IMAGE:latest - docker push $IMAGE:latest - - name: update registry description with readme on master - if: github.ref == 'refs/heads/master' + - name: Set up QEMU + uses: docker/setup-qemu-action@v1 + - name: Set up Docker Buildx + uses: docker/setup-buildx-action@v1 + + - name: Login to DockerHub + uses: docker/login-action@v1 + with: + username: ${{ env.DOCKER_USERNAME }} + password: ${{ env.DOCKER_PASSWORD }} + - name: Login to GitHub Container Registry + uses: docker/login-action@v1 + with: + registry: ghcr.io + username: ${{ github.repository_owner }} + password: ${{ secrets.GITHUB_TOKEN }} + + - name: Build and export to Docker + uses: docker/build-push-action@v2 + with: + context: . + platforms: linux/arm64 + load: true + build-args: | + "JDK_DRIVEID=${{ env.JDK_DRIVEID }}" + tags: | + ${{ env.IMAGE }}:${{ env.GIT_BRANCH }} + ghcr.io/${{ github.repository_owner }}/${{ env.IMAGE }}:${{ env.GIT_BRANCH }} + + + - name: test docker image run: | - docker run --rm -v $(pwd):/data/ aemdesign/dockerhub-description "$DOCKER_USERNAME" "$DOCKER_PASSWORD" "$IMAGE" + cd test && bash ./run_tests.sh "ghcr.io/$GITHUB_REPOSITORY_OWNER/$IMAGE:$GIT_BRANCH" + + - name: Build and push + uses: docker/build-push-action@v2 + with: + context: . + platforms: linux/arm64 + push: true + build-args: | + "JDK_DRIVEID=${{ env.JDK_DRIVEID }}" + tags: | + ${{ env.IMAGE }}:${{ env.GIT_BRANCH }} + ghcr.io/${{ github.repository_owner }}/${{ env.IMAGE }}:${{ env.GIT_BRANCH }} + + - name: Update Docker Hub Description + uses: peter-evans/dockerhub-description@v2 + continue-on-error: true + with: + username: ${{ env.DOCKER_USERNAME }} + password: ${{ env.DOCKER_PASSWORD }} + repository: peterevans/dockerhub-description - uses: meeDamian/github-release@1.0 if: github.ref == 'refs/heads/master' with: diff --git a/Dockerfile b/Dockerfile index 17c730b..8dade83 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,6 +1,6 @@ -FROM aemdesign/centos-tini:centos8 + FROM aemdesign/tini:debian-arm -LABEL os="centos 8" \ +LABEL os="debian 8" \ container.description="oracle jdk" \ version="jdk8" \ maintainer="devops " \ @@ -12,45 +12,20 @@ LABEL os="centos 8" \ ARG JAVA_VERSION="8" ARG JAVA_VERSION_TIMESTAMP="2133151" ARG JAVA_DOWNLOAD_URL="https://www.oracle.com/au/java/technologies/javase-jdk${JAVA_VERSION}-downloads.html" -ARG ORACLE_PASSWORD="xxx" -ARG ORACLE_USERNAME="devops.aemdesign@gmail.com" +ARG JDK_DRIVEID="xxx" -COPY oracle-download.sh . +ENV JAVA_HOME=/opt/jdk1.8.0_321/ + +COPY gdrive.sh . RUN \ - echo "GET INFO ABOUT JDK" && \ - # get download page - echo JAVA_DOWNLOAD_URL=$JAVA_DOWNLOAD_URL && \ - AUTO_PAGE=$(curl -LsN ${JAVA_DOWNLOAD_URL}) && \ - # get checksum url from download page - AUTO_CHECKSUM_URL=https:$(echo ${AUTO_PAGE} | sed -e 's/.*href="\(.*checksum.html\)".*/\1/g') && \ - echo AUTO_CHECKSUM_URL=${AUTO_CHECKSUM_URL} && \ - # get the checksum url - AUTO_PAGE_CHECKSUM=$(curl -LsN ${AUTO_CHECKSUM_URL}) && \ - # find jdk reference in downlaod page - AUTO_JDKURLINFO=$(curl -LsN ${JAVA_DOWNLOAD_URL} | grep -m1 jdk\-${JAVA_VERSION}.*linux.*x64.*.rpm ) && \ - echo AUTO_JDKURLINFO=${AUTO_JDKURLINFO} && \ - # get jdk url - AUTO_JDKURL=https:$(echo ${AUTO_JDKURLINFO} | sed -e "s/.*data-file='\(\/\/.*.rpm\)'.*/\1/g" ) && \ - echo AUTO_JDKURL=$AUTO_JDKURL && \ - # get jdk filename - AUTO_JDKFILE=$(echo ${AUTO_JDKURL} | sed 's/.*\///' ) && \ - echo AUTO_JDKFILE=$AUTO_JDKFILE && \ - # get checksum value - AUTO_CHECKSUM_VALUE=$(echo "${AUTO_PAGE_CHECKSUM}" | grep -m1 ${AUTO_JDKFILE}) && \ - echo AUTO_CHECKSUM_VALUE=${AUTO_CHECKSUM_VALUE} && \ - AUTO_JDKSHA256=$(echo ${AUTO_CHECKSUM_VALUE} | sed -e 's/.*sha256: \([0-9a-z]*\).*/\1/g' ) && \ - echo AUTO_JDKSHA256=$AUTO_JDKSHA256 && \ - echo "DOWNLOAD JDK" && \ - # download jdk - echo ./oracle-download.sh -C accept-securebackup-cookie -O ${AUTO_JDKFILE} -P ${ORACLE_PASSWORD} -U ${ORACLE_USERNAME} ${AUTO_JDKURL} && \ - bash ./oracle-download.sh -C accept-securebackup-cookie -O ${AUTO_JDKFILE} -P ${ORACLE_PASSWORD} -U ${ORACLE_USERNAME} ${AUTO_JDKURL} && \ - ls -l && \ - # verify jdk signature - echo "${AUTO_JDKSHA256} ${AUTO_JDKFILE}" >> CHECKSUM && \ - cat CHECKSUM && \ - sha256sum -c CHECKSUM && \ + echo "DOWNLOAD JDK DONE" && \ + bash ./gdrive.sh "download" "${JDK_DRIVEID}" "/opt/jdk.tar.gz" && \ echo "INSTALL JDK" && \ - # install jdk - rpm -Uvh $AUTO_JDKFILE && \ - rm -f $AUTO_JDKFILE CHECKSUM + cd /opt/ && \ + tar -xvzf jdk.tar.gz && \ + export JAVA_HOME=${JAVA_HOME} && \ + update-alternatives --install /usr/bin/java java ${JAVA_HOME%*/}/bin/java 1 && \ + update-alternatives --install /usr/bin/javac javac ${JAVA_HOME%*/}/bin/javac 1 && \ + update-alternatives --config java && \ + rm -rf /opt/jdk.tar.gz diff --git a/README.md b/README.md index a118e79..41d3afc 100644 --- a/README.md +++ b/README.md @@ -1,84 +1,17 @@ -## CentOS 7 with Oracle JDK - -[![build_status](https://travis-ci.org/aem-design/oracle-jdk.svg?branch=master)](https://travis-ci.org/aem-design/oracle-jdk) -[![github license](https://img.shields.io/github/license/aem-design/oracle-jdk)](https://github.com/aem-design/oracle-jdk) -[![github issues](https://img.shields.io/github/issues/aem-design/oracle-jdk)](https://github.com/aem-design/oracle-jdk) -[![github last commit](https://img.shields.io/github/last-commit/aem-design/oracle-jdk)](https://github.com/aem-design/oracle-jdk) -[![github repo size](https://img.shields.io/github/repo-size/aem-design/oracle-jdk)](https://github.com/aem-design/oracle-jdk) -[![docker stars](https://img.shields.io/docker/stars/aemdesign/oracle-jdk)](https://hub.docker.com/r/aemdesign/oracle-jdk) -[![docker pulls](https://img.shields.io/docker/pulls/aemdesign/oracle-jdk)](https://hub.docker.com/r/aemdesign/oracle-jdk) +## Oracle JDK + +[![build](https://github.com/aem-design/docker-oracle-jdk/actions/workflows/build.yml/badge.svg?branch=jdk8)](https://github.com/aem-design/docker-oracle-jdk/actions/workflows/build.yml)[![github license](https://img.shields.io/github/license/aem-design/oracle-jdk)](https://github.com/aem-design/oracle-jdk) +[![github issues](https://img.shields.io/github/issues/aem-design/oracle-jdk)](https://github.com/aem-design/oracle-jdk) +[![github last commit](https://img.shields.io/github/last-commit/aem-design/oracle-jdk)](https://github.com/aem-design/oracle-jdk) +[![github repo size](https://img.shields.io/github/repo-size/aem-design/oracle-jdk)](https://github.com/aem-design/oracle-jdk) +[![docker stars](https://img.shields.io/docker/stars/aemdesign/oracle-jdk)](https://hub.docker.com/r/aemdesign/oracle-jdk) +[![docker pulls](https://img.shields.io/docker/pulls/aemdesign/oracle-jdk)](https://hub.docker.com/r/aemdesign/oracle-jdk) [![github release](https://img.shields.io/github/release/aem-design/oracle-jdk)](https://github.com/aem-design/oracle-jdk) -This is docker image based on [aemdesign/centos-tini](https://hub.docker.com/r/aemdesign/centos-tini/) with Oracle JDK added. +This is docker image based on [aemdesign/tini](https://hub.docker.com/r/aemdesign/tini/) with Oracle JDK added. ### Included Packages Following is the list of packages included * jdk - for java processes - -### Manual JDK Download Test - -Following script finds latest version of java package. - -JDK8 - -```bash -export JAVA_VERSION="8" && \ -export JAVA_VERSION_TIMESTAMP="2133151" && \ -export JAVA_DOWNLOAD_URL="http://www.oracle.com/technetwork/java/javase/downloads/jdk${JAVA_VERSION}-downloads-${JAVA_VERSION_TIMESTAMP}.html" && \ -export AUTO_JDKURLINFO=$(curl -LsN ${JAVA_DOWNLOAD_URL} | grep -m1 jdk\-${JAVA_VERSION}.*linux.*x64.*.rpm ) && \ -echo AUTO_JDKURLINFO=$AUTO_JDKURLINFO && \ -AUTO_JDKURL=$(echo ${AUTO_JDKURLINFO} | sed -e 's/.*"filepath":"\(http.*.rpm\)".*/\1/g' ) && \ -AUTO_JDKMD5=$(echo ${AUTO_JDKURLINFO} | sed -e 's/.*"MD5":"\(.*\)",".*/\1/g' ) && \ -AUTO_JDKFILE=$(echo ${AUTO_JDKURL} | sed 's,^[^ ]*/,,' ) && \ -echo JAVA_VERSION_TIMESTAMP=$JAVA_VERSION_TIMESTAMP && \ -echo JAVA_DOWNLOAD_URL=$JAVA_DOWNLOAD_URL && \ -echo AUTO_JDKURL=$AUTO_JDKURL && \ -echo AUTO_JDKMD5=$AUTO_JDKMD5 && \ -echo AUTO_JDKFILE=$AUTO_JDKFILE -``` - -JDK11 - -```bash -export JAVA_VERSION="11" && \ -export JAVA_VERSION_TIMESTAMP="5066655" && \ -export JAVA_DOWNLOAD_URL="http://www.oracle.com/technetwork/java/javase/downloads/jdk${JAVA_VERSION}-downloads-${JAVA_VERSION_TIMESTAMP}.html" && \ -export AUTO_JDKURLINFO=$(curl -LsN ${JAVA_DOWNLOAD_URL} | grep -m1 jdk\-${JAVA_VERSION}\.*linux\.*x64.*.rpm ) && \ -echo AUTO_JDKURLINFO=$AUTO_JDKURLINFO && \ -AUTO_JDKURL=$(echo ${AUTO_JDKURLINFO} | sed -e 's/.*"filepath":"\(http.*.rpm\)".*/\1/g' ) && \ -AUTO_JDKSHA256=$(echo ${AUTO_JDKURLINFO} | sed -e 's/.*"SHA256":"\(.*\)".*/\1/g' ) && \ -export AUTO_JDKFILE=$(echo ${AUTO_JDKURL} | sed 's,^[^ ]*/,,' ) && \ -echo JAVA_VERSION_TIMESTAMP=$JAVA_VERSION_TIMESTAMP && \ -echo JAVA_DOWNLOAD_URL=$JAVA_DOWNLOAD_URL && \ -echo AUTO_JDKURL=$AUTO_JDKURL && \ -echo AUTO_JDKSHA256=$AUTO_JDKSHA256 && \ -echo AUTO_JDKFILE=$AUTO_JDKFILE -``` - - -### Test - -Following is used to test if container version matches whats is expected. - - -Get build number for JDK8 - -```bash -export JAVA_VERSION="8" && \ -export JAVA_VERSION_TIMESTAMP="2133151" && \ -export JAVA_DOWNLOAD_URL="http://www.oracle.com/technetwork/java/javase/downloads/jdk${JAVA_VERSION}-downloads-${JAVA_VERSION_TIMESTAMP}.html" && \ -export AUTO_JDKURLINFO=$(curl -LsN ${JAVA_DOWNLOAD_URL} | grep -m1 jdk\-${JAVA_VERSION}.*linux.*x64.*.rpm ) && \ -AUTO_JDKURL=$(echo ${AUTO_JDKURLINFO} | sed -e 's/.*"filepath":"\(http.*.rpm\)".*/\1/g' ) && echo $AUTO_JDKURL | sed -e "s/.*jdk-${JAVA_VERSION}u\(.*\)[-_]linux.*/\1/g" -``` - -Get version number for JDK11 - -```bash -export JAVA_VERSION="11" && \ -export JAVA_VERSION_TIMESTAMP="5066655" && \ -export JAVA_DOWNLOAD_URL="http://www.oracle.com/technetwork/java/javase/downloads/jdk${JAVA_VERSION}-downloads-${JAVA_VERSION_TIMESTAMP}.html" && \ -export AUTO_JDKURLINFO=$(curl -LsN ${JAVA_DOWNLOAD_URL} | grep -m1 jdk\-${JAVA_VERSION}.*linux.*x64.*.rpm ) && \ -AUTO_JDKURL=$(echo ${AUTO_JDKURLINFO} | sed -e 's/.*"filepath":"\(http.*.rpm\)".*/\1/g' ) && echo $AUTO_JDKURL | sed -e "s/.*jdk-\(.*\)[-_]linux.*/\1/g" -``` diff --git a/build.ps1 b/build.ps1 index 70c2519..1c2dda7 100644 --- a/build.ps1 +++ b/build.ps1 @@ -2,10 +2,10 @@ Param( [string]$LOG_PATH = "${PWD}\logs", [string]$LOG_PEFIX = "docker", [string]$LOG_SUFFIX = ".log", - [string]$TAG = "jdk11", + [string]$TAG = "jdk8", [string]$FILE = "Dockerfile", [string]$FUNCTIONS_URI = "https://github.com/aem-design/aemdesign-docker/releases/latest/download/functions.ps1", - [string]$COMMAND = "docker build --build-arg ORACLE_PASSWORD=$ORACLE_PASSWORD . -f .\${FILE} -t ${TAG}" + [string]$COMMAND = "docker buildx build --platform linux/arm64 --build-arg JDK_DRIVEID=$env:JDK_DRIVEID . -f .\${FILE} -t ${TAG}" ) $SKIP_CONFIG = $true @@ -14,7 +14,7 @@ $PARENT_PROJECT_PATH = "." . ([Scriptblock]::Create((([System.Text.Encoding]::ASCII).getString((Invoke-WebRequest -Uri "${FUNCTIONS_URI}").Content)))) printSectionBanner "Building Image" -printSectionLine ( $COMMAND -replace $ORACLE_PASSWORD, $( "*" * $ORACLE_PASSWORD.length ) ) "warn" +printSectionLine ( $COMMAND -replace $JDK_DRIVEID, $( "*" * $JDK_DRIVEID.length ) ) "warn" Invoke-Expression -Command "$COMMAND" | Tee-Object -Append -FilePath "${LOG_FILE}" diff --git a/debug.ps1 b/debug.ps1 index 5163961..ca7e048 100644 --- a/debug.ps1 +++ b/debug.ps1 @@ -2,7 +2,7 @@ Param( [string]$LOG_PATH = "${PWD}\logs", [string]$LOG_PEFIX = "docker", [string]$LOG_SUFFIX = ".log", - [string]$TAG = "jdk11", + [string]$TAG = "jdk8", [string]$FILE = "Dockerfile", [string]$FUNCTIONS_URI = "https://github.com/aem-design/aemdesign-docker/releases/latest/download/functions.ps1", [string]$COMMAND = "docker build . -f .\${FILE} -t ${TAG}" @@ -18,4 +18,4 @@ printSectionLine "$COMMAND" "warn" $IMAGENAME=Select-String -path $FILE '.*imagename="(.*)".*' -AllMatches | Foreach-Object {$_.Matches} | Foreach-Object {$_.Groups[1].Value} -docker run -it --rm -v ${PWD}:/build/source:rw aemdesign/centos-java-buildpack bash --login +docker run -it --rm -v ${PWD}:/build/source:rw aemdesign/java-buildpack bash --login diff --git a/gdrive.sh b/gdrive.sh new file mode 100644 index 0000000..0db32bd --- /dev/null +++ b/gdrive.sh @@ -0,0 +1,45 @@ +#!/bin/bash + +function help() { +echo "Usage:" +echo " ./gdrive.sh [ACTION] [FILE ID] [FILE NAME]" +echo "" +echo " ACTIONS" +echo " - download" +} + +function download() { + + local FILEID=${1?Need file id} + local FILENAME=${2?Need file name} + echo "download: $FILEID" + + if [[ ! -d /tmp ]]; then + echo "Creating temp folder" + mkdir /tmp + fi + + curl -c /tmp/cookie -s -L "https://drive.google.com/uc?export=download&id=${FILEID}" > /dev/null + curl -Lb /tmp/cookie "https://drive.google.com/uc?export=download&confirm=`awk '/download/ {print $NF}' /tmp/cookie`&id=${FILEID}" -o ${FILENAME} + rm -rf /tmp/cookie +} + +function main() { + local ACTION=${1?Need action} + local FILEID=${2?Need file id} + local FILENAME=${3?Need file name} + + case $ACTION in + download) + download "$FILEID" "$FILENAME" + ;; + *) + help + ;; + esac + + +} + + +main "$@" diff --git a/oracle-download.sh b/oracle-download.sh index 299f018..86f5a90 100755 --- a/oracle-download.sh +++ b/oracle-download.sh @@ -131,6 +131,14 @@ down() { OUTPUT_FILE=${URL##*/} fi + echo curl -L -o ${OUTPUT_FILE} -b ${COOKIES_FILE} -c ${COOKIES_FILE} 'https://login.oracle.com/oam/server/sso/auth_cred_submit' \ + -H "Cookie: s_cc=true; oraclelicense=${COOKIE_ACCEPT_LICENSE};" \ + -H "User-Agent: ${USER_AGENT}" \ + --data-urlencode "ssousername=${ORCL_USER}" \ + --data-urlencode "password=${ORCL_PWD}" \ + -d "${data_string}" \ + --compressed + # download file curl -L -o ${OUTPUT_FILE} -b ${COOKIES_FILE} -c ${COOKIES_FILE} 'https://login.oracle.com/oam/server/sso/auth_cred_submit' \ -H "Cookie: s_cc=true; oraclelicense=${COOKIE_ACCEPT_LICENSE};" \ @@ -218,4 +226,4 @@ if [ -z "${COOKIE_ACCEPT_LICENSE}" ]; then fi check_cmds_present -down \ No newline at end of file +down From 3de82638b48f41763aef7b472ec5f99dede114e5 Mon Sep 17 00:00:00 2001 From: wildone Date: Sun, 6 Feb 2022 02:03:03 +1100 Subject: [PATCH 27/37] build amd64. --- .github/workflows/build.yml | 4 ++-- Dockerfile | 3 --- build.ps1 | 2 +- 3 files changed, 3 insertions(+), 6 deletions(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 6178c87..15fbe28 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -46,7 +46,7 @@ jobs: uses: docker/build-push-action@v2 with: context: . - platforms: linux/arm64 + platforms: linux/amd64 load: true build-args: | "JDK_DRIVEID=${{ env.JDK_DRIVEID }}" @@ -63,7 +63,7 @@ jobs: uses: docker/build-push-action@v2 with: context: . - platforms: linux/arm64 + platforms: linux/amd64 push: true build-args: | "JDK_DRIVEID=${{ env.JDK_DRIVEID }}" diff --git a/Dockerfile b/Dockerfile index 8dade83..582a02f 100644 --- a/Dockerfile +++ b/Dockerfile @@ -9,9 +9,6 @@ LABEL os="debian 8" \ test.command.verify="1.8" -ARG JAVA_VERSION="8" -ARG JAVA_VERSION_TIMESTAMP="2133151" -ARG JAVA_DOWNLOAD_URL="https://www.oracle.com/au/java/technologies/javase-jdk${JAVA_VERSION}-downloads.html" ARG JDK_DRIVEID="xxx" ENV JAVA_HOME=/opt/jdk1.8.0_321/ diff --git a/build.ps1 b/build.ps1 index 1c2dda7..4d9b1d8 100644 --- a/build.ps1 +++ b/build.ps1 @@ -5,7 +5,7 @@ Param( [string]$TAG = "jdk8", [string]$FILE = "Dockerfile", [string]$FUNCTIONS_URI = "https://github.com/aem-design/aemdesign-docker/releases/latest/download/functions.ps1", - [string]$COMMAND = "docker buildx build --platform linux/arm64 --build-arg JDK_DRIVEID=$env:JDK_DRIVEID . -f .\${FILE} -t ${TAG}" + [string]$COMMAND = "docker buildx build --build-arg JDK_DRIVEID=$env:JDK_DRIVEID . -f .\${FILE} -t ${TAG}" ) $SKIP_CONFIG = $true From 49103eef94551674947bc4fde13f5e8e23defc80 Mon Sep 17 00:00:00 2001 From: wildone Date: Sun, 6 Feb 2022 02:07:52 +1100 Subject: [PATCH 28/37] fix image source. --- Dockerfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Dockerfile b/Dockerfile index 582a02f..2c6e6bd 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,4 +1,4 @@ - FROM aemdesign/tini:debian-arm + FROM aemdesign/tini:debian LABEL os="debian 8" \ container.description="oracle jdk" \ From d95981e2ffb1643cab07595f0a2bd82c5769ea1c Mon Sep 17 00:00:00 2001 From: wildone Date: Mon, 7 Feb 2022 01:25:42 +1100 Subject: [PATCH 29/37] update tests. --- test/run_tests.sh | 31 ++++++++++++++++++++++++++----- 1 file changed, 26 insertions(+), 5 deletions(-) diff --git a/test/run_tests.sh b/test/run_tests.sh index 3cfe158..9b386ca 100644 --- a/test/run_tests.sh +++ b/test/run_tests.sh @@ -93,13 +93,15 @@ printDebug() { debug "$(printf '*%.0s' {1..100})" "error" } -test_docker_run_usage() { - printLine "Testing 'docker run' usage" - CHECK="1.8" + +test_usage_java() { + printLine "Testing java" + CHECK="$(cat ../Dockerfile | grep -m1 test.command.verify | sed -e 's/.*test.command.verify="\(.*\)".*/\1/g')" + CHECK_COMMAND="$(cat ../Dockerfile | grep -m1 test.command | sed -e 's/.*test.command="\(.*\)".*/\1/g')" printLine "Starting Container" - OUTPUT=$(docker run --rm ${IMAGE_NAME} java -version 2>&1 | grep 'java version' | sed -e 's/.*java version "\(.*\)".*/\1/') + OUTPUT=$(docker run --rm ${IMAGE_NAME} bash -c "${CHECK_COMMAND}") if [[ "$OUTPUT" != *"$CHECK"* ]]; then printResult "error" @@ -110,5 +112,24 @@ test_docker_run_usage() { fi } +test_docker_run_contains_packages() { + printLine "Testing if image has packages" + CHECK="${PACKAGE_CKECK_COUNT}" + + printLine "Starting Container" + + OUTPUT=$(docker run --rm ${IMAGE_NAME} bash -c "cd /aem/crx-quickstart/install && ls -l *.zip | wc -l") + + if [[ "$OUTPUT" != *"$CHECK"* ]]; then + printResult "error" + printDebug "Image '${IMAGE_NAME}' test FAILED could not find ${CHECK} in output" "${OUTPUT}" + exit 1 + else + printResult "success" + fi +} + + +test_usage_java -test_docker_run_usage +test_docker_run_contains_packages From c7bbcada1ebad593edf9d871ae6b24033627e778 Mon Sep 17 00:00:00 2001 From: Max Barrass Date: Wed, 23 Feb 2022 21:58:25 +1100 Subject: [PATCH 30/37] Update Dockerfile --- Dockerfile | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Dockerfile b/Dockerfile index 2c6e6bd..8b22c6a 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,6 +1,6 @@ - FROM aemdesign/tini:debian +FROM aemdesign/tini:ubuntu-focal -LABEL os="debian 8" \ +LABEL os="ubuntu focal" \ container.description="oracle jdk" \ version="jdk8" \ maintainer="devops " \ From f1c8741862f0155a78040385878a1765e0c3b65a Mon Sep 17 00:00:00 2001 From: wildone Date: Thu, 24 Feb 2022 00:39:11 +1100 Subject: [PATCH 31/37] update to use gdrive container to download files from gdrive. --- .github/workflows/build.yml | 12 +++++++++- .gitignore | 1 + Dockerfile | 11 ++++----- README.md | 2 +- build.ps1 | 4 ++-- gdrive.sh | 45 ------------------------------------- test/run_tests.sh | 21 +---------------- 7 files changed, 20 insertions(+), 76 deletions(-) delete mode 100644 gdrive.sh diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 15fbe28..f6941bb 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -14,8 +14,10 @@ jobs: ORGANISATION_NAME: aemdesign DOCKER_USERNAME: ${{ secrets.DOCKER_USERNAME }} DOCKER_PASSWORD: ${{ secrets.DOCKER_PASSWORD }} + SERVICE_ACCOUNT_JSON: ${{ secrets.GOOGLE_SERVICE_ACCOUNT }} JDK_DRIVEID: ${{ secrets.JDK_DRIVEID }} + steps: - uses: actions/checkout@v2 @@ -42,6 +44,14 @@ jobs: username: ${{ github.repository_owner }} password: ${{ secrets.GITHUB_TOKEN }} + - name: Download Files from Google Drive + uses: docker://gvfn/gdrive + with: + entrypoint: "/bin/sh" + args: | + -c "\ + gdrive --config /gdrive --service-account-evar SERVICE_ACCOUNT_JSON download --path /github/workspace/packages/ ${JDK_DRIVEID} + - name: Build and export to Docker uses: docker/build-push-action@v2 with: @@ -49,7 +59,7 @@ jobs: platforms: linux/amd64 load: true build-args: | - "JDK_DRIVEID=${{ env.JDK_DRIVEID }}" + "FILE_NAME=jdk-8u321-linux-x64.tar.gz" tags: | ${{ env.IMAGE }}:${{ env.GIT_BRANCH }} ghcr.io/${{ github.repository_owner }}/${{ env.IMAGE }}:${{ env.GIT_BRANCH }} diff --git a/.gitignore b/.gitignore index 5e5f546..024d21b 100644 --- a/.gitignore +++ b/.gitignore @@ -14,3 +14,4 @@ maven-eclipse.xml target/ logs/ +packages/ diff --git a/Dockerfile b/Dockerfile index 8b22c6a..40f2ab0 100644 --- a/Dockerfile +++ b/Dockerfile @@ -8,21 +8,18 @@ LABEL os="ubuntu focal" \ test.command=" java -version 2>&1 | grep 'java version' | sed -e 's/.*java version "\(.*\)".*/\1/'" \ test.command.verify="1.8" - -ARG JDK_DRIVEID="xxx" +ARG FILE_NAME="jdk-8u321-linux-x64.tar.gz" ENV JAVA_HOME=/opt/jdk1.8.0_321/ -COPY gdrive.sh . +COPY packages/ /opt RUN \ - echo "DOWNLOAD JDK DONE" && \ - bash ./gdrive.sh "download" "${JDK_DRIVEID}" "/opt/jdk.tar.gz" && \ echo "INSTALL JDK" && \ cd /opt/ && \ - tar -xvzf jdk.tar.gz && \ + tar -xvzf ${FILE_NAME} && \ export JAVA_HOME=${JAVA_HOME} && \ update-alternatives --install /usr/bin/java java ${JAVA_HOME%*/}/bin/java 1 && \ update-alternatives --install /usr/bin/javac javac ${JAVA_HOME%*/}/bin/javac 1 && \ update-alternatives --config java && \ - rm -rf /opt/jdk.tar.gz + rm -rf /opt/${FILE_NAME} diff --git a/README.md b/README.md index 41d3afc..2b562ea 100644 --- a/README.md +++ b/README.md @@ -1,6 +1,6 @@ ## Oracle JDK -[![build](https://github.com/aem-design/docker-oracle-jdk/actions/workflows/build.yml/badge.svg?branch=jdk8)](https://github.com/aem-design/docker-oracle-jdk/actions/workflows/build.yml)[![github license](https://img.shields.io/github/license/aem-design/oracle-jdk)](https://github.com/aem-design/oracle-jdk) +[![build](https://github.com/aem-design/docker-oracle-jdk/actions/workflows/build.yml/badge.svg?branch=jdk8-ubuntu)](https://github.com/aem-design/docker-oracle-jdk/actions/workflows/build.yml)[![github license](https://img.shields.io/github/license/aem-design/oracle-jdk)](https://github.com/aem-design/oracle-jdk) [![github issues](https://img.shields.io/github/issues/aem-design/oracle-jdk)](https://github.com/aem-design/oracle-jdk) [![github last commit](https://img.shields.io/github/last-commit/aem-design/oracle-jdk)](https://github.com/aem-design/oracle-jdk) [![github repo size](https://img.shields.io/github/repo-size/aem-design/oracle-jdk)](https://github.com/aem-design/oracle-jdk) diff --git a/build.ps1 b/build.ps1 index 4d9b1d8..872cba5 100644 --- a/build.ps1 +++ b/build.ps1 @@ -5,7 +5,7 @@ Param( [string]$TAG = "jdk8", [string]$FILE = "Dockerfile", [string]$FUNCTIONS_URI = "https://github.com/aem-design/aemdesign-docker/releases/latest/download/functions.ps1", - [string]$COMMAND = "docker buildx build --build-arg JDK_DRIVEID=$env:JDK_DRIVEID . -f .\${FILE} -t ${TAG}" + [string]$COMMAND = "docker buildx build . -f .\${FILE} -t ${TAG}" ) $SKIP_CONFIG = $true @@ -14,7 +14,7 @@ $PARENT_PROJECT_PATH = "." . ([Scriptblock]::Create((([System.Text.Encoding]::ASCII).getString((Invoke-WebRequest -Uri "${FUNCTIONS_URI}").Content)))) printSectionBanner "Building Image" -printSectionLine ( $COMMAND -replace $JDK_DRIVEID, $( "*" * $JDK_DRIVEID.length ) ) "warn" +printSectionLine ( $COMMAND -replace $env:JDK_DRIVEID, $( "*" * $env:JDK_DRIVEID.length ) ) "warn" Invoke-Expression -Command "$COMMAND" | Tee-Object -Append -FilePath "${LOG_FILE}" diff --git a/gdrive.sh b/gdrive.sh deleted file mode 100644 index 0db32bd..0000000 --- a/gdrive.sh +++ /dev/null @@ -1,45 +0,0 @@ -#!/bin/bash - -function help() { -echo "Usage:" -echo " ./gdrive.sh [ACTION] [FILE ID] [FILE NAME]" -echo "" -echo " ACTIONS" -echo " - download" -} - -function download() { - - local FILEID=${1?Need file id} - local FILENAME=${2?Need file name} - echo "download: $FILEID" - - if [[ ! -d /tmp ]]; then - echo "Creating temp folder" - mkdir /tmp - fi - - curl -c /tmp/cookie -s -L "https://drive.google.com/uc?export=download&id=${FILEID}" > /dev/null - curl -Lb /tmp/cookie "https://drive.google.com/uc?export=download&confirm=`awk '/download/ {print $NF}' /tmp/cookie`&id=${FILEID}" -o ${FILENAME} - rm -rf /tmp/cookie -} - -function main() { - local ACTION=${1?Need action} - local FILEID=${2?Need file id} - local FILENAME=${3?Need file name} - - case $ACTION in - download) - download "$FILEID" "$FILENAME" - ;; - *) - help - ;; - esac - - -} - - -main "$@" diff --git a/test/run_tests.sh b/test/run_tests.sh index 9b386ca..ee9a6d4 100644 --- a/test/run_tests.sh +++ b/test/run_tests.sh @@ -112,24 +112,5 @@ test_usage_java() { fi } -test_docker_run_contains_packages() { - printLine "Testing if image has packages" - CHECK="${PACKAGE_CKECK_COUNT}" - printLine "Starting Container" - - OUTPUT=$(docker run --rm ${IMAGE_NAME} bash -c "cd /aem/crx-quickstart/install && ls -l *.zip | wc -l") - - if [[ "$OUTPUT" != *"$CHECK"* ]]; then - printResult "error" - printDebug "Image '${IMAGE_NAME}' test FAILED could not find ${CHECK} in output" "${OUTPUT}" - exit 1 - else - printResult "success" - fi -} - - -test_usage_java - -test_docker_run_contains_packages +test_docker_run_usage From 6575fd75e733d525fc43c0cc98239c943ff1765d Mon Sep 17 00:00:00 2001 From: wildone Date: Thu, 24 Feb 2022 00:42:02 +1100 Subject: [PATCH 32/37] update test. --- test/run_tests.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/test/run_tests.sh b/test/run_tests.sh index ee9a6d4..166236f 100644 --- a/test/run_tests.sh +++ b/test/run_tests.sh @@ -113,4 +113,4 @@ test_usage_java() { } -test_docker_run_usage +test_usage_java From d57ccf653c14ee94ed53ddcbd04f2f2e23f5a3d6 Mon Sep 17 00:00:00 2001 From: wildone Date: Fri, 25 Feb 2022 22:41:24 +1100 Subject: [PATCH 33/37] add docker image analysis and cleanup. --- Dockerfile | 6 +- build.ps1 | 5 +- lint.sh | 3 - oracle-download.sh | 229 --------------------------------------------- 4 files changed, 6 insertions(+), 237 deletions(-) delete mode 100755 lint.sh delete mode 100755 oracle-download.sh diff --git a/Dockerfile b/Dockerfile index 40f2ab0..7f53f00 100644 --- a/Dockerfile +++ b/Dockerfile @@ -12,12 +12,10 @@ ARG FILE_NAME="jdk-8u321-linux-x64.tar.gz" ENV JAVA_HOME=/opt/jdk1.8.0_321/ -COPY packages/ /opt +ADD packages/${FILE_NAME} /opt/ RUN \ - echo "INSTALL JDK" && \ - cd /opt/ && \ - tar -xvzf ${FILE_NAME} && \ + echo "CONFIG JDK" && \ export JAVA_HOME=${JAVA_HOME} && \ update-alternatives --install /usr/bin/java java ${JAVA_HOME%*/}/bin/java 1 && \ update-alternatives --install /usr/bin/javac javac ${JAVA_HOME%*/}/bin/javac 1 && \ diff --git a/build.ps1 b/build.ps1 index 872cba5..43e8c8f 100644 --- a/build.ps1 +++ b/build.ps1 @@ -5,7 +5,8 @@ Param( [string]$TAG = "jdk8", [string]$FILE = "Dockerfile", [string]$FUNCTIONS_URI = "https://github.com/aem-design/aemdesign-docker/releases/latest/download/functions.ps1", - [string]$COMMAND = "docker buildx build . -f .\${FILE} -t ${TAG}" + [string]$COMMAND = "docker buildx build . -f .\${FILE} -t ${TAG}", + [string]$TEST = "docker run --rm -it -e CI=true -v /var/run/docker.sock:/var/run/docker.sock wagoodman/dive:latest ${TAG}" ) $SKIP_CONFIG = $true @@ -17,6 +18,8 @@ printSectionBanner "Building Image" printSectionLine ( $COMMAND -replace $env:JDK_DRIVEID, $( "*" * $env:JDK_DRIVEID.length ) ) "warn" Invoke-Expression -Command "$COMMAND" | Tee-Object -Append -FilePath "${LOG_FILE}" +Invoke-Expression -Command "$TEST" | Tee-Object -Append -FilePath "${LOG_FILE}" + diff --git a/lint.sh b/lint.sh deleted file mode 100755 index f9b129b..0000000 --- a/lint.sh +++ /dev/null @@ -1,3 +0,0 @@ -#!/usr/bin/env bash - -travis lint .travis.yml diff --git a/oracle-download.sh b/oracle-download.sh deleted file mode 100755 index 86f5a90..0000000 --- a/oracle-download.sh +++ /dev/null @@ -1,229 +0,0 @@ -#!/usr/bin/env bash -set -e - -cmdname="${0##*/}" - -VERSION=0.0.4 - -echoto() { - # print to stderr or to stdout - out=$1 - shift 1 - - if ([ "${out}" -eq 2 ]); then - printf "$@" >&2 - else - # stdout can be silenced only - if [ "${QUIET}" -eq 0 ]; then - printf "$@" - fi - fi -} - -usage() { - OUTPUT=`cat < 0), otherwise to stdout - if ([ "$1" -gt 0 ]); then - echo "${OUTPUT}" >&2 - else - echo "${OUTPUT}" - fi - - exit $1 -} - -version() { - echo "oradown version: ${VERSION}" - exit 0 -} - -check_cmds_present() { - eval "curl --version >/dev/null 2>&1" - if [ $? -eq 127 ]; then - echo "ERROR: curl command not present! Please install it first." - exit 1 - fi - eval "xmllint --version >/dev/null 2>&1" - if [ $? -eq 127 ]; then - echo "ERROR: xmllint command not present! Please install it first." - exit 1 - fi -} - -user_agent() { - # from https://gist.github.com/kopiro/837213c14641ae82b860 - USER_AGENTS=( \ - 'Mozilla/6.0 (Windows NT 6.2; WOW64; rv:16.0.1) Gecko/20121011 Firefox/16.0.1' \ - 'Mozilla/5.0 (Windows NT 6.2; WOW64; rv:16.0.1) Gecko/20121011 Firefox/16.0.1' \ - 'Mozilla/5.0 (Windows NT 6.2; Win64; x64; rv:16.0.1) Gecko/20121011 Firefox/16.0.1' \ - 'Mozilla/5.0 (Windows NT 6.1; Win64; x64; rv:14.0) Gecko/20120405 Firefox/14.0a1' \ - 'Mozilla/5.0 (Windows NT 6.1; rv:14.0) Gecko/20120405 Firefox/14.0a1' \ - 'Mozilla/5.0 (Windows NT 5.1; rv:14.0) Gecko/20120405 Firefox/14.0a1' \ - 'Mozilla/5.0 (Windows NT 6.2; WOW64) AppleWebKit/537.13 (KHTML, like Gecko) Chrome/24.0.1290.1 Safari/537.13' \ - 'Mozilla/5.0 (Windows NT 6.2) AppleWebKit/537.13 (KHTML, like Gecko) Chrome/24.0.1290.1 Safari/537.13' \ - 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_8_2) AppleWebKit/537.13 (KHTML, like Gecko) Chrome/24.0.1290.1 Safari/537.13' \ - 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_7_4) AppleWebKit/537.13 (KHTML, like Gecko) Chrome/24.0.1290.1 Safari/537.13' \ - 'Mozilla/5.0 (Windows NT 6.2) AppleWebKit/536.3 (KHTML, like Gecko) Chrome/19.0.1061.1 Safari/536.3' \ - 'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/536.3 (KHTML, like Gecko) Chrome/19.0.1061.1 Safari/536.3' \ - 'Mozilla/5.0 (Windows NT 6.1) AppleWebKit/536.3 (KHTML, like Gecko) Chrome/19.0.1061.1 Safari/536.3' \ - ) - echo ${USER_AGENTS[$RANDOM % ${#USER_AGENTS[@]} ]} -} - -down() { - USER_AGENT=$(user_agent) - COOKIES_FILE=/tmp/oradown_COOKIES.txt - rm -f ${COOKIES_FILE} - - # fetch osso_login.jsp page and retrieve form parameters - form_data="$(curl -s -L -c ${COOKIES_FILE} -H "User-Agent: ${USER_AGENT}" ${URL})" - - declare -a form_fields=( - 'OAM_REQ' - 'request_id' - 'site2pstoretoken' - 'v' - ) - - declare data_string - - declare -i count - for f in ${form_fields[@]}; do - count=$((count+1)) - xpath="string(//form/input[@name='${f}']/@value)" - data_string+="${f}=$(echo ${form_data} | xmllint --html --xpath ${xpath} 2>/dev/null -)" - if [[ $count -lt ${#form_fields[@]} ]]; then - data_string+='&' - fi - done - - # use filename from the URL (if explicit one not present) - if [ -z "${OUTPUT_FILE}" ]; then - OUTPUT_FILE=${URL##*/} - fi - - echo curl -L -o ${OUTPUT_FILE} -b ${COOKIES_FILE} -c ${COOKIES_FILE} 'https://login.oracle.com/oam/server/sso/auth_cred_submit' \ - -H "Cookie: s_cc=true; oraclelicense=${COOKIE_ACCEPT_LICENSE};" \ - -H "User-Agent: ${USER_AGENT}" \ - --data-urlencode "ssousername=${ORCL_USER}" \ - --data-urlencode "password=${ORCL_PWD}" \ - -d "${data_string}" \ - --compressed - - # download file - curl -L -o ${OUTPUT_FILE} -b ${COOKIES_FILE} -c ${COOKIES_FILE} 'https://login.oracle.com/oam/server/sso/auth_cred_submit' \ - -H "Cookie: s_cc=true; oraclelicense=${COOKIE_ACCEPT_LICENSE};" \ - -H "User-Agent: ${USER_AGENT}" \ - --data-urlencode "ssousername=${ORCL_USER}" \ - --data-urlencode "password=${ORCL_PWD}" \ - -d "${data_string}" \ - --compressed - - rm -f ${COOKIES_FILE} -} - -# process arguments -while [ $# -gt 0 ] -do - case "$1" in - -C) - COOKIE_ACCEPT_LICENSE="$2" - if [ -z "${COOKIE_ACCEPT_LICENSE}" ]; then break; fi - shift 2 - ;; - --cookie=*) - COOKIE_ACCEPT_LICENSE="${1#*=}" - shift 1 - ;; - -H | --help) - usage 0 - ;; - -O) - OUTPUT_FILE="$2" - if [ -z "${OUTPUT_FILE}" ]; then break; fi - shift 2 - ;; - --output=*) - OUTPUT_FILE="${1#*=}" - shift 1 - ;; - -P) - ORCL_PWD="$2" - if [ -z "${ORCL_PWD}" ]; then break; fi - shift 2 - ;; - --password=*) - ORCL_PWD="${1#*=}" - shift 1 - ;; - -U) - ORCL_USER="$2" - if [ -z "${ORCL_USER}" ]; then break; fi - shift 2 - ;; - --username=*) - ORCL_USER="${1#*=}" - shift 1 - ;; - -V | --version) - version - ;; - *) - URL="$@" - break - ;; - esac -done - -if [ -z "${URL}" ]; then - echoto 2 "Error: URL is mandatory.\n" - usage 1 -fi - -if [ -z "${ORCL_USER}" ]; then - echoto 2 "Error: USERNAME is mandatory.\n" - usage 1 -fi - -if [ -z "${ORCL_PWD}" ]; then - echoto 2 "Enter password for ${ORCL_USER}: " - read -s ORCL_PWD - echoto 2 "\n" -fi - -if [ -z "${COOKIE_ACCEPT_LICENSE}" ]; then - echoto 2 "Error: LICENSE_COOKIE is mandatory.\n" - usage 1 -fi - -check_cmds_present -down From d16bc734fd2f4a4c48c23752d487829f0c121360 Mon Sep 17 00:00:00 2001 From: wildone Date: Fri, 25 Feb 2022 23:15:31 +1100 Subject: [PATCH 34/37] add docker analysis to pipeline. --- .github/workflows/build.yml | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index f6941bb..b56a7d6 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -69,6 +69,14 @@ jobs: run: | cd test && bash ./run_tests.sh "ghcr.io/$GITHUB_REPOSITORY_OWNER/$IMAGE:$GIT_BRANCH" + - name: Run docker image analysis + uses: yuichielectric/dive-action@0.0.4 + with: + image: ${{ env.IMAGE }}:{{ env.GIT_BRANCH }} + config-file: ${{ github.workspace }}/.dive-ci.yml + github-token: ${{ secrets.GITHUB_TOKEN }} + + - name: Build and push uses: docker/build-push-action@v2 with: @@ -88,6 +96,8 @@ jobs: username: ${{ env.DOCKER_USERNAME }} password: ${{ env.DOCKER_PASSWORD }} repository: peterevans/dockerhub-description + + - uses: meeDamian/github-release@1.0 if: github.ref == 'refs/heads/master' with: From ea9c0895b32be5dd488cdb2c2e956e8a9729978c Mon Sep 17 00:00:00 2001 From: wildone Date: Fri, 25 Feb 2022 23:21:25 +1100 Subject: [PATCH 35/37] add missing file and chars. --- .github/workflows/.dive-ci.yml | 13 +++++++++++++ .github/workflows/build.yml | 2 +- 2 files changed, 14 insertions(+), 1 deletion(-) create mode 100644 .github/workflows/.dive-ci.yml diff --git a/.github/workflows/.dive-ci.yml b/.github/workflows/.dive-ci.yml new file mode 100644 index 0000000..b70b867 --- /dev/null +++ b/.github/workflows/.dive-ci.yml @@ -0,0 +1,13 @@ +rules: + # If the efficiency is measured below X%, mark as failed. + # Expressed as a ratio between 0-1. + lowestEfficiency: 0.95 + + # If the amount of wasted space is at least X or larger than X, mark as failed. + # Expressed in B, KB, MB, and GB. + highestWastedBytes: 20MB + + # If the amount of wasted space makes up for X% or more of the image, mark as failed. + # Note: the base image layer is NOT included in the total image size. + # Expressed as a ratio between 0-1; fails if the threshold is met or crossed. + highestUserWastedPercent: 0.20 diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index b56a7d6..d87fb09 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -72,7 +72,7 @@ jobs: - name: Run docker image analysis uses: yuichielectric/dive-action@0.0.4 with: - image: ${{ env.IMAGE }}:{{ env.GIT_BRANCH }} + image: ${{ env.IMAGE }}:${{ env.GIT_BRANCH }} config-file: ${{ github.workspace }}/.dive-ci.yml github-token: ${{ secrets.GITHUB_TOKEN }} From 3df9592190772337e89f6d8e497d3bc8be807703 Mon Sep 17 00:00:00 2001 From: wildone Date: Fri, 25 Feb 2022 23:30:33 +1100 Subject: [PATCH 36/37] add missing file. --- .github/workflows/.dive-ci.yml => .dive-ci.yml | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename .github/workflows/.dive-ci.yml => .dive-ci.yml (100%) diff --git a/.github/workflows/.dive-ci.yml b/.dive-ci.yml similarity index 100% rename from .github/workflows/.dive-ci.yml rename to .dive-ci.yml From 7e0aed75d12d985c35c6a35d05e04f8cc3c70aab Mon Sep 17 00:00:00 2001 From: wildone Date: Sat, 26 Feb 2022 00:38:37 +1100 Subject: [PATCH 37/37] update pipelines. --- .github/workflows/anchore.yml | 57 +++++++++++++++++++++++++++++++++++ .github/workflows/build.yml | 2 +- 2 files changed, 58 insertions(+), 1 deletion(-) create mode 100644 .github/workflows/anchore.yml diff --git a/.github/workflows/anchore.yml b/.github/workflows/anchore.yml new file mode 100644 index 0000000..ccc61a3 --- /dev/null +++ b/.github/workflows/anchore.yml @@ -0,0 +1,57 @@ +# This workflow uses actions that are not certified by GitHub. +# They are provided by a third-party and are governed by +# separate terms of service, privacy policy, and support +# documentation. + +# This workflow checks out code, builds an image, performs a container image +# vulnerability scan with Anchore's Grype tool, and integrates the results with GitHub Advanced Security +# code scanning feature. For more information on the Anchore scan action usage +# and parameters, see https://github.com/anchore/scan-action. For more +# information on Anchore's container image scanning tool Grype, see +# https://github.com/anchore/grype +name: Anchore Container Scan + +on: + push: + branches: [ master ] + pull_request: + # The branches below must be a subset of the branches above + branches: [ master ] + schedule: + - cron: '40 17 * * 4' + +permissions: + contents: read + +jobs: + Anchore-Build-Scan: + permissions: + contents: read # for actions/checkout to fetch code + security-events: write # for github/codeql-action/upload-sarif to upload SARIF results + runs-on: ubuntu-latest + env: + SERVICE_ACCOUNT_JSON: ${{ secrets.GOOGLE_SERVICE_ACCOUNT }} + JDK_DRIVEID: ${{ secrets.JDK11_DRIVEID }} + steps: + - name: Checkout the code + uses: actions/checkout@v2 + + - name: Download Files from Google Drive + uses: docker://gvfn/gdrive + with: + entrypoint: "/bin/sh" + args: | + -c "\ + gdrive --config /gdrive --service-account-evar SERVICE_ACCOUNT_JSON download --path /github/workspace/packages/ ${JDK_DRIVEID} + + - name: Build the Docker image + run: docker build . --file Dockerfile --tag localbuild/testimage:latest + - name: Run the Anchore scan action itself with GitHub Advanced Security code scanning integration enabled + uses: anchore/scan-action@b08527d5ae7f7dc76f9621edb6e49eaf47933ccd + with: + image: "localbuild/testimage:latest" + acs-report-enable: true + - name: Upload Anchore Scan Report + uses: github/codeql-action/upload-sarif@v1 + with: + sarif_file: results.sarif diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index d87fb09..8c89081 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -73,7 +73,7 @@ jobs: uses: yuichielectric/dive-action@0.0.4 with: image: ${{ env.IMAGE }}:${{ env.GIT_BRANCH }} - config-file: ${{ github.workspace }}/.dive-ci.yml + config-file: ${{ env.GITHUB_WORKSPACE }}/.dive-ci.yml github-token: ${{ secrets.GITHUB_TOKEN }}