Task: Add OpenJDK 11 with GitHub Workflows Build and Publish DockerHub

This commit is contained in:
Sambo Chea 2021-07-14 21:24:52 +07:00
commit 1b3c8bf026
13 changed files with 251 additions and 0 deletions

27
.github/workflows/docker.yml vendored Normal file
View File

@ -0,0 +1,27 @@
name: CI
on:
push:
branches:
- 'main'
jobs:
docker:
runs-on: ubuntu-latest
steps:
-
name: Setup Docker Buildx
uses: docker/setup-buildx-action@v1
-
name: Login to DockerHub
uses: docker/login-action@v1
with:
username: ${{ secrets.DOCKER_HUB_USERNAME }}
password: ${{ secrets.DOCKER_HUB_SECRET }}
-
name: Checkout
uses: actions/checkout@v2
-
name: Build and Push from Makefile
run: |
make build

0
.gitignore vendored Normal file
View File

99
11/Dockerfile Normal file
View File

@ -0,0 +1,99 @@
FROM cubetiq/calpine-os-linux:latest
LABEL maintainer="sombochea@cubetiqs.com"
# Run as root
USER root
ENV LANG='en_US.UTF-8' LANGUAGE='en_US:en' LC_ALL='en_US.UTF-8'
ENV TIMEZ=Asia/Phnom_Penh
RUN echo "Start building the openjdk..."
RUN mkdir -p /src/cubetiq/build
COPY LICENSE version.txt /src/cubetiq/build/
RUN echo "Starting setting up timezone to ${TIMEZ}..."
# For Alpine
# Setup Timezone
RUN apk update && \
apk add --no-cache tzdata && \
cp /usr/share/zoneinfo/${TIMEZ} /etc/localtime && \
echo ${TIMEZ} > /etc/timezone
RUN apk add --no-cache --virtual .build-deps curl binutils zstd \
&& GLIBC_VER="2.31-r0" \
&& ALPINE_GLIBC_REPO="https://github.com/sgerrand/alpine-pkg-glibc/releases/download" \
&& GCC_LIBS_URL="https://archive.archlinux.org/packages/g/gcc-libs/gcc-libs-10.1.0-2-x86_64.pkg.tar.zst" \
&& GCC_LIBS_SHA256="f80320a03ff73e82271064e4f684cd58d7dbdb07aa06a2c4eea8e0f3c507c45c" \
&& ZLIB_URL="https://archive.archlinux.org/packages/z/zlib/zlib-1%3A1.2.11-3-x86_64.pkg.tar.xz" \
&& ZLIB_SHA256=17aede0b9f8baa789c5aa3f358fbf8c68a5f1228c5e6cba1a5dd34102ef4d4e5 \
&& curl -LfsS https://alpine-pkgs.sgerrand.com/sgerrand.rsa.pub -o /etc/apk/keys/sgerrand.rsa.pub \
&& SGERRAND_RSA_SHA256="823b54589c93b02497f1ba4dc622eaef9c813e6b0f0ebbb2f771e32adf9f4ef2" \
&& echo "${SGERRAND_RSA_SHA256} */etc/apk/keys/sgerrand.rsa.pub" | sha256sum -c - \
&& curl -LfsS ${ALPINE_GLIBC_REPO}/${GLIBC_VER}/glibc-${GLIBC_VER}.apk > /tmp/glibc-${GLIBC_VER}.apk \
&& apk add --no-cache /tmp/glibc-${GLIBC_VER}.apk \
&& curl -LfsS ${ALPINE_GLIBC_REPO}/${GLIBC_VER}/glibc-bin-${GLIBC_VER}.apk > /tmp/glibc-bin-${GLIBC_VER}.apk \
&& apk add --no-cache /tmp/glibc-bin-${GLIBC_VER}.apk \
&& curl -Ls ${ALPINE_GLIBC_REPO}/${GLIBC_VER}/glibc-i18n-${GLIBC_VER}.apk > /tmp/glibc-i18n-${GLIBC_VER}.apk \
&& apk add --no-cache /tmp/glibc-i18n-${GLIBC_VER}.apk \
&& /usr/glibc-compat/bin/localedef --force --inputfile POSIX --charmap UTF-8 "$LANG" || true \
&& echo "export LANG=$LANG" > /etc/profile.d/locale.sh \
&& curl -LfsS ${GCC_LIBS_URL} -o /tmp/gcc-libs.tar.zst \
&& echo "${GCC_LIBS_SHA256} */tmp/gcc-libs.tar.zst" | sha256sum -c - \
&& mkdir /tmp/gcc \
&& zstd -d /tmp/gcc-libs.tar.zst --output-dir-flat /tmp \
&& tar -xf /tmp/gcc-libs.tar -C /tmp/gcc \
&& mv /tmp/gcc/usr/lib/libgcc* /tmp/gcc/usr/lib/libstdc++* /usr/glibc-compat/lib \
&& strip /usr/glibc-compat/lib/libgcc_s.so.* /usr/glibc-compat/lib/libstdc++.so* \
&& curl -LfsS ${ZLIB_URL} -o /tmp/libz.tar.xz \
&& echo "${ZLIB_SHA256} */tmp/libz.tar.xz" | sha256sum -c - \
&& mkdir /tmp/libz \
&& tar -xf /tmp/libz.tar.xz -C /tmp/libz \
&& mv /tmp/libz/usr/lib/libz.so* /usr/glibc-compat/lib \
&& apk del --purge .build-deps glibc-i18n \
&& rm -rf /tmp/*.apk /tmp/gcc /tmp/gcc-libs.tar* /tmp/libz /tmp/libz.tar.xz /var/cache/apk/*
# Remove unused anymore
RUN apk del tzdata
ENV RELEASE_DATE 2020-12-07-10-34
ENV JAVA_BUILD jdk11u-${RELEASE_DATE}
ENV JAVA_BUILD_TYPE jdk
RUN set -eux; \
apk add --no-cache --virtual .fetch-deps curl; \
ARCH="$(apk --print-arch)"; \
case "${ARCH}" in \
aarch64|arm64) \
BINARY_URL='https://github.com/AdoptOpenJDK/openjdk11-binaries/releases/download/${JAVA_BUILD}/OpenJDK11U-${JAVA_BUILD_TYPE}_aarch64_linux_hotspot_${RELEASE_DATE}.tar.gz'; \
;; \
armhf|armv7l) \
BINARY_URL='https://github.com/AdoptOpenJDK/openjdk11-binaries/releases/download/${JAVA_BUILD}/OpenJDK11U-${JAVA_BUILD_TYPE}_arm_linux_hotspot_${RELEASE_DATE}.tar.gz'; \
;; \
ppc64el|ppc64le) \
BINARY_URL='https://github.com/AdoptOpenJDK/openjdk11-binaries/releases/download/${JAVA_BUILD}/OpenJDK11U-${JAVA_BUILD_TYPE}_ppc64le_linux_hotspot_${RELEASE_DATE}.tar.gz'; \
;; \
s390x) \
BINARY_URL='https://github.com/AdoptOpenJDK/openjdk11-binaries/releases/download/${JAVA_BUILD}/OpenJDK11U-${JAVA_BUILD_TYPE}_s390x_linux_hotspot_${RELEASE_DATE}.tar.gz'; \
;; \
amd64|x86_64) \
BINARY_URL='https://github.com/AdoptOpenJDK/openjdk11-binaries/releases/download/${JAVA_BUILD}/OpenJDK11U-${JAVA_BUILD_TYPE}_x64_linux_hotspot_${RELEASE_DATE}.tar.gz'; \
;; \
*) \
echo "Unsupported arch: ${ARCH}"; \
exit 1; \
;; \
esac; \
curl -LfsSo /tmp/openjdk.tar.gz ${BINARY_URL}; \
curl -LfsSo /tmp/openjdk.tar.gz.sha256.txt ${BINARY_URL}.sha256.txt; \
ESUM=`cat /tmp/openjdk.tar.gz.sha256.txt`; \
echo "${ESUM} */tmp/openjdk.tar.gz" | sha256sum -c -; \
mkdir -p /opt/java/openjdk; \
cd /opt/java/openjdk; \
tar -xf /tmp/openjdk.tar.gz --strip-components=1; \
apk del --purge .fetch-deps; \
rm -rf /var/cache/apk/*; \
rm -rf /tmp/openjdk.tar.gz;
RUN echo "All has been completed, enjoy!"
ENV JAVA_HOME=/opt/java/openjdk \
PATH="/opt/java/openjdk/bin:$PATH"
CMD [ "java", "-version" ]

20
11/LICENSE Normal file
View File

@ -0,0 +1,20 @@
MIT License
Copyright (c) 2018-2020 Dave Hall <skwashd@gmail.com>
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECT

25
11/README.md Normal file
View File

@ -0,0 +1,25 @@
# CUBETIQ Alpine OS Linux OpenJDK 11
![Docker Image Size (latest by date)](https://img.shields.io/docker/image-size/cubetiq/calpine-openjdk:11)
![Docker Pulls](https://img.shields.io/docker/pulls/cubetiq/calpine-openjdk:11)
- OpenJDK 11
- Timezone default Phnom Penh
# Build
```shell
make build
```
# [Docker Hub](https://hub.docker.com/r/cubetiq/calpine-openjdk:11)
### Pull image
```shell
docker pull cubetiq/calpine-openjdk:11
```
### Running container
```shell
docker run --rm -it cubetiq/calpine-openjdk:11 /bin/sh
```
# Contributors
- Sambo Chea <sombochea@cubetiqs.com>

12
11/build.sh Normal file
View File

@ -0,0 +1,12 @@
#!/bin/sh
C_ORG=cubetiq
C_IMG=calpine-openjdk
C_TAG=11
C_ROOT=${C_ORG}/${C_IMG}:${C_TAG}
echo "Starting build for OpenJDK: ${C_ROOT}"
docker build . -t ${C_ROOT}
echo "Publishing to DockerHub with ${C_ROOT}"
docker push ${C_ROOT}

5
11/version.txt Normal file
View File

@ -0,0 +1,5 @@
os: calpine-os-linux 3.13.3
openjdk: 11
author: sombochea <sombochea@cubetiqs.com>
company: cubetiq solution
build: 14/07/2021

20
8/LICENSE Normal file
View File

@ -0,0 +1,20 @@
MIT License
Copyright (c) 2018-2020 Dave Hall <skwashd@gmail.com>
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECT

5
8/version.txt Normal file
View File

@ -0,0 +1,5 @@
os: calpine-os-linux 3.13.3
openjdk: 8
author: sombochea <sombochea@cubetiqs.com>
company: cubetiq solution
build: 14/07/2021

20
LICENSE Normal file
View File

@ -0,0 +1,20 @@
MIT License
Copyright (c) 2018-2020 Dave Hall <skwashd@gmail.com>
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECT

5
Makefile Normal file
View File

@ -0,0 +1,5 @@
build:
@echo 'Starting docker build'
./11/build.sh
.PHONY:build

8
README.md Normal file
View File

@ -0,0 +1,8 @@
# CUBETIQ Alpine OpenJDK
- Support OpenJDK
# OpenJDK Versions
- OpenJDK-11
# Contributors
- Sambo Chea <sombochea@cubetiqs.com>

5
version.txt Normal file
View File

@ -0,0 +1,5 @@
os: calpine-os-linux 3.13.3
openjdk: default
author: sombochea <sombochea@cubetiqs.com>
company: cubetiq solution
build: 14/07/2021