Skip to content
Permalink

Comparing changes

Choose two branches to see what’s changed or to start a new pull request. If you need to, you can also or learn more about diff comparisons.

Open a pull request

Create a new pull request by comparing changes across two branches. If you need to, you can also . Learn more about diff comparisons here.
base repository: docker/grouper
base: 3ba862c
Choose a base ref
...
head repository: docker/grouper
compare: 40a198c
Choose a head ref
Showing with 6,104 additions and 1,690 deletions.
  1. +2 −0 .gitignore
  2. +45 −142 Dockerfile
  3. +62 −0 Dockerfile2
  4. +4 −0 Dockerfile3
  5. +59 −0 Dockerfile_centos
  6. +71 −26 Jenkinsfile
  7. +1 −1 LICENSE
  8. +4 −367 README.md
  9. +3 −0 build.sh
  10. +3 −0 build2.sh
  11. +3 −0 build3.sh
  12. +1 −1 common.bash
  13. +0 −144 container_files/api/log4j.properties
  14. BIN container_files/certs/TestSsl.class
  15. +39 −0 container_files/certs/TestSsl.java
  16. +34 −0 container_files/certs/client/localhost.pem
  17. +122 −0 container_files/certs/get_tls_cert.py
  18. +52 −0 container_files/certs/keys/localhost.key
  19. +276 −0 container_files/docker-build-bin/containerDockerfileInstall.sh
  20. +9 −0 container_files/docker-build-bin/containerDockerfileInstallDos2unix.sh
  21. +47 −0 container_files/docker-build-bin/containerDockerfileInstallGrouper.sh
  22. +20 −0 container_files/docker-build-bin/containerDockerfileInstallJava.sh
  23. +112 −0 container_files/docker-build-bin/containerDockerfileInstallPermissions.sh
  24. +3 −44 container_files/grouper.installer.properties
  25. +105 −0 container_files/grouperWebapp/WEB-INF/classes/log4j.properties
  26. 0 container_files/grouperWebapp/WEB-INF/classes/log4j2.additionalAppenders.xml.txt
  27. 0 container_files/grouperWebapp/WEB-INF/classes/log4j2.additionalLoggers.xml.txt
  28. +234 −0 container_files/grouperWebapp/WEB-INF/classes/log4j2.xml
  29. +13 −15 container_files/httpd/grouper-www.conf
  30. +11 −0 container_files/httpd/httpd.conf.noindexes.patch
  31. +9 −8 container_files/httpd/ssl-enabled.conf
  32. +30 −0 container_files/java-corretto/corretto-signing-key.pub
  33. +0 −6 container_files/tier-support/grouper-ws-scim.xml
  34. +0 −4 container_files/tier-support/grouper-ws.xml
  35. +0 −4 container_files/tier-support/grouper.xml
  36. +7 −0 container_files/tier-support/httpd-shib.conf
  37. BIN container_files/tier-support/log4j_fix/tomcatBin/log4j-api-2.17.1.jar
  38. BIN container_files/tier-support/log4j_fix/tomcatBin/log4j-core-2.17.1.jar
  39. BIN container_files/tier-support/log4j_fix/tomcatBin/log4j-jul-2.17.1.jar
  40. BIN container_files/tier-support/log4j_fix/tomcatLib/slf4j-api-1.7.32.jar
  41. BIN container_files/tier-support/log4j_fix/tomcatLib/slf4j-jdk14-1.7.32.jar
  42. BIN container_files/tier-support/log4j_fix/webinfLib/log4j-1.2-api-2.17.1.jar
  43. BIN container_files/tier-support/log4j_fix/webinfLib/slf4j-api-1.7.32.jar
  44. +1 −16 container_files/tier-support/{supervisord-tomee.conf → supervisord-base.conf}
  45. +7 −0 container_files/tier-support/supervisord-httpd.conf
  46. +8 −0 container_files/tier-support/supervisord-shibsp.conf
  47. +3 −32 container_files/tier-support/supervisord-tomcat.conf
  48. +15 −0 container_files/tier-support/supervisord.conf
  49. +26 −0 container_files/tier-support/test/docker-compose.yaml.txt
  50. +87 −0 container_files/tier-support/test/grouperContainerUnitTest.sh
  51. +76 −0 container_files/tier-support/test/grouperContainerUnitTestDaemon.sh
  52. +285 −0 container_files/tier-support/test/grouperContainerUnitTestLibrary.sh
  53. +139 −0 container_files/tier-support/test/grouperContainerUnitTestQuickstart.sh
  54. +77 −0 container_files/tier-support/test/grouperContainerUnitTestSelfSigned.sh
  55. +39 −0 container_files/tier-support/test/grouperContainerUnitTestSlashRoot.sh
  56. +129 −0 container_files/tier-support/test/grouperContainerUnitTestUi.sh
  57. +74 −0 container_files/tier-support/test/grouperContainerUnitTestUi2.sh
  58. +57 −0 container_files/tier-support/test/grouperContainerUnitTestUiDifferentPorts.sh
  59. +83 −0 container_files/tier-support/test/grouperContainerUnitTestUiNoSsl.sh
  60. +46 −0 container_files/tier-support/test/grouperContainerUnitTestUiNoSslOrClient.sh
  61. +102 −0 container_files/tier-support/test/grouperContainerUnitTestUiSubimage.sh
  62. +89 −0 container_files/tier-support/test/grouperContainerUnitTestUiSubimageNonroot.sh
  63. +94 −0 container_files/tier-support/test/grouperContainerUnitTestWs.sh
  64. +94 −0 container_files/tier-support/test/grouperContainerUnitTestWsAuthn.sh
  65. +36 −0 container_files/tier-support/test/rebuildTestContainer.sh
  66. +10 −0 container_files/tier-support/test/testContainer.Dockerfile
  67. +41 −0 container_files/tier-support/web.wsTomcatAuthn.xml
  68. +6 −2 container_files/tomcat/bin/setenv.sh
  69. +3 −0 container_files/tomcat/conf/Catalina/localhost/grouper.xml
  70. +1 −0 container_files/tomcat/conf/Catalina/localhost/rewrite.config.grouper
  71. +2 −0 container_files/tomcat/conf/createPatches.txt
  72. +0 −26 container_files/tomcat/conf/log4j2.xml
  73. +47 −25 container_files/{tomee/conf/server.xml → tomcat/conf/server.xml.grouper}
  74. +55 −0 container_files/tomcat/conf/server.xml.grouper.patch
  75. +25 −18 container_files/tomcat/conf/{server.xml → server.xml.original}
  76. +3 −3 container_files/tomcat/conf/tomcat-users.xml
  77. BIN container_files/tomcat/lib/someOtherValve.jar
  78. +0 −3 container_files/tomee/bin/setenv.sh
  79. +0 −26 container_files/tomee/conf/log4j2.xml
  80. +0 −51 container_files/tomee/conf/tomcat-users.xml
  81. +0 −12 container_files/ui/classes/grouper-ui.properties
  82. +0 −144 container_files/ui/classes/log4j.properties
  83. +0 −89 container_files/ui/web.xml
  84. +23 −0 container_files/usr-local-bin/changeGid.sh
  85. +22 −0 container_files/usr-local-bin/changeUid.sh
  86. +11 −0 container_files/usr-local-bin/containerPing
  87. +4 −6 container_files/usr-local-bin/daemon
  88. +34 −3 container_files/usr-local-bin/entrypoint.sh
  89. +6 −0 container_files/usr-local-bin/grouperScriptHooks.sh
  90. +57 −0 container_files/usr-local-bin/grouperScriptHooksBase.sh
  91. +10 −0 container_files/usr-local-bin/grouperTestFileExist.sh
  92. +11 −0 container_files/usr-local-bin/grouperTestPrintEnv.sh
  93. +17 −4 container_files/usr-local-bin/gsh
  94. +37 −148 container_files/usr-local-bin/library.sh
  95. +593 −0 container_files/usr-local-bin/libraryPrep.sh
  96. +98 −0 container_files/usr-local-bin/libraryPrepOnly.sh
  97. +43 −0 container_files/usr-local-bin/libraryRunCommand.sh
  98. +519 −0 container_files/usr-local-bin/librarySetupFiles.sh
  99. +230 −0 container_files/usr-local-bin/librarySetupFilesApache.sh
  100. +150 −0 container_files/usr-local-bin/librarySetupFilesForComponent.sh
  101. +98 −0 container_files/usr-local-bin/librarySetupFilesForProcess.sh
  102. +687 −0 container_files/usr-local-bin/librarySetupFilesTomcat.sh
  103. +110 −0 container_files/usr-local-bin/librarySetupPipe.sh
  104. +10 −0 container_files/usr-local-bin/quickstart
  105. +0 −7 container_files/usr-local-bin/scim
  106. +4 −6 container_files/usr-local-bin/ui
  107. +5 −7 container_files/usr-local-bin/ui-ws
  108. +4 −4 container_files/usr-local-bin/ws
  109. +0 −144 container_files/ws/classes/log4j.properties
  110. +1 −1 manualBuild.sh
  111. +3 −0 rm.sh
  112. +19 −0 run.sh
  113. +4 −0 run2.sh
  114. +4 −0 run3.sh
  115. +3 −0 ssh.sh
  116. +3 −0 ssh3.sh
  117. +0 −1 test-compose/README.md
  118. +0 −2 test-compose/configs-and-secrets/grouper/grouper.hibernate.properties
  119. +1 −0 test-compose/configs-and-secrets/grouper/morphString.properties
  120. +1 −1 test-compose/daemon/Dockerfile
  121. +11 −9 test-compose/data/Dockerfile
  122. +112 −0 test-compose/data/container_files/conf/grouper.client.properties
  123. +0 −2 test-compose/data/container_files/conf/grouper.hibernate.properties
  124. +1 −0 test-compose/data/container_files/conf/morphString.properties
  125. +5 −35 test-compose/docker-compose.yml
  126. +1 −1 test-compose/gsh/Dockerfile
  127. +0 −8 test-compose/scim/Dockerfile
  128. +0 −51 test-compose/scim/container_files/tomcat-users.xml
  129. +0 −30 test-compose/scim/container_files/web.xml
  130. +1 −1 test-compose/ui/Dockerfile
  131. +1 −1 test-compose/ws/Dockerfile
  132. +9 −9 tests/main.bats
2 changes: 2 additions & 0 deletions .gitignore
@@ -7,3 +7,5 @@ bin/run.sh
bin/start.sh
bin/stop.sh
bin/test.sh
/.project
**/*~
187 changes: 45 additions & 142 deletions Dockerfile
@@ -1,154 +1,57 @@
FROM centos:centos7 as installing

RUN yum update -y \
&& yum install -y wget tar unzip dos2unix \
&& yum clean all

ARG GROUPER_CONTAINER_VERSION

ENV GROUPER_VERSION=2.4.0 \
JAVA_HOME=/usr/lib/jvm/zulu-8/ \
GROUPER_CONTAINER_VERSION=$GROUPER_CONTAINER_VERSION

# use Zulu package
RUN rpm --import http://repos.azulsystems.com/RPM-GPG-KEY-azulsystems \
&& curl -o /etc/yum.repos.d/zulu.repo http://repos.azulsystems.com/rhel/zulu.repo \
&& yum -y install zulu-8

#RUN java_version=8.0.172; \
# zulu_version=8.30.0.1; \
# echo 'Downloading the OpenJDK Zulu...' \
# && wget -q http://cdn.azul.com/zulu/bin/zulu$zulu_version-jdk$java_version-linux_x64.tar.gz \
# && echo "0a101a592a177c1c7bc63738d7bc2930 zulu$zulu_version-jdk$java_version-linux_x64.tar.gz" | md5sum -c - \
# && tar -zxvf zulu$zulu_version-jdk$java_version-linux_x64.tar.gz -C /opt \
# && ln -s /opt/zulu$zulu_version-jdk$java_version-linux_x64 $JAVA_HOME

#RUN java_version=8u151; \
# java_bnumber=12; \
# java_semver=1.8.0_151; \
# java_hash=123b1d755416aa7579abc03f01ab946e612e141b6f7564130f2ada00ed913f1d; \
# echo 'Downloading the Oracle Java...' \
# && wget --no-check-certificate --no-cookies --header "Cookie: oraclelicense=accept-securebackup-cookie" \
# http://download.oracle.com/otn-pub/java/jdk/$java_version-b$java_bnumber/e758a0de34e24606bca991d704f6dcbf/server-jre-$java_version-linux-x64.tar.gz \
# && echo "$java_hash server-jre-$java_version-linux-x64.tar.gz" | sha256sum -c - \
# && tar -zxvf server-jre-$java_version-linux-x64.tar.gz -C /opt \
# && ln -s /opt/jdk$java_semver/ $JAVA_HOME

RUN echo 'Downloading Grouper Installer...' \
&& mkdir -p /opt/grouper/$GROUPER_VERSION \
&& wget -q -O /opt/grouper/$GROUPER_VERSION/grouperInstaller.jar http://software.internet2.edu/grouper/release/$GROUPER_VERSION/grouperInstaller.jar

COPY container_files/grouper.installer.properties /opt/grouper/$GROUPER_VERSION
# Temporary morphString file used for building, not used in production
COPY container_files/morphString.properties /opt/grouper/$GROUPER_VERSION


RUN echo 'Installing Grouper'; \
PATH=$PATH:$JAVA_HOME/bin; \
cd /opt/grouper/$GROUPER_VERSION/ \
&& $JAVA_HOME/bin/java -cp :grouperInstaller.jar edu.internet2.middleware.grouperInstaller.GrouperInstaller



FROM centos:centos7 as cleanup

ENV GROUPER_VERSION=2.4.0 \
TOMCAT_VERSION=8.5.42 \
TOMEE_VERSION=7.0.0

COPY --from=installing /opt/grouper/$GROUPER_VERSION/grouperInstaller.jar /opt/grouper/
COPY --from=installing /opt/grouper/$GROUPER_VERSION/grouper.apiBinary-$GROUPER_VERSION/ /opt/grouper/grouper.apiBinary/
COPY --from=installing /opt/grouper/$GROUPER_VERSION/grouper.ui-$GROUPER_VERSION/dist/grouper/ /opt/grouper/grouper.ui/
COPY --from=installing /opt/grouper/$GROUPER_VERSION/grouper.ws-$GROUPER_VERSION/grouper-ws/build/dist/grouper-ws/ /opt/grouper/grouper.ws/
COPY --from=installing /opt/grouper/$GROUPER_VERSION/grouper.ws-$GROUPER_VERSION/grouper-ws-scim/targetBuiltin/grouper-ws-scim/ /opt/grouper/grouper.scim/
#COPY --from=installing /opt/grouper/$GROUPER_VERSION/grouper.clientBinary-$GROUPER_VERSION/ /opt/grouper/grouper.clientBinary/
COPY --from=installing /opt/grouper/$GROUPER_VERSION/apache-tomcat-$TOMCAT_VERSION/ /opt/tomcat/
COPY --from=installing /opt/grouper/$GROUPER_VERSION/apache-tomee-webprofile-$TOMEE_VERSION/ /opt/tomee/
COPY --from=installing /etc/alternatives/java /etc/alternatives/java

ADD https://repo1.maven.org/maven2/org/apache/logging/log4j/log4j-core/2.11.0/log4j-core-2.11.0.jar /opt/tomcat/bin
ADD https://repo1.maven.org/maven2/org/apache/logging/log4j/log4j-api/2.11.0/log4j-api-2.11.0.jar /opt/tomcat/bin
ADD https://repo1.maven.org/maven2/org/apache/logging/log4j/log4j-jul/2.11.0/log4j-jul-2.11.0.jar /opt/tomcat/bin

ADD https://repo1.maven.org/maven2/org/apache/logging/log4j/log4j-core/2.11.0/log4j-core-2.11.0.jar /opt/tomee/bin
ADD https://repo1.maven.org/maven2/org/apache/logging/log4j/log4j-api/2.11.0/log4j-api-2.11.0.jar /opt/tomee/bin
ADD https://repo1.maven.org/maven2/org/apache/logging/log4j/log4j-jul/2.11.0/log4j-jul-2.11.0.jar /opt/tomee/bin

RUN cd /opt/grouper/grouper.apiBinary/; \
rm -fr ddlScripts/ grouper.properties grouper.lck grouper.log grouper.script grouper.tmp/ gshAddGrouperSystemWsGroup.gsh logs/

RUN cd /opt/tomcat/; \
chmod +r bin/log4j-*.jar; \
rm -fr webapps/docs/ webapps/examples/ webapps/host-manager/ webapps/manager/ webapps/ROOT/ logs/* temp/* work/* conf/logging.properties

RUN cd /opt/tomee/; \
chmod +r bin/log4j-*.jar; \
rm -fr webapps/docs/ webapps/host-manager/ webapps/manager/ logs/* temp/* work/* conf/logging.properties

COPY container_files/api/* /opt/grouper/grouper.apiBinary/conf/
COPY container_files/ui/ /opt/grouper/grouper.ui/WEB-INF/
COPY container_files/ws/ /opt/grouper/grouper.ws/WEB-INF/
COPY container_files/tomcat/ /opt/tomcat/
COPY container_files/tomee/ /opt/tomee/


FROM tier/shibboleth_sp:3.0.4_03122019
#FROM i2incommon/shibboleth_sp:3.4.1_03082024_rocky8_multiarch
FROM i2incommon/shibboleth_sp:3.4.1_05152024_rocky9_multiarch

LABEL author="tier-packaging@internet2.edu <tier-packaging@internet2.edu>" \
Vendor="TIER" \
ImageType="Grouper" \
ImageName=$imagename \
ImageOS=centos7

ARG GROUPER_CONTAINER_VERSION

ENV JAVA_HOME=/usr/lib/jvm/zulu-8/ \
ENV GROUPER_VERSION=4.15.6 \
GROUPER_CONTAINER_VERSION=4.15.6 \
JAVA_HOME=/usr/lib/jvm/java-17-amazon-corretto \
PATH=$PATH:$JAVA_HOME/bin \
GROUPER_HOME=/opt/grouper/grouper.apiBinary \
GROUPER_CONTAINER_VERSION=$GROUPER_CONTAINER_VERSION

RUN ln -sf /usr/share/zoneinfo/UTC /etc/localtime

RUN yum update -y \
&& yum install -y cron logrotate python-pip \
&& pip install --upgrade pip \
&& pip install supervisor \
&& yum clean -y all

COPY --from=installing $JAVA_HOME $JAVA_HOME
COPY --from=cleanup /opt/tomcat/ /opt/tomcat/
COPY --from=cleanup /opt/tomee/ /opt/tomee/
COPY --from=cleanup /opt/grouper/ /opt/grouper/

RUN groupadd -r tomcat \
&& useradd -r -m -s /sbin/nologin -g tomcat tomcat \
&& mkdir -p /opt/tomcat/logs/ /opt/tomcat/temp/ /opt/tomcat/work/ \
&& chown -R tomcat:tomcat /opt/tomcat/logs/ /opt/tomcat/temp/ /opt/tomcat/work/ \
&& chown -R tomcat:tomcat /opt/tomee/logs/ /opt/tomee/temp/ /opt/tomee/work/ \
&& ln -s $JAVA_HOME/bin/java /etc/alternatives/java

# does shib sp3 not generate these files?
# RUN rm /etc/shibboleth/sp-key.pem /etc/shibboleth/sp-cert.pem

COPY container_files/tier-support/ /opt/tier-support/
COPY container_files/usr-local-bin/ /usr/local/bin/
COPY container_files/httpd/* /etc/httpd/conf.d/
COPY container_files/shibboleth/* /etc/shibboleth/

RUN cp /dev/null /etc/httpd/conf.d/ssl.conf \
&& sed -i 's/LogFormat "/LogFormat "httpd;access_log;%{ENV}e;%{USERTOKEN}e;/g' /etc/httpd/conf/httpd.conf \
&& echo -e "\nErrorLogFormat \"httpd;error_log;%{ENV}e;%{USERTOKEN}e;[%{u}t] [%-m:%l] [pid %P:tid %T] %7F: %E: [client\ %a] %M% ,\ referer\ %{Referer}i\"" >> /etc/httpd/conf/httpd.conf \
&& sed -i 's/CustomLog "logs\/access_log"/CustomLog "\/tmp\/logpipe"/g' /etc/httpd/conf/httpd.conf \
&& sed -i 's/ErrorLog "logs\/error_log"/ErrorLog "\/tmp\/logpipe"/g' /etc/httpd/conf/httpd.conf \
&& echo -e "\nPassEnv ENV" >> /etc/httpd/conf/httpd.conf \
&& echo -e "\nPassEnv USERTOKEN" >> /etc/httpd/conf/httpd.conf

WORKDIR /opt/grouper/grouper.apiBinary/

EXPOSE 80 443

GROUPER_HOME=/opt/grouper/grouperWebapp/WEB-INF

# net-tools curl mlocate strace telnet man vim rsyslog cron httpd mod_ssl cronie
RUN dnf update -y \
&& dnf install -y diffutils logrotate python3-pip rsync sudo patch supervisor wget tar unzip dos2unix file \
&& pip3 install --upgrade setuptools \
&& dnf clean -y all \
&& groupadd -g 994 -r tomcat \
&& useradd -u 996 -r -m -s /sbin/nologin -g tomcat tomcat \
&& mkdir -p /opt/container_files

# Install Corretto Java JDK
#Corretto download page: https://docs.aws.amazon.com/corretto/latest/corretto-8-ug/downloads-list.html

# Install Corretto Java JDK (newer more arch independent way)
RUN rpm --import https://yum.corretto.aws/corretto.key \
&& curl -L -o /etc/yum.repos.d/corretto.repo https://yum.corretto.aws/corretto.repo \
&& dnf install -y java-17-amazon-corretto-devel

# real copy command (if not caching), uncomment this and change comments of COPY above to work on install script
COPY container_files/ /opt/container_files/

RUN cd /tmp \
&& chmod +x /opt/container_files/docker-build-bin/*.sh \
&& /opt/container_files/docker-build-bin/containerDockerfileInstallDos2unix.sh /opt/container_files \
&& /opt/container_files/docker-build-bin/containerDockerfileInstallGrouper.sh $JAVA_HOME $GROUPER_VERSION \
&& /opt/container_files/docker-build-bin/containerDockerfileInstall.sh $JAVA_HOME $GROUPER_VERSION


# testing container
# see output with docker build . --tag my:grouper
# DOCKER_BUILDKIT=0 docker build --progress=plain -t mygrouper .
# docker run --detach --name mygrouper mygrouper:latest
# docker exec -it mygrouper bash

WORKDIR /opt/grouper/grouperWebapp/WEB-INF/
EXPOSE 80 443 8080 8443
HEALTHCHECK NONE

ENTRYPOINT ["/usr/local/bin/entrypoint.sh"]

CMD ["bin/gsh", "-loader"]
#ENTRYPOINT ["ping"]
#CMD ["google.com"]
62 changes: 62 additions & 0 deletions Dockerfile2
@@ -0,0 +1,62 @@
#FROM i2incommon/shibboleth_sp:3.4.1_03082024_rocky8_multiarch
FROM i2incommon/shibboleth_sp:3.4.1_05152024_rocky9_multiarch

LABEL author="tier-packaging@internet2.edu <tier-packaging@internet2.edu>" \
Vendor="TIER" \
ImageType="Grouper" \
ImageName=$imagename \
ImageOS=centos7

ARG GROUPER_CONTAINER_VERSION

ENV GROUPER_VERSION=4.14.2 \
GROUPER_CONTAINER_VERSION=4.14.2 \
JAVA_HOME=/usr/lib/jvm/java-17-amazon-corretto \
PATH=$PATH:$JAVA_HOME/bin \
GROUPER_HOME=/opt/grouper/grouperWebapp/WEB-INF

# net-tools curl mlocate strace telnet man vim rsyslog cron httpd mod_ssl cronie
RUN dnf update -y \
&& dnf install -y diffutils logrotate python3-pip rsync sudo patch supervisor wget tar unzip dos2unix file \
&& pip3 install --upgrade setuptools \
&& dnf clean -y all \
&& groupadd -g 994 -r tomcat \
&& useradd -u 996 -r -m -s /sbin/nologin -g tomcat tomcat \
&& mkdir -p /opt/container_files

# Install Corretto Java JDK
#Corretto download page: https://docs.aws.amazon.com/corretto/latest/corretto-8-ug/downloads-list.html

# Install Corretto Java JDK (newer more arch independent way)
RUN rpm --import https://yum.corretto.aws/corretto.key \
&& curl -L -o /etc/yum.repos.d/corretto.repo https://yum.corretto.aws/corretto.repo \
&& dnf install -y java-17-amazon-corretto-devel

# real copy command (if not caching), uncomment this and change comments of COPY above to work on install script
COPY container_files/ /opt/container_files/

RUN cd /tmp \
&& chmod +x /opt/container_files/docker-build-bin/*.sh \
&& /opt/container_files/docker-build-bin/containerDockerfileInstallDos2unix.sh /opt/container_files \
&& /opt/container_files/docker-build-bin/containerDockerfileInstallGrouper.sh $JAVA_HOME $GROUPER_VERSION

RUN cd /tmp \
&& /opt/container_files/docker-build-bin/containerDockerfileInstall.sh $JAVA_HOME $GROUPER_VERSION


# testing container
# see output with docker build . --tag my:grouper
# DOCKER_BUILDKIT=0 docker build -f Dockerfile2 --progress=plain -t mygrouper .
# docker run --detach --name mygrouper mygrouper:latest
# docker exec -it mygrouper bash

WORKDIR /opt/grouper/grouperWebapp/WEB-INF/
EXPOSE 80 443 8080 8443
HEALTHCHECK NONE

#ENTRYPOINT ["/usr/local/bin/entrypoint.sh"]

# LOCAL start uncomment ping, and comment out other entrypoint to just have a simple runnable container
ENTRYPOINT ["ping"]
CMD ["google.com"]
# LOCAL end
4 changes: 4 additions & 0 deletions Dockerfile3
@@ -0,0 +1,4 @@
FROM i2incommon/grouper:4.3.0

ENTRYPOINT ["ping"]
CMD ["google.com"]
59 changes: 59 additions & 0 deletions Dockerfile_centos
@@ -0,0 +1,59 @@
FROM i2incommon/grouper:4.1.5 as grouperContainer

FROM centos:centos7

COPY --from=grouperContainer /opt /opt
COPY --from=grouperContainer /usr/local/bin /usr/local/bin


LABEL author="tier-packaging@internet2.edu <tier-packaging@internet2.edu>" \
Vendor="TIER" \
ImageType="Grouper" \
ImageName=$imagename \
ImageOS=centos7

ARG GROUPER_CONTAINER_VERSION

ENV GROUPER_VERSION=4.1.5 \
GROUPER_CONTAINER_VERSION=4.1.5 \
JAVA_HOME=/usr/lib/jvm/java-17-amazon-corretto \
PATH=$PATH:$JAVA_HOME/bin \
GROUPER_HOME=/opt/grouper/grouperWebapp/WEB-INF

# net-tools curl mlocate strace telnet man vim rsyslog cron httpd mod_ssl cronie

RUN rm -fr /var/cache/yum/* && yum clean all && yum -y install --setopt=tsflags=nodocs epel-release \
&& yum update -y \
&& yum install -y logrotate python3-pip rsync sudo patch supervisor wget tar unzip dos2unix file net-tools curl mlocate logrotate strace telnet man vim rsyslog cronie httpd mod_ssl findutils \
&& pip3 install --upgrade setuptools \
&& yum clean -y all \
&& groupadd -r tomcat \
&& useradd -r -m -s /sbin/nologin -g tomcat tomcat

# Install Corretto Java JDK
#Corretto download page: https://docs.aws.amazon.com/corretto/latest/corretto-8-ug/downloads-list.html

# Install Corretto Java JDK (newer more arch independent way)
RUN rpm --import https://yum.corretto.aws/corretto.key \
&& curl -L -o /etc/yum.repos.d/corretto.repo https://yum.corretto.aws/corretto.repo \
&& yum install -y java-17-amazon-corretto-devel

RUN /opt/container_files/docker-build-bin/containerDockerfileInstallPermissions.sh tomcat root

# testing container
# docker build -f Dockerfile_centos -t mygrouper
# see output with
# DOCKER_BUILDKIT=0 docker build --progress=plain -t mygrouper .
# docker run --detach --name mygrouper mygrouper:latest
# docker exec -it mygrouper bash
# docker run --detach -e GROUPER_SELF_SIGNED_CERT=true -e GROUPER_MAX_MEMORY='3g' -e GROUPER_RUN_SHIB_SP=false -e GROUPERSYSTEM_QUICKSTART_PASS=pass -e GROUPER_UI_GROUPER_AUTH=true -e GROUPER_DATABASE_URL=jdbc:postgresql://host.docker.internal:5433/grouper -e GROUPER_DATABASE_USERNAME=grouper -e GROUPER_DATABASE_PASSWORD=pass -e GROUPER_AUTO_DDL_UPTOVERSION='v4.*.*' -e GROUPER_UI_CONFIGURATION_EDITOR_SOURCEIPADDRESSES='0.0.0.0/0' -e GROUPER_START_DELAY_SECONDS=10 --publish 8081:8080 -e GROUPER_RUN_APACHE=false --name mygrouper mygrouper:latest ui



WORKDIR /opt/grouper/grouperWebapp/WEB-INF/
EXPOSE 80 443
HEALTHCHECK NONE

ENTRYPOINT ["/usr/local/bin/entrypoint.sh"]
#ENTRYPOINT ["ping"]
#CMD ["google.com"]