diff --git a/Dockerfile b/Dockerfile index b06f7659..7fb25163 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,19 +1,21 @@ FROM maven:3-openjdk-11 as builder + + WORKDIR /work -COPY ./ /work/ +COPY . . RUN mvn clean package ### FROM openjdk:11 RUN useradd -r -u 1000 -g users qortal && \ - mkdir /usr/local/qortal /qortal && \ - chown 1000:100 /qortal - -COPY --from=builder /work/log4j2.properties /usr/local/qortal/ -COPY --from=builder /work/target/qortal*.jar /usr/local/qortal/qortal.jar + mkdir /qortal && \ + chown 1000:100 /qortal && \ +COPY --from=builder /work/log4j2.properties /qortal/ +COPY --from=builder /work/target/qortal*.jar /qortal/qortal.jar +COPY --from=builder /work/start.sh /qortal/ USER 1000:100 EXPOSE 12391 12392 @@ -22,5 +24,11 @@ HEALTHCHECK --start-period=5m CMD curl -sf http://127.0.0.1:12391/admin/info || WORKDIR /qortal VOLUME /qortal -ENTRYPOINT ["java"] -CMD ["-Djava.net.preferIPv4Stack=false", "-jar", "/usr/local/qortal/qortal.jar"] +## ENTRYPOINT ["java"] +## CMD ["-Djava.net.preferIPv4Stack=false", "-jar", "/usr/local/qortal/qortal.jar"] + +ENTRYPOINT ["/qortal/start.sh"] +CMD ["docker"] + + + diff --git a/start.sh b/start.sh index b3db54fe..3cee1178 100755 --- a/start.sh +++ b/start.sh @@ -2,10 +2,18 @@ # There's no need to run as root, so don't allow it, for security reasons if [ "$USER" = "root" ]; then - echo "Please su to non-root user before running" - exit + echo "Please su to non-root user before running" + exit fi +# If docker is passed, then we want to change the behavior of the script +# to change the log suppression +if [ "$1" = "docker" ]; then + DOCKER=true +fi + + + # Validate Java is installed and the minimum version is available MIN_JAVA_VER='11' @@ -26,8 +34,8 @@ fi # No qortal.jar but we have a Maven built one? # Be helpful and copy across to correct location if [ ! -e qortal.jar -a -f target/qortal*.jar ]; then - echo "Copying Maven-built Qortal JAR to correct pathname" - cp target/qortal*.jar qortal.jar + echo "Copying Maven-built Qortal JAR to correct pathname" + cp target/qortal*.jar qortal.jar fi # Limits Java JVM stack size and maximum heap usage. @@ -39,12 +47,17 @@ fi # by default in Java 11, on some platforms (e.g. FreeBSD 12), # it is overridden to be true by default. Hence we explicitly # set it to false to obtain desired behaviour. -nohup nice -n 20 java \ - -Djava.net.preferIPv4Stack=false \ - ${JVM_MEMORY_ARGS} \ - -jar qortal.jar \ - 1>run.log 2>&1 & + +if [ "$DOCKER" = true ]; then + java -Djava.net.preferIPv4Stack=false $JVM_MEMORY_ARGS -jar qortal.jar +else + nohup nice -n 20 java \ + -Djava.net.preferIPv4Stack=false \ + ${JVM_MEMORY_ARGS} \ + -jar qortal.jar +fi + # Save backgrounded process's PID -echo $! > run.pid -echo qortal running as pid $! +# echo $! > run.pid +# echo qortal running as pid $!