Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
11 changes: 7 additions & 4 deletions Dockerfile
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
# syntax=docker/dockerfile:1
ARG BUILD_IMAGE=gradle:9-jdk21
ARG RUN_IMAGE=quay.io/wildfly/wildfly:37.0.1.Final-jdk21
ARG RUN_IMAGE=codecr.jlab.org/acc/iac/containers/java-container:3
ARG ORACLE_DRIVER_PATH=/ojdbc17-23.9.0.25.07
ARG MARIADB_DRIVER_PATH=/mariadb-java-client-3.3.3.jar
ARG CUSTOM_CRT_URL="https://ace.jlab.org/acc-ca.crt http://pki.jlab.org/JLabCA.crt"
Expand All @@ -25,10 +25,12 @@ RUN cd /tmp \
## Let's minimize layers in final-product by organizing files into a single copy structure
RUN mkdir /unicopy \
&& cp /app/config/docker-server.env /unicopy \
&& cp /app/config/docker-host.env /unicopy \
&& cp /app/scripts/TestOracleConnection.java /unicopy \
&& cp /app/scripts/TestMariadbConnection.java /unicopy \
&& cp /app/scripts/container-entrypoint.sh /unicopy \
&& cp /app/scripts/container-healthcheck.sh /unicopy \
&& cp /app/scripts/devcontainer-setup.sh /unicopy \
&& cp /app/scripts/server-setup.sh /unicopy \
&& cp /app/scripts/provided-setup.sh /unicopy \
&& cp /app/scripts/app-setup.sh /unicopy \
Expand All @@ -37,15 +39,16 @@ RUN mkdir /unicopy \
################## Stage 1
FROM ${RUN_IMAGE} AS runner
ARG CUSTOM_CRT_URL
ARG RUN_USER=jboss
ARG RUN_USER=wildfly
ARG ORACLE_DRIVER_PATH
ARG MARIADB_DRIVER_PATH
USER root
COPY --from=builder /unicopy /
COPY --from=builder /tmp/server.p12 /opt/jboss/wildfly/standalone/configuration
RUN /devcontainer-setup.sh /docker-host.env
COPY --from=builder /tmp/server.p12 /opt/wildfly/current/standalone/configuration
RUN /update-certs-runner.sh ${CUSTOM_CRT_URL} \
&& /server-setup.sh /docker-server.env \
&& rm -rf /opt/jboss/wildfly/standalone/configuration/standalone_xml_history
&& rm -rf /opt/wildfly/current/standalone/configuration/standalone_xml_history
ENTRYPOINT ["/container-entrypoint.sh"]
ENV ORACLE_DRIVER_PATH=$ORACLE_DRIVER_PATH
ENV MARIADB_DRIVER_PATH=$MARIADB_DRIVER_PATH
Expand Down
9 changes: 9 additions & 0 deletions config/docker-host.env
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
WILDFLY_BIND_ADDRESS=0.0.0.0
WILDFLY_HTTPS_PORT=443
WILDFLY_USER=dev
WILDFLY_USER_HOME=/opt/wildfly
WILDFLY_VERSION=37.0.1.Final

JDK_HOME=/etc/alternatives/jre_21_openjdk
JDK_MAX_HEAP=2048m
JDK_MIN_HEAP=1024m
4 changes: 2 additions & 2 deletions config/docker-server.env
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
ORACLE_DRIVER_URL=https://repo1.maven.org/maven2/com/oracle/database/jdbc/ojdbc17/23.9.0.25.07/ojdbc17-23.9.0.25.07.jar
MARIADB_DRIVER_URL=https://repo1.maven.org/maven2/org/mariadb/jdbc/mariadb-java-client/3.3.3/mariadb-java-client-3.3.3.jar
WILDFLY_APP_HOME=/opt/jboss/wildfly
WILDFLY_RUN_USER=jboss
WILDFLY_APP_HOME=/opt/wildfly/current
WILDFLY_RUN_USER=dev
WILDFLY_PASS=admin
WILDFLY_USER=admin
PROXY=defined
Expand Down
2 changes: 1 addition & 1 deletion scripts/container-entrypoint.sh
Original file line number Diff line number Diff line change
Expand Up @@ -33,7 +33,7 @@ echo "----------------------------"
echo "| Step 2: Starting Wildfly |"
echo "----------------------------"

/opt/jboss/wildfly/bin/standalone.sh -b 0.0.0.0 -bmanagement 0.0.0.0 &
/opt/wildfly/current/bin/standalone.sh -b 0.0.0.0 -bmanagement 0.0.0.0 &

until curl http://localhost:8080 -sf -o /dev/null;
do
Expand Down
81 changes: 81 additions & 0 deletions scripts/devcontainer-setup.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,81 @@
#!/bin/bash

FUNCTIONS=(download
unzip_and_chmod
create_symbolic_links
adjust_jvm_options)

VARIABLES=(WILDFLY_BIND_ADDRESS
WILDFLY_HTTPS_PORT
WILDFLY_USER
WILDFLY_USER_HOME
WILDFLY_VERSION
JDK_HOME
JDK_MAX_HEAP
JDK_MIN_HEAP)

if [[ $# -eq 0 ]] ; then
echo "Usage: $0 [var file] <optional function>"
echo "The var file arg should be the path to a file with bash variables that will be sourced."
echo "The optional function name arg if provided is the sole function to call, else all functions are invoked sequentially."
printf 'Variables: '
printf '%s ' "${VARIABLES[@]}"
printf '\n'
printf 'Functions: '
printf '%s ' "${FUNCTIONS[@]}"
printf '\n'
exit 0
fi

if [ ! -z "$1" ] && [ -f "$1" ]
then
echo "Loading environment $1"
. $1
fi

# Verify expected env set:
for i in "${!VARIABLES[@]}"; do
var=${VARIABLES[$i]}
[ -z "${!var}" ] && { echo "$var is not set. Exiting."; exit 1; }
done

WILDFLY_APP_HOME=${WILDFLY_USER_HOME}/${WILDFLY_VERSION}

download() {
cd /tmp
curl -L -O https://github.com/wildfly/wildfly/releases/download/${WILDFLY_VERSION}/wildfly-${WILDFLY_VERSION}.zip
}

unzip_and_chmod() {
unzip /tmp/wildfly-${WILDFLY_VERSION}.zip -d ${WILDFLY_USER_HOME}
mv ${WILDFLY_USER_HOME}/wildfly-${WILDFLY_VERSION} ${WILDFLY_APP_HOME}
chown -R ${WILDFLY_USER}:${WILDFLY_GROUP} ${WILDFLY_USER_HOME}
}

create_symbolic_links() {
cd ${WILDFLY_USER_HOME}
ln -s ${WILDFLY_VERSION} current
ln -s current/standalone/configuration configuration
ln -s current/standalone/log log
}

adjust_jvm_options() {
sed -i "s|#JAVA_HOME=\"/opt/java/jdk\"|JAVA_HOME=\"${JDK_HOME}\"|g" ${WILDFLY_APP_HOME}/bin/standalone.conf
sed -i "s/Xms64m/Xms${JDK_MIN_HEAP}/g" ${WILDFLY_APP_HOME}/bin/standalone.conf
sed -i "s/Xmx512m/Xmx${JDK_MAX_HEAP}/g" ${WILDFLY_APP_HOME}/bin/standalone.conf
}

if [ ! -z "$2" ]
then
echo "------------------------"
echo "$2"
echo "------------------------"
$2
else
for i in "${!FUNCTIONS[@]}"; do
echo "------------------------"
echo "${FUNCTIONS[$i]}"
echo "------------------------"
${FUNCTIONS[$i]};
done
fi
2 changes: 1 addition & 1 deletion scripts/provided-setup.sh
Original file line number Diff line number Diff line change
Expand Up @@ -45,7 +45,7 @@ IFS=","
read -a resources <<<"${RESOURCES_CSV}"
for x in "${resources[@]}" ;do
#echo "> [$x]"
wget -nv ${x}
curl -L -O ${x}
LOCAL_RESOURCES+=(/tmp/`basename "${x}"`)
done

Expand Down
6 changes: 3 additions & 3 deletions scripts/server-setup.sh
Original file line number Diff line number Diff line change
Expand Up @@ -89,7 +89,7 @@ if [[ -z "${ORACLE_DRIVER_PATH}" ]]; then
return 0
fi

wget -O "${ORACLE_DRIVER_PATH}" "${ORACLE_DRIVER_URL}"
curl -L -o "${ORACLE_DRIVER_PATH}" "${ORACLE_DRIVER_URL}"

${WILDFLY_CLI_PATH} -c <<EOF
batch
Expand All @@ -106,8 +106,8 @@ if [[ -z "${MARIADB_DRIVER_PATH}" ]]; then
return 0
fi

echo wget -O "${MARIADB_DRIVER_PATH}" "${MARIADB_DRIVER_URL}"
wget -O "${MARIADB_DRIVER_PATH}" "${MARIADB_DRIVER_URL}"
#echo curl -L -o "${MARIADB_DRIVER_PATH}" "${MARIADB_DRIVER_URL}"
curl -L -o "${MARIADB_DRIVER_PATH}" "${MARIADB_DRIVER_URL}"

${WILDFLY_CLI_PATH} -c <<EOF
batch
Expand Down