-
Notifications
You must be signed in to change notification settings - Fork 159
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Merge pull request #425 from ZiyamSanthosh/5.7.x-rocky
[5.7.0] Add rocky linux docker image for IS and IS analytics 5.7.0
- Loading branch information
Showing
9 changed files
with
746 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,136 @@ | ||
# ------------------------------------------------------------------------ | ||
# | ||
# Copyright 2024 WSO2, LLC. (http://wso2.com) | ||
# | ||
# Licensed under the Apache License, Version 2.0 (the "License"); | ||
# you may not use this file except in compliance with the License. | ||
# You may obtain a copy of the License at | ||
# | ||
# http://www.apache.org/licenses/LICENSE-2.0 | ||
# | ||
# Unless required by applicable law or agreed to in writing, software | ||
# distributed under the License is distributed on an "AS IS" BASIS, | ||
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. | ||
# See the License for the specific language governing permissions and | ||
# limitations under the License | ||
# | ||
# ------------------------------------------------------------------------ | ||
|
||
# set base Docker image to Rocky Linux Docker image | ||
FROM rockylinux:8 | ||
LABEL maintainer="WSO2 Docker Maintainers <[email protected]>" \ | ||
com.wso2.docker.source="https://github.com/wso2/docker-is/releases/tag/v5.7.0.4" | ||
|
||
# Update the system to the specific 8.10 version | ||
RUN dnf -y update && \ | ||
dnf -y distro-sync && \ | ||
dnf clean all | ||
|
||
# Install necessary locale packages | ||
RUN yum install -y glibc-langpack-en && \ | ||
yum install -y langpacks-en glibc-locale-source && \ | ||
localedef -c -f UTF-8 -i en_US en_US.UTF-8 | ||
|
||
ENV LANG='en_US.UTF-8' LANGUAGE='en_US:en' LC_ALL='en_US.UTF-8' | ||
|
||
# Install JDK Dependencies. | ||
RUN yum install -y tzdata openssl ca-certificates fontconfig gzip tar nc unzip wget \ | ||
&& yum clean all | ||
|
||
ENV JAVA_VERSION jdk8u362-b09 | ||
|
||
# Install JDK8. | ||
RUN set -eux; \ | ||
ARCH="$(objdump="$(command -v objdump)" && objdump --file-headers "$objdump" | awk -F '[:,]+[[:space:]]+' '$1 == "architecture" { print $2 }')"; \ | ||
case "${ARCH}" in \ | ||
amd64|i386:x86-64) \ | ||
ESUM='1486a792fb224611ce0cd0e83d4aacd3503b56698549f8e9a9f0a6ebb83bdba1'; \ | ||
BINARY_URL='https://github.com/adoptium/temurin8-binaries/releases/download/jdk8u362-b09/OpenJDK8U-jdk_x64_linux_hotspot_8u362b09.tar.gz'; \ | ||
;; \ | ||
arm64|aarch64) \ | ||
ESUM='9290a8beefd7a94f0eb030f62d402411a852100482b9c5b63714bacc57002c2a'; \ | ||
BINARY_URL='https://github.com/adoptium/temurin8-binaries/releases/download/jdk8u362-b09/OpenJDK8U-jdk_aarch64_linux_hotspot_8u362b09.tar.gz'; \ | ||
;; \ | ||
*) \ | ||
echo "Unsupported arch: ${ARCH}"; \ | ||
exit 1; \ | ||
;; \ | ||
esac; \ | ||
curl -LfsSo /tmp/openjdk.tar.gz ${BINARY_URL}; \ | ||
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; \ | ||
rm -rf /tmp/openjdk.tar.gz; | ||
|
||
ENV JAVA_HOME=/opt/java/openjdk \ | ||
PATH="/opt/java/openjdk/bin:$PATH" | ||
|
||
# set Docker image build arguments | ||
# build arguments for user/group configurations | ||
ARG USER=wso2carbon | ||
ARG USER_ID=802 | ||
ARG USER_GROUP=wso2 | ||
ARG USER_GROUP_ID=802 | ||
ARG USER_HOME=/home/${USER} | ||
# set JDK configurations | ||
ARG JAVA_HOME=${USER_HOME}/java | ||
# build arguments for WSO2 product installation | ||
ARG WSO2_SERVER_NAME=wso2is-analytics | ||
ARG WSO2_SERVER_VERSION=5.7.0 | ||
ARG WSO2_SERVER=${WSO2_SERVER_NAME}-${WSO2_SERVER_VERSION} | ||
ARG WSO2_SERVER_HOME=${USER_HOME}/${WSO2_SERVER} | ||
ARG WSO2_SERVER_DIST_URL | ||
# build argument for MOTD | ||
ARG MOTD='printf "\n\ | ||
Welcome to WSO2 Docker resources.\n\ | ||
------------------------------------ \n\ | ||
This Docker container comprises of a WSO2 product, running with its latest GA release \n\ | ||
which is under the Apache License, Version 2.0. \n\ | ||
Read more about Apache License, Version 2.0 here @ http://www.apache.org/licenses/LICENSE-2.0.\n\n"' | ||
|
||
# create the non-root user and group and set MOTD login message | ||
RUN \ | ||
groupadd --system -g ${USER_GROUP_ID} ${USER_GROUP} \ | ||
&& useradd --system --create-home --home-dir ${USER_HOME} --no-log-init -g ${USER_GROUP_ID} -u ${USER_ID} ${USER} \ | ||
&& echo ${MOTD} > /etc/profile.d/motd.sh | ||
|
||
# create Java prefs dir | ||
# this is to avoid warning logs printed by FileSystemPreferences class | ||
RUN \ | ||
mkdir -p ${USER_HOME}/.java/.systemPrefs \ | ||
&& mkdir -p ${USER_HOME}/.java/.userPrefs \ | ||
&& chmod -R 755 ${USER_HOME}/.java \ | ||
&& chown -R ${USER}:${USER_GROUP} ${USER_HOME}/.java | ||
|
||
# copy init script to user home | ||
COPY --chown=wso2carbon:wso2 docker-entrypoint.sh ${USER_HOME}/ | ||
# install required packages | ||
RUN \ | ||
yum -y update \ | ||
&& yum install -y \ | ||
nc \ | ||
unzip \ | ||
wget \ | ||
&& rm -rf /var/cache/yum/* | ||
# add the WSO2 product distribution to user's home directory | ||
RUN \ | ||
wget -O ${WSO2_SERVER}.zip "${WSO2_SERVER_DIST_URL}" \ | ||
&& unzip -d ${USER_HOME} ${WSO2_SERVER}.zip \ | ||
&& chown wso2carbon:wso2 -R ${WSO2_SERVER_HOME} \ | ||
&& rm -f ${WSO2_SERVER}.zip | ||
|
||
# set the user and work directory | ||
USER ${USER_ID} | ||
WORKDIR ${USER_HOME} | ||
|
||
# set environment variables | ||
ENV JAVA_OPTS="-Djava.util.prefs.systemRoot=${USER_HOME}/.java -Djava.util.prefs.userRoot=${USER_HOME}/.java/.userPrefs" \ | ||
WORKING_DIRECTORY=${USER_HOME} \ | ||
WSO2_SERVER_HOME=${WSO2_SERVER_HOME} | ||
|
||
# expose ports | ||
EXPOSE 9643 | ||
|
||
# initiate container and start WSO2 Carbon server | ||
ENTRYPOINT ["/home/wso2carbon/docker-entrypoint.sh"] |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,76 @@ | ||
# Dockerfile for Dashboard Profile of WSO2 Identity Server Analytics # | ||
|
||
This section defines the step-by-step instructions to build [Rocky Linux](https://hub.docker.com/_/rockylinux/) Linux based Docker image for Dashboard profile of | ||
WSO2 Identity Server Analytics 5.7.0. | ||
|
||
## Prerequisites | ||
|
||
* [Docker](https://www.docker.com/get-docker) v17.09.0 or above | ||
* [Git](https://git-scm.com/book/en/v2/Getting-Started-Installing-Git) client | ||
* WSO2 Identity Server Analytics version `5.7.0` product pack | ||
+ Host the downloaded pack locally or on a remote location. | ||
> The hosted location will be passed as the build argument `WSO2_SERVER_DIST_URL` when building the Docker image. | ||
## How to build an image and run | ||
|
||
##### 1. Checkout this repository into your local machine using the following Git client command. | ||
|
||
``` | ||
git clone https://github.com/wso2/docker-is.git | ||
``` | ||
|
||
> The local copy of the `dockerfile/rocky/is-analytics/dasboard` directory will be referred to as `ANALYTICS_DOCKERFILE_HOME` from this point onwards. | ||
##### 2. Build the Docker image. | ||
|
||
- Navigate to `<ANALYTICS_DOCKERFILE_HOME>` directory. <br> | ||
Execute `docker build` command as shown below. | ||
+ `docker build --build-arg WSO2_SERVER_DIST_URL=<URL_OF_THE_HOSTED_LOCATION/FILENAME> -t wso2is-analytics-dashboard:5.7.0-rocky .` | ||
|
||
> eg:- Hosted locally: `docker build --build-arg WSO2_SERVER_DIST_URL=http://172.17.0.1:8000/wso2is-analytics-5.7.0.zip -t wso2is-analytics-dashboard:5.7.0-rocky .` | ||
> eg:- Hosted remotely: `docker build --build-arg WSO2_SERVER_DIST_URL=http://<public_ip:port>/wso2is-analytics-5.7.0.zip -t wso2is-analytics-dashboard:5.7.0-rocky .` | ||
##### 3. Running Docker images specific to each profile. | ||
|
||
- `docker run -p 9643:9643 wso2is-analytics-dashboard:5.7.0-rocky` | ||
|
||
##### 4. Accessing the Dashboard portal. | ||
|
||
- For dashboard, | ||
+ `https:<DOCKER_HOST>:9643/portal` | ||
|
||
> In here, <DOCKER_HOST> refers to hostname or IP of the host machine on top of which containers are spawned. | ||
## How to update configurations | ||
|
||
Configurations would lie on the Docker host machine and they can be volume mounted to the container. <br> | ||
As an example, steps required to change the port offset using `deployment.yaml` is as follows: | ||
|
||
##### 1. Stop the Identity Server Analytics container if it's already running. | ||
|
||
In WSO2 Identity Server Analytics 5.7.0 product distribution, `deployment.yaml` configuration file <br> | ||
can be found at `<DISTRIBUTION_HOME>/conf/dashboard`. Copy the file to some suitable location of the host machine, <br> | ||
referred to as `<SOURCE_CONFIGS>/deployment.yaml` and change the offset value under ports to 2. | ||
|
||
##### 2. Grant read permission to `other` users for `<SOURCE_CONFIGS>/deployment.yaml`. | ||
|
||
``` | ||
chmod o+r <SOURCE_CONFIGS>/deployment.yaml | ||
``` | ||
|
||
##### 3. Run the image by mounting the file to container as follows: | ||
|
||
``` | ||
docker run | ||
-p 7713:7713 | ||
--volume <SOURCE_CONFIGS>/deployment.yaml:<TARGET_CONFIGS>/deployment.yaml | ||
wso2is-analytics-dashboard:5.7.0-rocky | ||
``` | ||
|
||
> In here, <TARGET_CONFIGS> refers to /home/wso2carbon/wso2is-analytics-5.7.0/conf/dashboard folder of the container. | ||
## Docker command usage references | ||
|
||
* [Docker build command reference](https://docs.docker.com/engine/reference/commandline/build/) | ||
* [Docker run command reference](https://docs.docker.com/engine/reference/run/) | ||
* [Dockerfile reference](https://docs.docker.com/engine/reference/builder/) |
36 changes: 36 additions & 0 deletions
36
dockerfiles/rocky/is-analytics/dashboard/docker-entrypoint.sh
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,36 @@ | ||
#!/bin/sh | ||
# ------------------------------------------------------------------------ | ||
# Copyright 2024 WSO2, LLC. (http://wso2.com) | ||
# | ||
# Licensed under the Apache License, Version 2.0 (the "License"); | ||
# you may not use this file except in compliance with the License. | ||
# You may obtain a copy of the License at | ||
# | ||
# http://www.apache.org/licenses/LICENSE-2.0 | ||
# | ||
# Unless required by applicable law or agreed to in writing, software | ||
# distributed under the License is distributed on an "AS IS" BASIS, | ||
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. | ||
# See the License for the specific language governing permissions and | ||
# limitations under the License | ||
# ------------------------------------------------------------------------ | ||
|
||
set -e | ||
|
||
# volume mounts | ||
config_volume=${WORKING_DIRECTORY}/wso2-config-volume | ||
artifact_volume=${WORKING_DIRECTORY}/wso2-artifact-volume | ||
|
||
# check if the WSO2 non-root user home exists | ||
test ! -d ${WORKING_DIRECTORY} && echo "WSO2 Docker non-root user home does not exist" && exit 1 | ||
|
||
# check if the WSO2 product home exists | ||
test ! -d ${WSO2_SERVER_HOME} && echo "WSO2 Docker product home does not exist" && exit 1 | ||
|
||
# copy any configuration changes mounted to config_volume | ||
test -d ${config_volume} && [ "$(ls -A ${config_volume})" ] && cp -RL ${config_volume}/* ${WSO2_SERVER_HOME}/ | ||
# copy any artifact changes mounted to artifact_volume | ||
test -d ${artifact_volume} && [ "$(ls -A ${artifact_volume})" ] && cp -RL ${artifact_volume}/* ${WSO2_SERVER_HOME}/ | ||
|
||
# start WSO2 Carbon server | ||
sh ${WSO2_SERVER_HOME}/bin/dashboard.sh "$@" |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,136 @@ | ||
# ------------------------------------------------------------------------ | ||
# | ||
# Copyright 2024 WSO2, LLC. (http://wso2.com) | ||
# | ||
# Licensed under the Apache License, Version 2.0 (the "License"); | ||
# you may not use this file except in compliance with the License. | ||
# You may obtain a copy of the License at | ||
# | ||
# http://www.apache.org/licenses/LICENSE-2.0 | ||
# | ||
# Unless required by applicable law or agreed to in writing, software | ||
# distributed under the License is distributed on an "AS IS" BASIS, | ||
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. | ||
# See the License for the specific language governing permissions and | ||
# limitations under the License | ||
# | ||
# ------------------------------------------------------------------------ | ||
|
||
# set base Docker image to Rocky Linux Docker image | ||
FROM rockylinux:8 | ||
LABEL maintainer="WSO2 Docker Maintainers <[email protected]>" \ | ||
com.wso2.docker.source="https://github.com/wso2/docker-is/releases/tag/v5.7.0.4" | ||
|
||
# Update the system to the specific 8.10 version | ||
RUN dnf -y update && \ | ||
dnf -y distro-sync && \ | ||
dnf clean all | ||
|
||
# Install necessary locale packages | ||
RUN yum install -y glibc-langpack-en && \ | ||
yum install -y langpacks-en glibc-locale-source && \ | ||
localedef -c -f UTF-8 -i en_US en_US.UTF-8 | ||
|
||
ENV LANG='en_US.UTF-8' LANGUAGE='en_US:en' LC_ALL='en_US.UTF-8' | ||
|
||
# Install JDK Dependencies. | ||
RUN yum install -y tzdata openssl ca-certificates fontconfig gzip tar nc unzip wget \ | ||
&& yum clean all | ||
|
||
ENV JAVA_VERSION jdk8u362-b09 | ||
|
||
# Install JDK8. | ||
RUN set -eux; \ | ||
ARCH="$(objdump="$(command -v objdump)" && objdump --file-headers "$objdump" | awk -F '[:,]+[[:space:]]+' '$1 == "architecture" { print $2 }')"; \ | ||
case "${ARCH}" in \ | ||
amd64|i386:x86-64) \ | ||
ESUM='1486a792fb224611ce0cd0e83d4aacd3503b56698549f8e9a9f0a6ebb83bdba1'; \ | ||
BINARY_URL='https://github.com/adoptium/temurin8-binaries/releases/download/jdk8u362-b09/OpenJDK8U-jdk_x64_linux_hotspot_8u362b09.tar.gz'; \ | ||
;; \ | ||
arm64|aarch64) \ | ||
ESUM='9290a8beefd7a94f0eb030f62d402411a852100482b9c5b63714bacc57002c2a'; \ | ||
BINARY_URL='https://github.com/adoptium/temurin8-binaries/releases/download/jdk8u362-b09/OpenJDK8U-jdk_aarch64_linux_hotspot_8u362b09.tar.gz'; \ | ||
;; \ | ||
*) \ | ||
echo "Unsupported arch: ${ARCH}"; \ | ||
exit 1; \ | ||
;; \ | ||
esac; \ | ||
curl -LfsSo /tmp/openjdk.tar.gz ${BINARY_URL}; \ | ||
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; \ | ||
rm -rf /tmp/openjdk.tar.gz; | ||
|
||
ENV JAVA_HOME=/opt/java/openjdk \ | ||
PATH="/opt/java/openjdk/bin:$PATH" | ||
|
||
# set Docker image build arguments | ||
# build arguments for user/group configurations | ||
ARG USER=wso2carbon | ||
ARG USER_ID=802 | ||
ARG USER_GROUP=wso2 | ||
ARG USER_GROUP_ID=802 | ||
ARG USER_HOME=/home/${USER} | ||
# set JDK configurations | ||
ARG JAVA_HOME=${USER_HOME}/java | ||
# build arguments for WSO2 product installation | ||
ARG WSO2_SERVER_NAME=wso2is-analytics | ||
ARG WSO2_SERVER_VERSION=5.7.0 | ||
ARG WSO2_SERVER=${WSO2_SERVER_NAME}-${WSO2_SERVER_VERSION} | ||
ARG WSO2_SERVER_HOME=${USER_HOME}/${WSO2_SERVER} | ||
ARG WSO2_SERVER_DIST_URL | ||
# build argument for MOTD | ||
ARG MOTD='printf "\n\ | ||
Welcome to WSO2 Docker resources.\n\ | ||
------------------------------------ \n\ | ||
This Docker container comprises of a WSO2 product, running with its latest GA release \n\ | ||
which is under the Apache License, Version 2.0. \n\ | ||
Read more about Apache License, Version 2.0 here @ http://www.apache.org/licenses/LICENSE-2.0.\n\n"' | ||
|
||
# create the non-root user and group and set MOTD login message | ||
RUN \ | ||
groupadd --system -g ${USER_GROUP_ID} ${USER_GROUP} \ | ||
&& useradd --system --create-home --home-dir ${USER_HOME} --no-log-init -g ${USER_GROUP_ID} -u ${USER_ID} ${USER} \ | ||
&& echo ${MOTD} > /etc/profile.d/motd.sh | ||
|
||
# create Java prefs dir | ||
# this is to avoid warning logs printed by FileSystemPreferences class | ||
RUN \ | ||
mkdir -p ${USER_HOME}/.java/.systemPrefs \ | ||
&& mkdir -p ${USER_HOME}/.java/.userPrefs \ | ||
&& chmod -R 755 ${USER_HOME}/.java \ | ||
&& chown -R ${USER}:${USER_GROUP} ${USER_HOME}/.java | ||
|
||
# copy init script to user home | ||
COPY --chown=wso2carbon:wso2 docker-entrypoint.sh ${USER_HOME}/ | ||
# install required packages | ||
RUN \ | ||
yum -y update \ | ||
&& yum install -y \ | ||
nc \ | ||
unzip \ | ||
wget \ | ||
&& rm -rf /var/cache/yum/* | ||
# add the WSO2 product distribution to user's home directory | ||
RUN \ | ||
wget -O ${WSO2_SERVER}.zip "${WSO2_SERVER_DIST_URL}" \ | ||
&& unzip -d ${USER_HOME} ${WSO2_SERVER}.zip \ | ||
&& chown wso2carbon:wso2 -R ${WSO2_SERVER_HOME} \ | ||
&& rm -f ${WSO2_SERVER}.zip | ||
|
||
# set the user and work directory | ||
USER ${USER_ID} | ||
WORKDIR ${USER_HOME} | ||
|
||
# set environment variables | ||
ENV JAVA_OPTS="-Djava.util.prefs.systemRoot=${USER_HOME}/.java -Djava.util.prefs.userRoot=${USER_HOME}/.java/.userPrefs" \ | ||
WORKING_DIRECTORY=${USER_HOME} \ | ||
WSO2_SERVER_HOME=${WSO2_SERVER_HOME} | ||
|
||
# expose ports | ||
EXPOSE 9090 9091 9443 7712 7612 9612 9712 | ||
|
||
# initiate container and start WSO2 Carbon server | ||
ENTRYPOINT ["/home/wso2carbon/docker-entrypoint.sh"] |
Oops, something went wrong.