Skip to content

Commit

Permalink
Update dockerfiles for release 0.27
Browse files Browse the repository at this point in the history
  • Loading branch information
dlmcpaul committed Apr 29, 2023
1 parent 420bb02 commit dc8f123
Show file tree
Hide file tree
Showing 5 changed files with 66 additions and 66 deletions.
21 changes: 11 additions & 10 deletions Dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,8 @@
FROM azul/zulu-openjdk-alpine:17 as builder
LABEL maintainer="dlmcpaul@gmail.com"

RUN wget -P / -O H2MigrationTool.jar https://github.com/manticore-projects/H2MigrationTool/releases/download/1.2/H2MigrationTool-all.jar

ARG JAR_FILE
COPY ${JAR_FILE} /app.jar

Expand All @@ -10,41 +12,40 @@ COPY ${JAR_FILE} /app.jar
RUN "$JAVA_HOME/bin/java" -Xshare:dump && \
"$JAVA_HOME/bin/jar" -xf app.jar

FROM azul/zulu-openjdk-alpine:17.0.6-17.40.19-jre-x86
FROM azul/zulu-openjdk-alpine:17-jre-headless
LABEL maintainer="dlmcpaul@gmail.com"

COPY --from=builder "./BOOT-INF/lib" /app/lib
COPY --from=builder "./META-INF" /app/META-INF
COPY --from=builder "./BOOT-INF/classes" /app
COPY --from=builder "${JAVA_HOME}/lib/server/classes.jsa" "${JAVA_HOME}/lib/server"
COPY --from=builder "./H2MigrationTool.jar" "./H2MigrationTool.jar"

RUN <<EOF
COPY <<EOF /app/runapp.sh
#!/bin/sh
if [ -f "/internal_db/solar_stats_db.mv.db" ]; then
echo "V1 of H2 database found running upgrade"

# Download migration tool
curl -Lo H2MigrationTool.jar https://github.com/manticore-projects/H2MigrationTool/releases/download/1.2/H2MigrationTool-all.jar

# rename as a backup file
mv /internal_db/solar_stats_db.mv.db /internal_db/solar_stats_db_v1.mv.db

# convert database
echo "Converting H2 database to V2"
java -jar H2MigrationTool-all.jar -f 1.4.200 -t 2.1.210 -d /internal_db/solar_stats_db_v1.mv.db
java -jar H2MigrationTool.jar -f 1.4.200 -t 2.1.210 -d /internal_db/solar_stats_db_v1.mv.db

#rename converted file to new database name
mv /internal_db/solar_stats_db_v1.210null.mv.db /internal_db/solar_stats_db_v2.mv.db

echo "Upgrade completed"
fi
java -cp app:app/lib/* -Xshare:auto -Djava.security.egd=file:/dev/./urandom -Dspring.jmx.enabled=false com.hz.EnphaseCollectorApplication --spring.datasource.url=jdbc:h2:/internal_db/solar_stats_db_v2 --spring.config.additional-location=file:/properties/application.properties
EOF

ENV SPRING_DATASOURCE_URL=jdbc:h2:/internal_db/solar_stats_db_v2
RUN mkdir "/properties" && \
touch "/properties/application.properties"
RUN chmod +x /app/runapp.sh && \
mkdir "/properties" && \
touch "/properties/application.properties"

ENTRYPOINT ["java", "-cp", "app:app/lib/*", "-Xshare:auto", "-Djava.security.egd=file:/dev/./urandom", "-Dspring.jmx.enabled=false", "com.hz.EnphaseCollectorApplication", "--spring.config.additional-location=file:/properties/application.properties"]
ENTRYPOINT ["/app/runapp.sh"]

EXPOSE 8080

Expand Down
35 changes: 25 additions & 10 deletions Dockerfile-arm
Original file line number Diff line number Diff line change
@@ -1,36 +1,51 @@
FROM eclipse-temurin:17-jre-focal
# syntax = docker/dockerfile:1.4
FROM eclipse-temurin:17-jre-focal as builder
LABEL maintainer="dlmcpaul@gmail.com"

RUN apt --no-cache add curl && curl -Lo H2MigrationTool.jar https://github.com/manticore-projects/H2MigrationTool/releases/download/1.2/H2MigrationTool-all.jar

ARG JAR_FILE
COPY ${JAR_FILE} /app.jar

RUN <<EOF
# Generate a JDK class data share and
# Explode Uber jar into lib jars and classes
RUN "$JAVA_HOME/bin/java" -Xshare:dump && \
"$JAVA_HOME/bin/jar" -xf app.jar

FROM eclipse-temurin:17-jre-focal
LABEL maintainer="dlmcpaul@gmail.com"

COPY --from=builder "./BOOT-INF/lib" /app/lib
COPY --from=builder "./META-INF" /app/META-INF
COPY --from=builder "./BOOT-INF/classes" /app
COPY --from=builder "${JAVA_HOME}/lib/server/classes.jsa" "${JAVA_HOME}/lib/server"
COPY --from=builder "./H2MigrationTool.jar" "./H2MigrationTool.jar"

COPY <<EOF /app/runapp.sh
#!/bin/sh
if [ -f "/internal_db/solar_stats_db.mv.db" ]; then
echo "V1 of H2 database found running upgrade"

# Download migration tool
curl -Lo H2MigrationTool.jar https://github.com/manticore-projects/H2MigrationTool/releases/download/1.2/H2MigrationTool-all.jar

# rename as a backup file
mv /internal_db/solar_stats_db.mv.db /internal_db/solar_stats_db_v1.mv.db

# convert database
echo "Converting H2 database to V2"
java -jar H2MigrationTool-all.jar -f 1.4.200 -t 2.1.210 -d /internal_db/solar_stats_db_v1.mv.db
java -jar H2MigrationTool.jar -f 1.4.200 -t 2.1.210 -d /internal_db/solar_stats_db_v1.mv.db

#rename converted file to new database name
mv /internal_db/solar_stats_db_v1.210null.mv.db /internal_db/solar_stats_db_v2.mv.db

echo "Upgrade completed"
fi
java -cp app:app/lib/* -Xshare:auto -Djava.security.egd=file:/dev/./urandom -Dspring.jmx.enabled=false com.hz.EnphaseCollectorApplication --spring.datasource.url=jdbc:h2:/internal_db/solar_stats_db_v2 --spring.config.additional-location=file:/properties/application.properties
EOF

ENV SPRING_DATASOURCE_URL=jdbc:h2:/internal_db/solar_stats_db_v2
RUN mkdir "/properties" && \
touch "/properties/application.properties"
RUN chmod +x /app/runapp.sh && \
mkdir "/properties" && \
touch "/properties/application.properties" \

ENTRYPOINT ["java", "-Djava.security.egd=file:/dev/./urandom", "-Dspring.jmx.enabled=false", "-jar", "app.jar", "--spring.config.additional-location=file:/properties/application.properties"]
ENTRYPOINT ["/app/runapp.sh"]

EXPOSE 8080

Expand Down
27 changes: 2 additions & 25 deletions Dockerfile-build
Original file line number Diff line number Diff line change
Expand Up @@ -10,10 +10,9 @@ RUN cp target/enphasecollector-development-SNAPSHOT.jar /app.jar
WORKDIR /

# Generate a JDK class data share
RUN "$JAVA_HOME/bin/java" -Xshare:dump

# Explode Uber jar into lib jars and classes
RUN "$JAVA_HOME/bin/jar" -xf app.jar
RUN "$JAVA_HOME/bin/java" -Xshare:dump && \
"$JAVA_HOME/bin/jar" -xf app.jar

FROM azul/zulu-openjdk-alpine:17-jre-headless
LABEL maintainer="dlmcpaul@gmail.com"
Expand All @@ -23,28 +22,6 @@ COPY --from=builder "./META-INF" /app/META-INF
COPY --from=builder "./BOOT-INF/classes" /app
COPY --from=builder "${JAVA_HOME}/lib/server/classes.jsa" "${JAVA_HOME}/lib/server"

RUN <<EOF
#!/bin/sh
if [ -f "/internal_db/solar_stats_db.mv.db" ]; then
echo "V1 of H2 database found running upgrade"

# Download migration tool
curl -Lo H2MigrationTool.jar https://github.com/manticore-projects/H2MigrationTool/releases/download/1.2/H2MigrationTool-all.jar

# rename as a backup file
mv /internal_db/solar_stats_db.mv.db /internal_db/solar_stats_db_v1.mv.db

# convert database
echo "Converting H2 database to V2"
java -jar H2MigrationTool-all.jar -f 1.4.200 -t 2.1.210 -d /internal_db/solar_stats_db_v1.mv.db

#rename converted file to new database name
mv /internal_db/solar_stats_db_v1.210null.mv.db /internal_db/solar_stats_db_v2.mv.db

echo "Upgrade completed"
fi
EOF

ENV SPRING_DATASOURCE_URL=jdbc:h2:/internal_db/solar_stats_db_v2
RUN mkdir "/properties"
RUN touch "/properties/application.properties"
Expand Down
25 changes: 12 additions & 13 deletions Dockerfile-builder
Original file line number Diff line number Diff line change
Expand Up @@ -3,13 +3,13 @@ FROM azul/zulu-openjdk-alpine:17 as builder
LABEL maintainer="dlmcpaul@gmail.com"

ARG VERSION
RUN wget -P / -O app.jar https://github.com/dlmcpaul/EnphaseCollector/releases/download/${VERSION}/enphasecollector-${VERSION}.jar
RUN wget -P / -O app.jar https://github.com/dlmcpaul/EnphaseCollector/releases/download/${VERSION}/enphasecollector-${VERSION}.jar && \
wget -P / -O H2MigrationTool.jar https://github.com/manticore-projects/H2MigrationTool/releases/download/1.2/H2MigrationTool-all.jar

# Generate a JDK class data share
RUN "$JAVA_HOME/bin/java" -Xshare:dump

# Explode Uber jar into lib jars and classes
RUN "$JAVA_HOME/bin/jar" -xf app.jar
RUN "$JAVA_HOME/bin/java" -Xshare:dump && \
"$JAVA_HOME/bin/jar" -xf app.jar

FROM azul/zulu-openjdk-alpine:17-jre-headless
LABEL maintainer="dlmcpaul@gmail.com"
Expand All @@ -18,34 +18,33 @@ COPY --from=builder "./BOOT-INF/lib" /app/lib
COPY --from=builder "./META-INF" /app/META-INF
COPY --from=builder "./BOOT-INF/classes" /app
COPY --from=builder "${JAVA_HOME}/lib/server/classes.jsa" "${JAVA_HOME}/lib/server"
COPY --from=builder "./H2MigrationTool.jar" "./H2MigrationTool.jar"

RUN <<EOF
COPY <<EOF /app/runapp.sh
#!/bin/sh
if [ -f "/internal_db/solar_stats_db.mv.db" ]; then
echo "V1 of H2 database found running upgrade"

# Download migration tool
curl -Lo H2MigrationTool.jar https://github.com/manticore-projects/H2MigrationTool/releases/download/1.2/H2MigrationTool-all.jar

# rename as a backup file
mv /internal_db/solar_stats_db.mv.db /internal_db/solar_stats_db_v1.mv.db

# convert database
echo "Converting H2 database to V2"
java -jar H2MigrationTool-all.jar -f 1.4.200 -t 2.1.210 -d /internal_db/solar_stats_db_v1.mv.db
java -jar H2MigrationTool.jar -f 1.4.200 -t 2.1.210 -d /internal_db/solar_stats_db_v1.mv.db

#rename converted file to new database name
mv /internal_db/solar_stats_db_v1.210null.mv.db /internal_db/solar_stats_db_v2.mv.db

echo "Upgrade completed"
fi
java -cp app:app/lib/* -Xshare:auto -Djava.security.egd=file:/dev/./urandom -Dspring.jmx.enabled=false com.hz.EnphaseCollectorApplication --spring.datasource.url=jdbc:h2:/internal_db/solar_stats_db_v2 --spring.config.additional-location=file:/properties/application.properties
EOF

ENV SPRING_DATASOURCE_URL=jdbc:h2:/internal_db/solar_stats_db_v2
RUN mkdir "/properties"
RUN touch "/properties/application.properties"
RUN chmod +x /app/runapp.sh && \
mkdir "/properties" && \
touch "/properties/application.properties"

ENTRYPOINT ["java", "-cp", "app:app/lib/*", "-Xshare:auto", "-Djava.security.egd=file:/dev/./urandom", "-Dspring.jmx.enabled=false", "com.hz.EnphaseCollectorApplication", "--spring.config.additional-location=file:/properties/application.properties"]
ENTRYPOINT ["/app/runapp.sh"]

EXPOSE 8080

Expand Down
24 changes: 16 additions & 8 deletions Dockerfile-slimmed
Original file line number Diff line number Diff line change
Expand Up @@ -7,14 +7,16 @@ ENV JAVA_MINIMAL=/opt/jre
ARG JAR_FILE
COPY ${JAR_FILE} /app.jar

RUN MODULES=$("$JAVA_HOME/bin/jdeps" --print-module-deps /app.jar) \
# Explode Uber jar into lib jars and classes
RUN "$JAVA_HOME/bin/jar" -xf app.jar

RUN MODULES=$("$JAVA_HOME/bin/jdeps" --ignore-missing-deps -q -recursive --multi-release 17 --print-module-deps --class-path "./BOOT-INF/lib/*" /app.jar) \
&& echo modules identified = "$MODULES" \
&& "$JAVA_HOME/bin/jlink" \
--verbose \
--add-modules \
"$MODULES",java.sql,java.naming,java.desktop,java.management,java.security.jgss,java.instrument,jdk.unsupported \
--add-modules "$MODULES" \
--compress 2 \
--strip-debug \
--strip-java-debug-attributes \
--no-header-files \
--no-man-pages \
--output "$JAVA_MINIMAL"
Expand All @@ -23,21 +25,27 @@ RUN MODULES=$("$JAVA_HOME/bin/jdeps" --print-module-deps /app.jar) \
FROM alpine:3
LABEL maintainer="dlmcpaul@gmail.com"

ARG JAR_FILE

# copy our minimal runtime
ENV JAVA_MINIMAL=/opt/jre
ENV PATH="$PATH:$JAVA_MINIMAL/bin"
COPY --from=builder "$JAVA_MINIMAL" "$JAVA_MINIMAL"

# copy our application
COPY ${JAR_FILE} /app.jar
COPY --from=builder "./BOOT-INF/lib" /app/lib
COPY --from=builder "./META-INF" /app/META-INF
COPY --from=builder "./BOOT-INF/classes" /app

# Override these for your timezone and language
ENV TZ="Australia/Sydney" \
LANG="en_AU.UTF-8"

ENV SPRING_DATASOURCE_URL=jdbc:h2:/internal_db/solar_stats_db_v2
RUN mkdir "/properties"
RUN touch "/properties/application.properties"

# expose the internal endpoint
EXPOSE 8080

ENTRYPOINT ["java", "-Djava.security.egd=file:/dev/./urandom", "-Dspring.jmx.enabled=false", "-jar", "/app.jar"]
VOLUME /internal_db /properties

ENTRYPOINT ["java", "-cp", "app:app/lib/*", "-Djava.security.egd=file:/dev/./urandom", "-Dspring.jmx.enabled=false", "com.hz.EnphaseCollectorApplication", "--spring.config.additional-location=file:/properties/application.properties"]

0 comments on commit dc8f123

Please sign in to comment.