diff --git a/build.gradle.kts b/build.gradle.kts index 9d5908d..121d0ff 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -46,7 +46,7 @@ java { toolchain { languageVersion.set(JavaLanguageVersion.of(25)) } } -tasks.withType { +tasks.withType().configureEach { options.release.set(25) options.compilerArgs.add("--enable-preview") } @@ -57,7 +57,7 @@ tasks.register("prepareLibs") { group = "distribution" description = "Copies runtime deps to build/libs without deleting the app jar" -val jarTask = tasks.named("jar") + val jarTask = tasks.named("jar") dependsOn(jarTask) into(libsDir) diff --git a/build.sh b/build.sh index d854bec..0589f91 100755 --- a/build.sh +++ b/build.sh @@ -13,13 +13,14 @@ export VERSION_LONG=${VERSION}_${GITHASH} # Build this artifact echo "Building 'NenjimKicker v${VERSION_LONG}'..." -./gradlew -Pversion=$VERSION jar prepareDockerLibs +./gradlew -Pversion=$VERSION jar prepareLibs + # Prepare container dependencies -mkdir -p build/docker/conf +mkdir -p build/docker/{conf,libs} cd build/docker -cp ../../src/main/docker/start.sh start.sh -cp ../libs/kicker-impl-ref-*.jar libs -cp ../../conf/* conf +cp ../../src/main/docker/run.sh run.sh +cp ../libs/*.jar libs/ +cp ../../conf/* conf/ sed -e "s|_VERSION_|${VERSION}|g" \ -e "s|_JREVERSION_|${JREVERSION}|g" \ ../../src/main/docker/Dockerfile_template > Dockerfile @@ -32,7 +33,6 @@ HASHTAG=${BASETAG}:${GITHASH}_amd64 VERSIONTAG=${BASETAG}:${VERSION}_amd64 LATESTTAG=${BASETAG}:latest_amd64 CANONICALNAME=${HASHTAG} - docker build -t ${CANONICALNAME} . docker tag ${CANONICALNAME} ${VERSIONTAG} docker tag ${CANONICALNAME} ${LATESTTAG} diff --git a/libs b/libs new file mode 120000 index 0000000..6516765 --- /dev/null +++ b/libs @@ -0,0 +1 @@ +build/libs \ No newline at end of file diff --git a/publishCICD.sh b/publishCICD.sh deleted file mode 100755 index bf096d6..0000000 --- a/publishCICD.sh +++ /dev/null @@ -1,6 +0,0 @@ -export VERSION=$(git describe --tags --exact-match 2>/dev/null \ - || git symbolic-ref --short -q HEAD \ - || git rev-parse --short HEAD) - -echo "Building and publishing (CI/CD) $VERSION..." -./gradlew -Pversion=$VERSION publish diff --git a/publishCICD.sh b/publishCICD.sh new file mode 120000 index 0000000..7269b3b --- /dev/null +++ b/publishCICD.sh @@ -0,0 +1 @@ +publish.sh \ No newline at end of file diff --git a/run.sh b/run.sh deleted file mode 100755 index cce4cd0..0000000 --- a/run.sh +++ /dev/null @@ -1,6 +0,0 @@ -#!/usr/bin/env bash -set -euo pipefail - -./gradlew run \ - -Dlog4j.configurationFile="$PWD/config/log4j2.xml" \ - --args="foo bar baz" diff --git a/run.sh b/run.sh new file mode 120000 index 0000000..3ec4652 --- /dev/null +++ b/run.sh @@ -0,0 +1 @@ +src/main/docker/run.sh \ No newline at end of file diff --git a/src/main/docker/Dockerfile_template b/src/main/docker/Dockerfile_template index 4d9cc6b..956633c 100644 --- a/src/main/docker/Dockerfile_template +++ b/src/main/docker/Dockerfile_template @@ -13,7 +13,7 @@ WORKDIR nenjimkicker RUN mkdir libs # These dirs are expected to be overshadowed by host mounts -RUN mkdir conf logs +RUN mkdir conf logs && chown user:user logs # Set timezone ENV TZ=Europe/Copenhagen @@ -29,14 +29,14 @@ RUN apt-get autoremove -y \ && rm -rf /var/lib/apt/lists/* # Install application and configuration (Do this as late as possible to be able to reuse layers between builds) -COPY start.sh . +COPY run.sh . COPY conf/* conf/ COPY libs/*.jar libs/ -RUN chmod 755 ./start.sh \ +RUN chmod 755 ./run.sh \ && chmod -R a+rX /usr/local/software/nenjimkicker-_VERSION_ USER user:user -CMD ["./start.sh"] +CMD ["./run.sh"] diff --git a/src/main/docker/start.sh b/src/main/docker/run.sh similarity index 77% rename from src/main/docker/start.sh rename to src/main/docker/run.sh index fd154a3..6de18d5 100755 --- a/src/main/docker/start.sh +++ b/src/main/docker/run.sh @@ -12,6 +12,6 @@ fi CLASSPATH=$(IFS=:; echo "${jars[*]}") exec java \ - -Dlog4j.configurationFile=/usr/local/software/nenjimkicker/conf/log4j2.xml \ + -Dlog4j.configurationFile=conf/log4j2.xml \ -cp "$CLASSPATH" \ com.r35157.nenjim.kicker.impl.ref.Main