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: main
Choose a base ref
...
head repository: docker/grouper
compare: 5.8.4
Choose a head ref
Can’t automatically merge. Don’t worry, you can still create the pull request.
Showing with 4,844 additions and 2,071 deletions.
  1. +2 −0 .gitignore
  2. +42 −140 Dockerfile
  3. +74 −0 Dockerfile2
  4. +6 −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. +227 −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. +194 −0 container_files/grouperWebapp/WEB-INF/classes/log4j2.xml
  29. +0 −20 container_files/httpd/grouper-www.conf
  30. +0 −28 container_files/httpd/ssl-enabled.conf
  31. +30 −0 container_files/java-corretto/corretto-signing-key.pub
  32. +0 −153 container_files/shibboleth/attribute-map.xml
  33. +0 −39 container_files/shibboleth/native.logger
  34. +0 −59 container_files/shibboleth/shibd.logger
  35. +0 −6 container_files/tier-support/grouper-ws-scim.xml
  36. +0 −4 container_files/tier-support/grouper-ws.xml
  37. +0 −4 container_files/tier-support/grouper.xml
  38. BIN container_files/tier-support/log4j_fix/tomcatBin/log4j-api-2.17.1.jar
  39. BIN container_files/tier-support/log4j_fix/tomcatBin/log4j-core-2.17.1.jar
  40. BIN container_files/tier-support/log4j_fix/tomcatBin/log4j-jul-2.17.1.jar
  41. BIN container_files/tier-support/log4j_fix/tomcatLib/slf4j-api-1.7.32.jar
  42. BIN container_files/tier-support/log4j_fix/tomcatLib/slf4j-jdk14-1.7.32.jar
  43. BIN container_files/tier-support/log4j_fix/webinfLib/log4j-1.2-api-2.17.1.jar
  44. BIN container_files/tier-support/log4j_fix/webinfLib/slf4j-api-1.7.32.jar
  45. +0 −39 container_files/tier-support/supervisord-tomcat.conf
  46. +0 −31 container_files/tier-support/supervisord-tomee.conf
  47. +26 −0 container_files/tier-support/test/docker-compose.yaml.txt
  48. +87 −0 container_files/tier-support/test/grouperContainerUnitTest.sh
  49. +58 −0 container_files/tier-support/test/grouperContainerUnitTestDaemon.sh
  50. +259 −0 container_files/tier-support/test/grouperContainerUnitTestLibrary.sh
  51. +113 −0 container_files/tier-support/test/grouperContainerUnitTestQuickstart.sh
  52. +54 −0 container_files/tier-support/test/grouperContainerUnitTestSelfSigned.sh
  53. +39 −0 container_files/tier-support/test/grouperContainerUnitTestSlashRoot.sh
  54. +89 −0 container_files/tier-support/test/grouperContainerUnitTestUi.sh
  55. +52 −0 container_files/tier-support/test/grouperContainerUnitTestUi2.sh
  56. +39 −0 container_files/tier-support/test/grouperContainerUnitTestUiDifferentPorts.sh
  57. +60 −0 container_files/tier-support/test/grouperContainerUnitTestUiNoSsl.sh
  58. +37 −0 container_files/tier-support/test/grouperContainerUnitTestUiNoSslOrClient.sh
  59. +79 −0 container_files/tier-support/test/grouperContainerUnitTestUiSubimage.sh
  60. +80 −0 container_files/tier-support/test/grouperContainerUnitTestUiSubimageNonroot.sh
  61. +69 −0 container_files/tier-support/test/grouperContainerUnitTestWs.sh
  62. +69 −0 container_files/tier-support/test/grouperContainerUnitTestWsAuthn.sh
  63. +30 −0 container_files/tier-support/test/rebuildTestContainer.sh
  64. +10 −0 container_files/tier-support/test/testContainer.Dockerfile
  65. +41 −0 container_files/tier-support/web.wsTomcatAuthn.xml
  66. +6 −2 container_files/tomcat/bin/setenv.sh
  67. +3 −0 container_files/tomcat/conf/Catalina/localhost/grouper.xml
  68. +1 −0 container_files/tomcat/conf/Catalina/localhost/rewrite.config.grouper
  69. +2 −0 container_files/tomcat/conf/createPatches.txt
  70. +0 −26 container_files/tomcat/conf/log4j2.xml
  71. +47 −25 container_files/{tomee/conf/server.xml → tomcat/conf/server.xml.grouper}
  72. +55 −0 container_files/tomcat/conf/server.xml.grouper.patch
  73. +25 −18 container_files/tomcat/conf/{server.xml → server.xml.original}
  74. +3 −3 container_files/tomcat/conf/tomcat-users.xml
  75. +0 −3 container_files/tomee/bin/setenv.sh
  76. +0 −26 container_files/tomee/conf/log4j2.xml
  77. +0 −51 container_files/tomee/conf/tomcat-users.xml
  78. +0 −12 container_files/ui/classes/grouper-ui.properties
  79. +0 −144 container_files/ui/classes/log4j.properties
  80. +0 −89 container_files/ui/web.xml
  81. +23 −0 container_files/usr-local-bin/changeGid.sh
  82. +22 −0 container_files/usr-local-bin/changeUid.sh
  83. +11 −0 container_files/usr-local-bin/containerPing
  84. +4 −6 container_files/usr-local-bin/daemon
  85. +34 −3 container_files/usr-local-bin/entrypoint.sh
  86. +6 −0 container_files/usr-local-bin/grouperScriptHooks.sh
  87. +57 −0 container_files/usr-local-bin/grouperScriptHooksBase.sh
  88. +10 −0 container_files/usr-local-bin/grouperTestFileExist.sh
  89. +11 −0 container_files/usr-local-bin/grouperTestPrintEnv.sh
  90. +17 −4 container_files/usr-local-bin/gsh
  91. +34 −148 container_files/usr-local-bin/library.sh
  92. +478 −0 container_files/usr-local-bin/libraryPrep.sh
  93. +98 −0 container_files/usr-local-bin/libraryPrepOnly.sh
  94. +28 −0 container_files/usr-local-bin/libraryRunCommand.sh
  95. +414 −0 container_files/usr-local-bin/librarySetupFiles.sh
  96. +84 −0 container_files/usr-local-bin/librarySetupFilesForComponent.sh
  97. +597 −0 container_files/usr-local-bin/librarySetupFilesTomcat.sh
  98. +10 −0 container_files/usr-local-bin/quickstart
  99. +0 −7 container_files/usr-local-bin/scim
  100. +4 −6 container_files/usr-local-bin/ui
  101. +5 −7 container_files/usr-local-bin/ui-ws
  102. +4 −4 container_files/usr-local-bin/ws
  103. +0 −144 container_files/ws/classes/log4j.properties
  104. +1 −1 manualBuild.sh
  105. +3 −0 rm.sh
  106. +17 −0 run.sh
  107. +4 −0 run2.sh
  108. +23 −0 run3.sh
  109. +3 −0 ssh.sh
  110. +3 −0 ssh3.sh
  111. +0 −2 test-compose/README.md
  112. +0 −2 test-compose/configs-and-secrets/grouper/grouper.hibernate.properties
  113. +1 −0 test-compose/configs-and-secrets/grouper/morphString.properties
  114. +1 −1 test-compose/daemon/Dockerfile
  115. +11 −9 test-compose/data/Dockerfile
  116. +112 −0 test-compose/data/container_files/conf/grouper.client.properties
  117. +0 −2 test-compose/data/container_files/conf/grouper.hibernate.properties
  118. +1 −0 test-compose/data/container_files/conf/morphString.properties
  119. +5 −50 test-compose/docker-compose.yml
  120. +1 −1 test-compose/gsh/Dockerfile
  121. +0 −8 test-compose/scim/Dockerfile
  122. +0 −51 test-compose/scim/container_files/tomcat-users.xml
  123. +0 −30 test-compose/scim/container_files/web.xml
  124. +1 −1 test-compose/ui/Dockerfile
  125. +0 −69 test-compose/ui/container_files/shibboleth/shibd.logger
  126. +1 −1 test-compose/ws/Dockerfile
  127. +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
**/*~
182 changes: 42 additions & 140 deletions Dockerfile
@@ -1,154 +1,56 @@
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 --platform=$TARGETPLATFORM rockylinux:8.8

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=5.8.4 \
GROUPER_CONTAINER_VERSION=5.8.4 \
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
GROUPER_HOME=/opt/grouper/grouperWebapp/WEB-INF

# net-tools curl mlocate strace telnet man vim rsyslog cron mod_ssl cronie
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

&& yum install -y logrotate python3-pip rsync sudo patch wget tar unzip dos2unix file net-tools diffutils curl mlocate logrotate strace telnet man vim rsyslog cronie findutils procps \
&& pip3 install --upgrade setuptools \
&& yum 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 \
&& yum 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/

# TODO put this back in one command
RUN chmod +x /opt/container_files/docker-build-bin/*.sh
RUN /opt/container_files/docker-build-bin/containerDockerfileInstallDos2unix.sh /opt/container_files
RUN /opt/container_files/docker-build-bin/containerDockerfileInstallGrouper.sh $JAVA_HOME $GROUPER_VERSION
RUN /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"]
74 changes: 74 additions & 0 deletions Dockerfile2
@@ -0,0 +1,74 @@
FROM --platform=$TARGETPLATFORM rockylinux:8.6

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.0 \
GROUPER_CONTAINER_VERSION=5.0.0 \
JAVA_HOME=/usr/lib/jvm/java-1.8.0-amazon-corretto \
PATH=$PATH:$JAVA_HOME/bin \
GROUPER_HOME=/opt/grouper/grouperWebapp/WEB-INF

RUN ln -sf /usr/share/zoneinfo/UTC /etc/localtime \
&& echo "NETWORKING=yes" > /etc/sysconfig/network
RUN rm -fr /var/cache/yum/* && yum clean all && yum -y install --setopt=tsflags=nodocs epel-release && yum -y update && \
yum -y install net-tools wget curl tar unzip mlocate logrotate strace telnet man vim rsyslog cron mod_ssl dos2unix cronie && \
yum clean all

RUN yum update -y \
&& yum install -y logrotate python3-pip rsync sudo patch wget tar unzip dos2unix file \
&& pip3 install --upgrade setuptools \
&& yum clean -y all \
&& groupadd -r tomcat \
&& useradd -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

ARG JAVA_VERSION=1.8.0


COPY container_files/docker-build-bin /opt/container_files/docker-build-bin/
COPY container_files/morphString.properties /opt/container_files/
COPY container_files/grouper.installer.properties /opt/container_files/
RUN mkdir /opt/container_files/java-corretto
COPY container_files/java-corretto/corretto-signing-key.pub /opt/container_files/java-corretto
COPY container_files/tier-support /opt/container_files/tier-support/
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/containerDockerfileInstallJava.sh $JAVA_VERSION \
&& /opt/container_files/docker-build-bin/containerDockerfileInstallGrouper.sh $JAVA_HOME $GROUPER_VERSION


# 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/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
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
6 changes: 6 additions & 0 deletions Dockerfile3
@@ -0,0 +1,6 @@
FROM i2incommon/grouper:5.7.0

COPY container_files/usr-local-bin /usr/local/bin
COPY container_files /opt

EXPOSE 8080 8443 8009
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"]