lightstreamer: matrix refactor + -base variant - #21855
Conversation
12d6d4c to
01c31be
Compare
|
The
Happy to split into smaller PRs if maintainers prefer (e.g. refactor first, then |
|
Ooof, this has some major echos of docker-library/tomcat#299 which you might find interesting (I honestly don't have a good answer to the general problem -- the Java ecosystem is in a very dark place) |
01c31be to
7c4b5d9
Compare
This comment has been minimized.
This comment has been minimized.
|
Thanks for the pointer — genuinely useful context, and it confirms there isn't a clean general answer to the matrix-explosion problem. Given that, I've taken the pragmatic route on this PR: dropped the OS variants entirely and let upstream Temurin pick its own per-JDK default OS. The Happy to revisit the OS-variant discussion in a later PR if there's ever a general fix. |
|
I'm not sure I understand the need for a multistage build here. It seems like it is only using |
|
Actually, the mentioned tools are not included in the latest images: |
|
Please let us know if you would prefer us to switch back to a single-stage build. |
Yeah, that would be appreciated; we try to avoid multi-stage builds in most cases. See also our FAQ entry: https://github.com/docker-library/faq/tree/7e5a82e9cb6e131b9a50d6532ab1b9cae95b0b30#multi-stage-builds |
This comment has been minimized.
This comment has been minimized.
Perfect, just reverted. |
+LABEL maintainer="Lightstreamer Server Development Team <support@lightstreamer.com>"Every LABEL org.opencontainers.image.authors="Lightstreamer Server Development Team <support@lightstreamer.com>"This applies to every +FROM eclipse-temurin:8-jdk(same pattern for None of the These +RUN set -ex; \
+ apt-get update && apt-get install -y --no-install-recommends curl gnupg \
+ && curl -fSL -o Lightstreamer.tar.gz ${LIGHTSTREAMER_URL_DOWNLOAD} \
RUN set -eux; \
apt-get update; \
apt-get install -y --no-install-recommends curl gnupg; \
curl -fSL -o Lightstreamer.tar.gz "${LIGHTSTREAMER_URL_DOWNLOAD}"; \
...The |
Got it. I'm going to use the OCI-namedspace form.
Ok, this will be done while relasing the next major version (8.0).
Cool. I'm going to use this form. Thanks! |
Diff for cbf41a5:diff --git a/_bashbrew-cat b/_bashbrew-cat
index ea7e612..c3df232 100644
--- a/_bashbrew-cat
+++ b/_bashbrew-cat
@@ -1,82 +1,162 @@
-Maintainers: Lightstreamer Server Development Team <support@lightstreamer.com> (@lightstreamer), Dario Crivelli <dario.crivelli@lightstreamer.com> (@dario-weswit)
+Maintainers: Lightstreamer Server Development Team <support@lightstreamer.com> (@lightstreamer), Dario Crivelli <dario.crivelli@lightstreamer.com> (@dario-weswit), Gianluca Finocchiaro <gianluca.finocchiaro@lightstreamer.com> (@gfinocchiaro)
GitRepo: https://github.com/Lightstreamer/Docker.git
-Tags: 6.0.3, 6.0
+Tags: 6.0.3-jdk8, 6.0-jdk8, 6.0.3-jdk8-temurin, 6.0-jdk8-temurin, 6.0.3, 6.0
Architectures: amd64, arm64v8
-GitCommit: b6c4a87af3e78b53887f311bdf2404f4f9956796
-Directory: 6.0
+GitCommit: 52bdda2121071588ab5cb36be7bc5a01eaf89e6e
+Directory: 6.0/jdk8
-Tags: 6.1.0, 6.1, 6
+Tags: 6.0.3-jdk8-base, 6.0-jdk8-base, 6.0.3-jdk8-temurin-base, 6.0-jdk8-temurin-base, 6.0.3-base, 6.0-base
Architectures: amd64, arm64v8
-GitCommit: b6c4a87af3e78b53887f311bdf2404f4f9956796
-Directory: 6.1
+GitCommit: 52bdda2121071588ab5cb36be7bc5a01eaf89e6e
+Directory: 6.0/jdk8-base
-Tags: 7.0.3-jdk8-temurin, 7.0-jdk8-temurin, 7.0.3-jdk8, 7.0-jdk8
+Tags: 6.1.0-jdk8, 6.1-jdk8, 6.1.0-jdk8-temurin, 6.1-jdk8-temurin, 6-jdk8, 6-jdk8-temurin, 6.1.0, 6.1, 6
Architectures: amd64, arm64v8
-GitCommit: b6c4a87af3e78b53887f311bdf2404f4f9956796
+GitCommit: 52bdda2121071588ab5cb36be7bc5a01eaf89e6e
+Directory: 6.1/jdk8
+
+Tags: 6.1.0-jdk8-base, 6.1-jdk8-base, 6.1.0-jdk8-temurin-base, 6.1-jdk8-temurin-base, 6-jdk8-base, 6-jdk8-temurin-base, 6.1.0-base, 6.1-base, 6-base
+Architectures: amd64, arm64v8
+GitCommit: 52bdda2121071588ab5cb36be7bc5a01eaf89e6e
+Directory: 6.1/jdk8-base
+
+Tags: 7.0.3-jdk8, 7.0-jdk8, 7.0.3-jdk8-temurin, 7.0-jdk8-temurin
+Architectures: amd64, arm64v8
+GitCommit: 52bdda2121071588ab5cb36be7bc5a01eaf89e6e
Directory: 7.0/jdk8
-Tags: 7.0.3-jdk11-temurin, 7.0-jdk11-temurin, 7.0.3-jdk11, 7.0-jdk11, 7.0.3, 7.0
+Tags: 7.0.3-jdk8-base, 7.0-jdk8-base, 7.0.3-jdk8-temurin-base, 7.0-jdk8-temurin-base
Architectures: amd64, arm64v8
-GitCommit: b6c4a87af3e78b53887f311bdf2404f4f9956796
+GitCommit: 52bdda2121071588ab5cb36be7bc5a01eaf89e6e
+Directory: 7.0/jdk8-base
+
+Tags: 7.0.3-jdk11, 7.0-jdk11, 7.0.3-jdk11-temurin, 7.0-jdk11-temurin, 7.0.3, 7.0
+Architectures: amd64, arm64v8
+GitCommit: 52bdda2121071588ab5cb36be7bc5a01eaf89e6e
Directory: 7.0/jdk11
-Tags: 7.1.3-jdk8-temurin, 7.1-jdk8-temurin, 7.1.3-jdk8, 7.1-jdk8
+Tags: 7.0.3-jdk11-base, 7.0-jdk11-base, 7.0.3-jdk11-temurin-base, 7.0-jdk11-temurin-base, 7.0.3-base, 7.0-base
+Architectures: amd64, arm64v8
+GitCommit: 52bdda2121071588ab5cb36be7bc5a01eaf89e6e
+Directory: 7.0/jdk11-base
+
+Tags: 7.1.3-jdk8, 7.1-jdk8, 7.1.3-jdk8-temurin, 7.1-jdk8-temurin
Architectures: amd64, arm64v8
-GitCommit: b6c4a87af3e78b53887f311bdf2404f4f9956796
+GitCommit: 52bdda2121071588ab5cb36be7bc5a01eaf89e6e
Directory: 7.1/jdk8
-Tags: 7.1.3-jdk11-temurin, 7.1-jdk11-temurin, 7.1.3-jdk11, 7.1-jdk11, 7.1.3, 7.1
+Tags: 7.1.3-jdk8-base, 7.1-jdk8-base, 7.1.3-jdk8-temurin-base, 7.1-jdk8-temurin-base
Architectures: amd64, arm64v8
-GitCommit: b6c4a87af3e78b53887f311bdf2404f4f9956796
+GitCommit: 52bdda2121071588ab5cb36be7bc5a01eaf89e6e
+Directory: 7.1/jdk8-base
+
+Tags: 7.1.3-jdk11, 7.1-jdk11, 7.1.3-jdk11-temurin, 7.1-jdk11-temurin, 7.1.3, 7.1
+Architectures: amd64, arm64v8
+GitCommit: 52bdda2121071588ab5cb36be7bc5a01eaf89e6e
Directory: 7.1/jdk11
-Tags: 7.2.2-jdk8-temurin, 7.2-jdk8-temurin, 7.2.2-jdk8, 7.2-jdk8
+Tags: 7.1.3-jdk11-base, 7.1-jdk11-base, 7.1.3-jdk11-temurin-base, 7.1-jdk11-temurin-base, 7.1.3-base, 7.1-base
+Architectures: amd64, arm64v8
+GitCommit: 52bdda2121071588ab5cb36be7bc5a01eaf89e6e
+Directory: 7.1/jdk11-base
+
+Tags: 7.2.2-jdk8, 7.2-jdk8, 7.2.2-jdk8-temurin, 7.2-jdk8-temurin
Architectures: amd64, arm64v8
-GitCommit: b6c4a87af3e78b53887f311bdf2404f4f9956796
+GitCommit: 52bdda2121071588ab5cb36be7bc5a01eaf89e6e
Directory: 7.2/jdk8
-Tags: 7.2.2-jdk11-temurin, 7.2-jdk11-temurin, 7.2.2-jdk11, 7.2-jdk11, 7.2.2, 7.2
+Tags: 7.2.2-jdk8-base, 7.2-jdk8-base, 7.2.2-jdk8-temurin-base, 7.2-jdk8-temurin-base
Architectures: amd64, arm64v8
-GitCommit: b6c4a87af3e78b53887f311bdf2404f4f9956796
+GitCommit: 52bdda2121071588ab5cb36be7bc5a01eaf89e6e
+Directory: 7.2/jdk8-base
+
+Tags: 7.2.2-jdk11, 7.2-jdk11, 7.2.2-jdk11-temurin, 7.2-jdk11-temurin, 7.2.2, 7.2
+Architectures: amd64, arm64v8
+GitCommit: 52bdda2121071588ab5cb36be7bc5a01eaf89e6e
Directory: 7.2/jdk11
-Tags: 7.3.3-jdk8-temurin, 7.3-jdk8-temurin, 7.3.3-jdk8, 7.3-jdk8
+Tags: 7.2.2-jdk11-base, 7.2-jdk11-base, 7.2.2-jdk11-temurin-base, 7.2-jdk11-temurin-base, 7.2.2-base, 7.2-base
+Architectures: amd64, arm64v8
+GitCommit: 52bdda2121071588ab5cb36be7bc5a01eaf89e6e
+Directory: 7.2/jdk11-base
+
+Tags: 7.3.3-jdk8, 7.3-jdk8, 7.3.3-jdk8-temurin, 7.3-jdk8-temurin
Architectures: amd64, arm64v8
-GitCommit: b6c4a87af3e78b53887f311bdf2404f4f9956796
+GitCommit: 52bdda2121071588ab5cb36be7bc5a01eaf89e6e
Directory: 7.3/jdk8
-Tags: 7.3.3-jdk11-temurin, 7.3-jdk11-temurin, 7.3.3-jdk11, 7.3-jdk11
+Tags: 7.3.3-jdk8-base, 7.3-jdk8-base, 7.3.3-jdk8-temurin-base, 7.3-jdk8-temurin-base
Architectures: amd64, arm64v8
-GitCommit: b6c4a87af3e78b53887f311bdf2404f4f9956796
+GitCommit: 52bdda2121071588ab5cb36be7bc5a01eaf89e6e
+Directory: 7.3/jdk8-base
+
+Tags: 7.3.3-jdk11, 7.3-jdk11, 7.3.3-jdk11-temurin, 7.3-jdk11-temurin
+Architectures: amd64, arm64v8
+GitCommit: 52bdda2121071588ab5cb36be7bc5a01eaf89e6e
Directory: 7.3/jdk11
-Tags: 7.3.3-jdk17-temurin, 7.3-jdk17-temurin, 7.3.3-jdk17, 7.3-jdk17, 7.3.3, 7.3
+Tags: 7.3.3-jdk11-base, 7.3-jdk11-base, 7.3.3-jdk11-temurin-base, 7.3-jdk11-temurin-base
+Architectures: amd64, arm64v8
+GitCommit: 52bdda2121071588ab5cb36be7bc5a01eaf89e6e
+Directory: 7.3/jdk11-base
+
+Tags: 7.3.3-jdk17, 7.3-jdk17, 7.3.3-jdk17-temurin, 7.3-jdk17-temurin, 7.3.3, 7.3
Architectures: amd64, arm64v8
-GitCommit: b6c4a87af3e78b53887f311bdf2404f4f9956796
+GitCommit: 52bdda2121071588ab5cb36be7bc5a01eaf89e6e
Directory: 7.3/jdk17
-Tags: 7.4.8-jdk8-temurin, 7.4-jdk8-temurin, 7-jdk8-temurin, 7.4.8-jdk8, 7.4-jdk8, 7-jdk8
+Tags: 7.3.3-jdk17-base, 7.3-jdk17-base, 7.3.3-jdk17-temurin-base, 7.3-jdk17-temurin-base, 7.3.3-base, 7.3-base
Architectures: amd64, arm64v8
-GitCommit: e9f661a11fd775edfe188bb2e4f9ada8e8dad2cb
+GitCommit: 52bdda2121071588ab5cb36be7bc5a01eaf89e6e
+Directory: 7.3/jdk17-base
+
+Tags: 7.4.8-jdk8, 7.4-jdk8, 7.4.8-jdk8-temurin, 7.4-jdk8-temurin, 7-jdk8, 7-jdk8-temurin
+Architectures: amd64, arm64v8
+GitCommit: 52bdda2121071588ab5cb36be7bc5a01eaf89e6e
Directory: 7.4/jdk8
-Tags: 7.4.8-jdk11-temurin, 7.4-jdk11-temurin, 7-jdk11-temurin, 7.4.8-jdk11, 7.4-jdk11, 7-jdk11
+Tags: 7.4.8-jdk8-base, 7.4-jdk8-base, 7.4.8-jdk8-temurin-base, 7.4-jdk8-temurin-base, 7-jdk8-base, 7-jdk8-temurin-base
+Architectures: amd64, arm64v8
+GitCommit: 52bdda2121071588ab5cb36be7bc5a01eaf89e6e
+Directory: 7.4/jdk8-base
+
+Tags: 7.4.8-jdk11, 7.4-jdk11, 7.4.8-jdk11-temurin, 7.4-jdk11-temurin, 7-jdk11, 7-jdk11-temurin
Architectures: amd64, arm64v8
-GitCommit: e9f661a11fd775edfe188bb2e4f9ada8e8dad2cb
+GitCommit: 52bdda2121071588ab5cb36be7bc5a01eaf89e6e
Directory: 7.4/jdk11
-Tags: 7.4.8-jdk17-temurin, 7.4-jdk17-temurin, 7-jdk17-temurin, 7.4.8-jdk17, 7.4-jdk17, 7-jdk17
+Tags: 7.4.8-jdk11-base, 7.4-jdk11-base, 7.4.8-jdk11-temurin-base, 7.4-jdk11-temurin-base, 7-jdk11-base, 7-jdk11-temurin-base
Architectures: amd64, arm64v8
-GitCommit: e9f661a11fd775edfe188bb2e4f9ada8e8dad2cb
+GitCommit: 52bdda2121071588ab5cb36be7bc5a01eaf89e6e
+Directory: 7.4/jdk11-base
+
+Tags: 7.4.8-jdk17, 7.4-jdk17, 7.4.8-jdk17-temurin, 7.4-jdk17-temurin, 7-jdk17, 7-jdk17-temurin
+Architectures: amd64, arm64v8
+GitCommit: 52bdda2121071588ab5cb36be7bc5a01eaf89e6e
Directory: 7.4/jdk17
-Tags: 7.4.8-jdk21-temurin, 7.4-jdk21-temurin, 7-jdk21-temurin, 7.4.8-jdk21, 7.4-jdk21, 7-jdk21
+Tags: 7.4.8-jdk17-base, 7.4-jdk17-base, 7.4.8-jdk17-temurin-base, 7.4-jdk17-temurin-base, 7-jdk17-base, 7-jdk17-temurin-base
+Architectures: amd64, arm64v8
+GitCommit: 52bdda2121071588ab5cb36be7bc5a01eaf89e6e
+Directory: 7.4/jdk17-base
+
+Tags: 7.4.8-jdk21, 7.4-jdk21, 7.4.8-jdk21-temurin, 7.4-jdk21-temurin, 7-jdk21, 7-jdk21-temurin
Architectures: amd64, arm64v8
-GitCommit: e9f661a11fd775edfe188bb2e4f9ada8e8dad2cb
+GitCommit: 52bdda2121071588ab5cb36be7bc5a01eaf89e6e
Directory: 7.4/jdk21
-Tags: 7.4.8-jdk25-temurin, 7.4-jdk25-temurin, 7-jdk25-temurin, 7.4.8-jdk25, 7.4-jdk25, 7-jdk25, 7.4.8, 7.4, 7, latest
+Tags: 7.4.8-jdk21-base, 7.4-jdk21-base, 7.4.8-jdk21-temurin-base, 7.4-jdk21-temurin-base, 7-jdk21-base, 7-jdk21-temurin-base
Architectures: amd64, arm64v8
-GitCommit: e9f661a11fd775edfe188bb2e4f9ada8e8dad2cb
+GitCommit: 52bdda2121071588ab5cb36be7bc5a01eaf89e6e
+Directory: 7.4/jdk21-base
+
+Tags: 7.4.8-jdk25, 7.4-jdk25, 7.4.8-jdk25-temurin, 7.4-jdk25-temurin, 7-jdk25, 7-jdk25-temurin, 7.4.8, 7.4, 7, latest
+Architectures: amd64, arm64v8
+GitCommit: 52bdda2121071588ab5cb36be7bc5a01eaf89e6e
Directory: 7.4/jdk25
+
+Tags: 7.4.8-jdk25-base, 7.4-jdk25-base, 7.4.8-jdk25-temurin-base, 7.4-jdk25-temurin-base, 7-jdk25-base, 7-jdk25-temurin-base, 7.4.8-base, 7.4-base, 7-base, base
+Architectures: amd64, arm64v8
+GitCommit: 52bdda2121071588ab5cb36be7bc5a01eaf89e6e
+Directory: 7.4/jdk25-base
diff --git a/_bashbrew-list b/_bashbrew-list
index 82c359f..23b9746 100644
--- a/_bashbrew-list
+++ b/_bashbrew-list
@@ -1,83 +1,186 @@
lightstreamer:6
+lightstreamer:6-base
+lightstreamer:6-jdk8
+lightstreamer:6-jdk8-base
+lightstreamer:6-jdk8-temurin
+lightstreamer:6-jdk8-temurin-base
lightstreamer:6.0
+lightstreamer:6.0-base
+lightstreamer:6.0-jdk8
+lightstreamer:6.0-jdk8-base
+lightstreamer:6.0-jdk8-temurin
+lightstreamer:6.0-jdk8-temurin-base
lightstreamer:6.0.3
+lightstreamer:6.0.3-base
+lightstreamer:6.0.3-jdk8
+lightstreamer:6.0.3-jdk8-base
+lightstreamer:6.0.3-jdk8-temurin
+lightstreamer:6.0.3-jdk8-temurin-base
lightstreamer:6.1
+lightstreamer:6.1-base
+lightstreamer:6.1-jdk8
+lightstreamer:6.1-jdk8-base
+lightstreamer:6.1-jdk8-temurin
+lightstreamer:6.1-jdk8-temurin-base
lightstreamer:6.1.0
+lightstreamer:6.1.0-base
+lightstreamer:6.1.0-jdk8
+lightstreamer:6.1.0-jdk8-base
+lightstreamer:6.1.0-jdk8-temurin
+lightstreamer:6.1.0-jdk8-temurin-base
lightstreamer:7
+lightstreamer:7-base
lightstreamer:7-jdk8
+lightstreamer:7-jdk8-base
lightstreamer:7-jdk8-temurin
+lightstreamer:7-jdk8-temurin-base
lightstreamer:7-jdk11
+lightstreamer:7-jdk11-base
lightstreamer:7-jdk11-temurin
+lightstreamer:7-jdk11-temurin-base
lightstreamer:7-jdk17
+lightstreamer:7-jdk17-base
lightstreamer:7-jdk17-temurin
+lightstreamer:7-jdk17-temurin-base
lightstreamer:7-jdk21
+lightstreamer:7-jdk21-base
lightstreamer:7-jdk21-temurin
+lightstreamer:7-jdk21-temurin-base
lightstreamer:7-jdk25
+lightstreamer:7-jdk25-base
lightstreamer:7-jdk25-temurin
+lightstreamer:7-jdk25-temurin-base
lightstreamer:7.0
+lightstreamer:7.0-base
lightstreamer:7.0-jdk8
+lightstreamer:7.0-jdk8-base
lightstreamer:7.0-jdk8-temurin
+lightstreamer:7.0-jdk8-temurin-base
lightstreamer:7.0-jdk11
+lightstreamer:7.0-jdk11-base
lightstreamer:7.0-jdk11-temurin
+lightstreamer:7.0-jdk11-temurin-base
lightstreamer:7.0.3
+lightstreamer:7.0.3-base
lightstreamer:7.0.3-jdk8
+lightstreamer:7.0.3-jdk8-base
lightstreamer:7.0.3-jdk8-temurin
+lightstreamer:7.0.3-jdk8-temurin-base
lightstreamer:7.0.3-jdk11
+lightstreamer:7.0.3-jdk11-base
lightstreamer:7.0.3-jdk11-temurin
+lightstreamer:7.0.3-jdk11-temurin-base
lightstreamer:7.1
+lightstreamer:7.1-base
lightstreamer:7.1-jdk8
+lightstreamer:7.1-jdk8-base
lightstreamer:7.1-jdk8-temurin
+lightstreamer:7.1-jdk8-temurin-base
lightstreamer:7.1-jdk11
+lightstreamer:7.1-jdk11-base
lightstreamer:7.1-jdk11-temurin
+lightstreamer:7.1-jdk11-temurin-base
lightstreamer:7.1.3
+lightstreamer:7.1.3-base
lightstreamer:7.1.3-jdk8
+lightstreamer:7.1.3-jdk8-base
lightstreamer:7.1.3-jdk8-temurin
+lightstreamer:7.1.3-jdk8-temurin-base
lightstreamer:7.1.3-jdk11
+lightstreamer:7.1.3-jdk11-base
lightstreamer:7.1.3-jdk11-temurin
+lightstreamer:7.1.3-jdk11-temurin-base
lightstreamer:7.2
+lightstreamer:7.2-base
lightstreamer:7.2-jdk8
+lightstreamer:7.2-jdk8-base
lightstreamer:7.2-jdk8-temurin
+lightstreamer:7.2-jdk8-temurin-base
lightstreamer:7.2-jdk11
+lightstreamer:7.2-jdk11-base
lightstreamer:7.2-jdk11-temurin
+lightstreamer:7.2-jdk11-temurin-base
lightstreamer:7.2.2
+lightstreamer:7.2.2-base
lightstreamer:7.2.2-jdk8
+lightstreamer:7.2.2-jdk8-base
lightstreamer:7.2.2-jdk8-temurin
+lightstreamer:7.2.2-jdk8-temurin-base
lightstreamer:7.2.2-jdk11
+lightstreamer:7.2.2-jdk11-base
lightstreamer:7.2.2-jdk11-temurin
+lightstreamer:7.2.2-jdk11-temurin-base
lightstreamer:7.3
+lightstreamer:7.3-base
lightstreamer:7.3-jdk8
+lightstreamer:7.3-jdk8-base
lightstreamer:7.3-jdk8-temurin
+lightstreamer:7.3-jdk8-temurin-base
lightstreamer:7.3-jdk11
+lightstreamer:7.3-jdk11-base
lightstreamer:7.3-jdk11-temurin
+lightstreamer:7.3-jdk11-temurin-base
lightstreamer:7.3-jdk17
+lightstreamer:7.3-jdk17-base
lightstreamer:7.3-jdk17-temurin
+lightstreamer:7.3-jdk17-temurin-base
lightstreamer:7.3.3
+lightstreamer:7.3.3-base
lightstreamer:7.3.3-jdk8
+lightstreamer:7.3.3-jdk8-base
lightstreamer:7.3.3-jdk8-temurin
+lightstreamer:7.3.3-jdk8-temurin-base
lightstreamer:7.3.3-jdk11
+lightstreamer:7.3.3-jdk11-base
lightstreamer:7.3.3-jdk11-temurin
+lightstreamer:7.3.3-jdk11-temurin-base
lightstreamer:7.3.3-jdk17
+lightstreamer:7.3.3-jdk17-base
lightstreamer:7.3.3-jdk17-temurin
+lightstreamer:7.3.3-jdk17-temurin-base
lightstreamer:7.4
+lightstreamer:7.4-base
lightstreamer:7.4-jdk8
+lightstreamer:7.4-jdk8-base
lightstreamer:7.4-jdk8-temurin
+lightstreamer:7.4-jdk8-temurin-base
lightstreamer:7.4-jdk11
+lightstreamer:7.4-jdk11-base
lightstreamer:7.4-jdk11-temurin
+lightstreamer:7.4-jdk11-temurin-base
lightstreamer:7.4-jdk17
+lightstreamer:7.4-jdk17-base
lightstreamer:7.4-jdk17-temurin
+lightstreamer:7.4-jdk17-temurin-base
lightstreamer:7.4-jdk21
+lightstreamer:7.4-jdk21-base
lightstreamer:7.4-jdk21-temurin
+lightstreamer:7.4-jdk21-temurin-base
lightstreamer:7.4-jdk25
+lightstreamer:7.4-jdk25-base
lightstreamer:7.4-jdk25-temurin
+lightstreamer:7.4-jdk25-temurin-base
lightstreamer:7.4.8
+lightstreamer:7.4.8-base
lightstreamer:7.4.8-jdk8
+lightstreamer:7.4.8-jdk8-base
lightstreamer:7.4.8-jdk8-temurin
+lightstreamer:7.4.8-jdk8-temurin-base
lightstreamer:7.4.8-jdk11
+lightstreamer:7.4.8-jdk11-base
lightstreamer:7.4.8-jdk11-temurin
+lightstreamer:7.4.8-jdk11-temurin-base
lightstreamer:7.4.8-jdk17
+lightstreamer:7.4.8-jdk17-base
lightstreamer:7.4.8-jdk17-temurin
+lightstreamer:7.4.8-jdk17-temurin-base
lightstreamer:7.4.8-jdk21
+lightstreamer:7.4.8-jdk21-base
lightstreamer:7.4.8-jdk21-temurin
+lightstreamer:7.4.8-jdk21-temurin-base
lightstreamer:7.4.8-jdk25
+lightstreamer:7.4.8-jdk25-base
lightstreamer:7.4.8-jdk25-temurin
+lightstreamer:7.4.8-jdk25-temurin-base
+lightstreamer:base
lightstreamer:latest
diff --git a/_bashbrew-list-build-order b/_bashbrew-list-build-order
index 8e2fbc8..2118778 100644
--- a/_bashbrew-list-build-order
+++ b/_bashbrew-list-build-order
@@ -1,16 +1,32 @@
lightstreamer:6
+lightstreamer:6-base
lightstreamer:6.0
-lightstreamer:7-jdk8
-lightstreamer:7-jdk11
-lightstreamer:7-jdk17
-lightstreamer:7-jdk21
+lightstreamer:6.0-base
+lightstreamer:7-jdk8-temurin
+lightstreamer:7-jdk8-temurin-base
+lightstreamer:7-jdk11-temurin
+lightstreamer:7-jdk11-temurin-base
+lightstreamer:7-jdk17-temurin
+lightstreamer:7-jdk17-temurin-base
+lightstreamer:7-jdk21-temurin
+lightstreamer:7-jdk21-temurin-base
lightstreamer:7.0
-lightstreamer:7.0-jdk8
+lightstreamer:7.0-base
+lightstreamer:7.0-jdk8-temurin
+lightstreamer:7.0-jdk8-temurin-base
lightstreamer:7.1
-lightstreamer:7.1-jdk8
+lightstreamer:7.1-base
+lightstreamer:7.1-jdk8-temurin
+lightstreamer:7.1-jdk8-temurin-base
lightstreamer:7.2
-lightstreamer:7.2-jdk8
+lightstreamer:7.2-base
+lightstreamer:7.2-jdk8-temurin
+lightstreamer:7.2-jdk8-temurin-base
lightstreamer:7.3
-lightstreamer:7.3-jdk8
-lightstreamer:7.3-jdk11
+lightstreamer:7.3-base
+lightstreamer:7.3-jdk8-temurin
+lightstreamer:7.3-jdk8-temurin-base
+lightstreamer:7.3-jdk11-temurin
+lightstreamer:7.3-jdk11-temurin-base
+lightstreamer:base
lightstreamer:latest
diff --git a/lightstreamer_6-base/Dockerfile b/lightstreamer_6-base/Dockerfile
new file mode 100644
index 0000000..168c372
--- /dev/null
+++ b/lightstreamer_6-base/Dockerfile
@@ -0,0 +1,63 @@
+#
+# NOTE: THIS DOCKERFILE IS GENERATED VIA "update.sh"
+#
+# PLEASE DO NOT EDIT IT DIRECTLY.
+#
+
+# "Base" edition — same runtime as the full image, but with all content that
+# downstream images are expected to provide themselves removed: factory config
+# XMLs, welcome page, welcome-adapter resources, and PDF documentation.
+# The sed step that rewrites conf/lightstreamer_log_conf.xml is dropped too,
+# since the file it targets is stripped a moment later.
+
+FROM eclipse-temurin:8-jdk
+LABEL org.opencontainers.image.authors="Lightstreamer Server Development Team <support@lightstreamer.com>"
+ENV LIGHTSTREAMER_VERSION=6.1.0
+
+ARG LIGHTSTREAMER_URL_DOWNLOAD=https://lightstreamer.com/distros/ls-server/6.1.0/Lightstreamer-6.1.0.tar.gz
+ARG FINGERPRINT=9B90BFD14309C7DA5EF58D7D4A8C08966F29B4D2
+
+WORKDIR /lightstreamer
+
+RUN set -eux; \
+ apt-get update && apt-get install -y --no-install-recommends curl gnupg; \
+# Download the package from the Lightstreamer site
+ curl -fSL -o Lightstreamer.tar.gz ${LIGHTSTREAMER_URL_DOWNLOAD}; \
+ curl -fSL -o Lightstreamer.tar.gz.asc ${LIGHTSTREAMER_URL_DOWNLOAD}.asc; \
+# Import Lightstreamer's public key and verify the signature of the downloaded package
+ GNUPGHOME="$(mktemp -d)"; \
+ export GNUPGHOME; \
+ gpg --batch --keyserver hkps://keys.openpgp.org --recv-keys "${FINGERPRINT}"; \
+ gpg --batch --verify Lightstreamer.tar.gz.asc Lightstreamer.tar.gz; \
+# Unpack
+ tar -xf Lightstreamer.tar.gz --strip-components=1; \
+# Replace the fictitious jdk path with the JAVA_HOME environment variable in the launch script file
+ sed -i -- 's/\/usr\/jdk1.8.0/$JAVA_HOME/' bin/unix-like/LS.sh; \
+# Strip content that downstream images are expected to provide themselves.
+ rm -rf DOCS-SDKs pages adapters/welcome_res; \
+ rm -f conf/*.xml; \
+ rm -rf bin/unix-like/install; \
+ rm -rf bin/windows; \
+# Remove no longer needed files
+ rm Lightstreamer.tar.gz Lightstreamer.tar.gz.asc; \
+ gpgconf --kill all; \
+ rm -rf "$GNUPGHOME"; \
+ rm -rf /var/lib/apt/lists/*; \
+# Create a non-root user and group (UID/GID 10000) as the default runtime identity
+ groupadd -g 10000 lightstreamer; \
+ useradd --no-log-init -M -s /usr/sbin/nologin -g lightstreamer -u 10000 lightstreamer; \
+# Group-owned by root (GID 0) and g=u so OpenShift's arbitrary UID (always in
+# root group) can read/write. Downstream images that add content (conf/,
+# adapters/) should apply the same pattern to their own additions.
+ chown -R lightstreamer:root /lightstreamer; \
+ chmod -R g=u /lightstreamer
+
+USER 10000:10000
+
+EXPOSE 8080
+
+WORKDIR /lightstreamer/bin/unix-like
+
+# Downstream images MUST provide their own conf/*.xml (and any adapters they
+# need) before the container can start.
+CMD ["./LS.sh", "run"]
diff --git a/lightstreamer_6.0-base/Dockerfile b/lightstreamer_6.0-base/Dockerfile
new file mode 100644
index 0000000..0d9734a
--- /dev/null
+++ b/lightstreamer_6.0-base/Dockerfile
@@ -0,0 +1,63 @@
+#
+# NOTE: THIS DOCKERFILE IS GENERATED VIA "update.sh"
+#
+# PLEASE DO NOT EDIT IT DIRECTLY.
+#
+
+# "Base" edition — same runtime as the full image, but with all content that
+# downstream images are expected to provide themselves removed: factory config
+# XMLs, welcome page, welcome-adapter resources, and PDF documentation.
+# The sed step that rewrites conf/lightstreamer_log_conf.xml is dropped too,
+# since the file it targets is stripped a moment later.
+
+FROM eclipse-temurin:8-jdk
+LABEL org.opencontainers.image.authors="Lightstreamer Server Development Team <support@lightstreamer.com>"
+ENV LIGHTSTREAMER_VERSION=6.0.3
+
+ARG LIGHTSTREAMER_URL_DOWNLOAD=https://lightstreamer.com/distros/ls-server/6.0.3/Lightstreamer-6.0.3.tar.gz
+ARG FINGERPRINT=9B90BFD14309C7DA5EF58D7D4A8C08966F29B4D2
+
+WORKDIR /lightstreamer
+
+RUN set -eux; \
+ apt-get update && apt-get install -y --no-install-recommends curl gnupg; \
+# Download the package from the Lightstreamer site
+ curl -fSL -o Lightstreamer.tar.gz ${LIGHTSTREAMER_URL_DOWNLOAD}; \
+ curl -fSL -o Lightstreamer.tar.gz.asc ${LIGHTSTREAMER_URL_DOWNLOAD}.asc; \
+# Import Lightstreamer's public key and verify the signature of the downloaded package
+ GNUPGHOME="$(mktemp -d)"; \
+ export GNUPGHOME; \
+ gpg --batch --keyserver hkps://keys.openpgp.org --recv-keys "${FINGERPRINT}"; \
+ gpg --batch --verify Lightstreamer.tar.gz.asc Lightstreamer.tar.gz; \
+# Unpack
+ tar -xf Lightstreamer.tar.gz --strip-components=1; \
+# Replace the fictitious jdk path with the JAVA_HOME environment variable in the launch script file
+ sed -i -- 's/\/usr\/jdk1.8.0/$JAVA_HOME/' bin/unix-like/LS.sh; \
+# Strip content that downstream images are expected to provide themselves.
+ rm -rf DOCS-SDKs pages adapters/welcome_res; \
+ rm -f conf/*.xml; \
+ rm -rf bin/unix-like/install; \
+ rm -rf bin/windows; \
+# Remove no longer needed files
+ rm Lightstreamer.tar.gz Lightstreamer.tar.gz.asc; \
+ gpgconf --kill all; \
+ rm -rf "$GNUPGHOME"; \
+ rm -rf /var/lib/apt/lists/*; \
+# Create a non-root user and group (UID/GID 10000) as the default runtime identity
+ groupadd -g 10000 lightstreamer; \
+ useradd --no-log-init -M -s /usr/sbin/nologin -g lightstreamer -u 10000 lightstreamer; \
+# Group-owned by root (GID 0) and g=u so OpenShift's arbitrary UID (always in
+# root group) can read/write. Downstream images that add content (conf/,
+# adapters/) should apply the same pattern to their own additions.
+ chown -R lightstreamer:root /lightstreamer; \
+ chmod -R g=u /lightstreamer
+
+USER 10000:10000
+
+EXPOSE 8080
+
+WORKDIR /lightstreamer/bin/unix-like
+
+# Downstream images MUST provide their own conf/*.xml (and any adapters they
+# need) before the container can start.
+CMD ["./LS.sh", "run"]
diff --git a/lightstreamer_6.0/Dockerfile b/lightstreamer_6.0/Dockerfile
index 91cd352..f11f174 100644
--- a/lightstreamer_6.0/Dockerfile
+++ b/lightstreamer_6.0/Dockerfile
@@ -1,40 +1,57 @@
-# Set the base image
-FROM eclipse-temurin:8-jdk
-
-LABEL maintainer="Lightstreamer Server Development Team <support@lightstreamer.com>"
-
-# Add gpg, which is missing in the eclipse-temurin image
-RUN apt-get -y update \
- && apt-get -y install gnupg \
- && rm -rf /var/lib/apt/lists/*
+#
+# NOTE: THIS DOCKERFILE IS GENERATED VIA "update.sh"
+#
+# PLEASE DO NOT EDIT IT DIRECTLY.
+#
-# Import Lighstreamer's public key
-RUN gpg --batch --keyserver hkp://keyserver.ubuntu.com --recv-keys 9B90BFD14309C7DA5EF58D7D4A8C08966F29B4D2
+FROM eclipse-temurin:8-jdk
+LABEL org.opencontainers.image.authors="Lightstreamer Server Development Team <support@lightstreamer.com>"
+ENV LIGHTSTREAMER_VERSION=6.0.3
-# Set environment variables to identify the right Lightstreamer version and edition
-ENV LIGHTSTREAMER_URL_DOWNLOAD https://lightstreamer.com/distros/ls-server/6.0.3/Lightstreamer_Allegro-Presto-Vivace_6_0_3_20160905.tar.gz
+ARG LIGHTSTREAMER_URL_DOWNLOAD=https://lightstreamer.com/distros/ls-server/6.0.3/Lightstreamer-6.0.3.tar.gz
+ARG FINGERPRINT=9B90BFD14309C7DA5EF58D7D4A8C08966F29B4D2
-# Set the temporary working dir
WORKDIR /lightstreamer
-# Download the package from the Lightstreamer site and replace the fictitious jdk path with
-# the JAVA_HOME environment variable in the launch script file.
-# Finally, adjust logging configuration to log only on standard output.
-RUN set -x \
- && curl -fSL -o Lightstreamer.tar.gz ${LIGHTSTREAMER_URL_DOWNLOAD} \
- && curl -fSL -o Lightstreamer.tar.gz.asc ${LIGHTSTREAMER_URL_DOWNLOAD}.asc \
- && gpg --batch --verify Lightstreamer.tar.gz.asc Lightstreamer.tar.gz \
- && tar -xvf Lightstreamer.tar.gz --strip-components=1 \
- && rm Lightstreamer.tar.gz Lightstreamer.tar.gz.asc \
- && sed -i -- 's/\/usr\/jdk1.8.0/$JAVA_HOME/' bin/unix-like/LS.sh \
- && sed -i -e '123,$s/<appender-ref ref="LSDailyRolling" \/>/<appender-ref ref="LSConsole" \/>/' \
- -e '/<appender-ref ref="LSDailyRolling" \/>/ d' conf/lightstreamer_log_conf.xml
-
-# Export TCP port 8080
+RUN set -eux; \
+ apt-get update; \
+ apt-get install -y --no-install-recommends curl gnupg; \
+# Download the package from the Lightstreamer site
+ curl -fSL -o Lightstreamer.tar.gz ${LIGHTSTREAMER_URL_DOWNLOAD}; \
+ curl -fSL -o Lightstreamer.tar.gz.asc ${LIGHTSTREAMER_URL_DOWNLOAD}.asc; \
+# Import Lightstreamer's public key and verify the signature of the downloaded package
+ GNUPGHOME="$(mktemp -d)"; \
+ export GNUPGHOME; \
+ gpg --batch --keyserver hkps://keys.openpgp.org --recv-keys "${FINGERPRINT}"; \
+ gpg --batch --verify Lightstreamer.tar.gz.asc Lightstreamer.tar.gz; \
+# Unpack
+ tar -xf Lightstreamer.tar.gz --strip-components=1; \
+# Replace the fictitious jdk path with the JAVA_HOME environment variable in the launch script file
+ sed -i -- 's/\/usr\/jdk1.8.0/$JAVA_HOME/' bin/unix-like/LS.sh; \
+# Adjust the logging configuration in order to log only on standard output
+ sed -i -e 's/<appender-ref ref="LSDailyRolling" \/>/<appender-ref ref="LSConsole" \/>/' \
+ -e '/<logger name="LightstreamerLogger.init/,+2s/<appender-ref ref="LSConsole" \/>/<!-- <appender-ref ref="LSConsole" \/> -->/' \
+ -e '/<logger name="LightstreamerLogger.license/,+2s/<appender-ref ref="LSConsole" \/>/<!-- <appender-ref ref="LSConsole" \/> -->/' \
+ -e '/<logger name="LightstreamerProxyAdapters/,+2s/<appender-ref ref="LSConsole" \/>/<!-- <appender-ref ref="LSConsole" \/> -->/' \
+ conf/lightstreamer_log_conf.xml; \
+# Remove no longer needed files
+ rm Lightstreamer.tar.gz Lightstreamer.tar.gz.asc; \
+ gpgconf --kill all; \
+ rm -rf "$GNUPGHOME"; \
+ rm -rf /var/lib/apt/lists/*; \
+# Create a non-root user and group (UID/GID 10000) as the default runtime identity
+ groupadd -g 10000 lightstreamer; \
+ useradd --no-log-init -M -s /usr/sbin/nologin -g lightstreamer -u 10000 lightstreamer; \
+# Group-owned by root (GID 0) and g=u so OpenShift's arbitrary UID (always in
+# root group) can read/write. Harmless on plain Docker (user 10000 still owns
+# the files and gets the same permissions via the user bits).
+ chown -R lightstreamer:root /lightstreamer; \
+ chmod -R g=u /lightstreamer;
+
+USER 10000:10000
+
EXPOSE 8080
-# Set the final working dir
WORKDIR /lightstreamer/bin/unix-like
-# Start the server
CMD ["./LS.sh", "run"]
\ No newline at end of file
diff --git a/lightstreamer_6/Dockerfile b/lightstreamer_6/Dockerfile
index 34f6814..f7f77cd 100644
--- a/lightstreamer_6/Dockerfile
+++ b/lightstreamer_6/Dockerfile
@@ -1,40 +1,57 @@
-# Set the base image
-FROM eclipse-temurin:8-jdk
-
-LABEL maintainer="Lightstreamer Server Development Team <support@lightstreamer.com>"
-
-# Add gpg, which is missing in the eclipse-temurin image
-RUN apt-get -y update \
- && apt-get -y install gnupg \
- && rm -rf /var/lib/apt/lists/*
+#
+# NOTE: THIS DOCKERFILE IS GENERATED VIA "update.sh"
+#
+# PLEASE DO NOT EDIT IT DIRECTLY.
+#
-# Import Lighstreamer's public key
-RUN gpg --batch --keyserver hkp://keyserver.ubuntu.com --recv-keys 9B90BFD14309C7DA5EF58D7D4A8C08966F29B4D2
+FROM eclipse-temurin:8-jdk
+LABEL org.opencontainers.image.authors="Lightstreamer Server Development Team <support@lightstreamer.com>"
+ENV LIGHTSTREAMER_VERSION=6.1.0
-# Set environment variables to identify the right Lightstreamer version and edition
-ENV LIGHTSTREAMER_URL_DOWNLOAD https://lightstreamer.com/distros/ls-server/6.1.0/Lightstreamer_Allegro-Presto-Vivace_6_1_0_20170123.tar.gz
+ARG LIGHTSTREAMER_URL_DOWNLOAD=https://lightstreamer.com/distros/ls-server/6.1.0/Lightstreamer-6.1.0.tar.gz
+ARG FINGERPRINT=9B90BFD14309C7DA5EF58D7D4A8C08966F29B4D2
-# Set the temporary working dir
WORKDIR /lightstreamer
-# Download the package from the Lightstreamer site and replace the fictitious jdk path with
-# the JAVA_HOME environment variable in the launch script file.
-# Finally, adjust logging configuration to log only on standard output.
-RUN set -x \
- && curl -fSL -o Lightstreamer.tar.gz ${LIGHTSTREAMER_URL_DOWNLOAD} \
- && curl -fSL -o Lightstreamer.tar.gz.asc ${LIGHTSTREAMER_URL_DOWNLOAD}.asc \
- && gpg --batch --verify Lightstreamer.tar.gz.asc Lightstreamer.tar.gz \
- && tar -xvf Lightstreamer.tar.gz --strip-components=1 \
- && rm Lightstreamer.tar.gz Lightstreamer.tar.gz.asc \
- && sed -i -- 's/\/usr\/jdk1.8.0/$JAVA_HOME/' bin/unix-like/LS.sh \
- && sed -i -e '123,$s/<appender-ref ref="LSDailyRolling" \/>/<appender-ref ref="LSConsole" \/>/' \
- -e '/<appender-ref ref="LSDailyRolling" \/>/ d' conf/lightstreamer_log_conf.xml
-
-# Export TCP port 8080
+RUN set -eux; \
+ apt-get update; \
+ apt-get install -y --no-install-recommends curl gnupg; \
+# Download the package from the Lightstreamer site
+ curl -fSL -o Lightstreamer.tar.gz ${LIGHTSTREAMER_URL_DOWNLOAD}; \
+ curl -fSL -o Lightstreamer.tar.gz.asc ${LIGHTSTREAMER_URL_DOWNLOAD}.asc; \
+# Import Lightstreamer's public key and verify the signature of the downloaded package
+ GNUPGHOME="$(mktemp -d)"; \
+ export GNUPGHOME; \
+ gpg --batch --keyserver hkps://keys.openpgp.org --recv-keys "${FINGERPRINT}"; \
+ gpg --batch --verify Lightstreamer.tar.gz.asc Lightstreamer.tar.gz; \
+# Unpack
+ tar -xf Lightstreamer.tar.gz --strip-components=1; \
+# Replace the fictitious jdk path with the JAVA_HOME environment variable in the launch script file
+ sed -i -- 's/\/usr\/jdk1.8.0/$JAVA_HOME/' bin/unix-like/LS.sh; \
+# Adjust the logging configuration in order to log only on standard output
+ sed -i -e 's/<appender-ref ref="LSDailyRolling" \/>/<appender-ref ref="LSConsole" \/>/' \
+ -e '/<logger name="LightstreamerLogger.init/,+2s/<appender-ref ref="LSConsole" \/>/<!-- <appender-ref ref="LSConsole" \/> -->/' \
+ -e '/<logger name="LightstreamerLogger.license/,+2s/<appender-ref ref="LSConsole" \/>/<!-- <appender-ref ref="LSConsole" \/> -->/' \
+ -e '/<logger name="LightstreamerProxyAdapters/,+2s/<appender-ref ref="LSConsole" \/>/<!-- <appender-ref ref="LSConsole" \/> -->/' \
+ conf/lightstreamer_log_conf.xml; \
+# Remove no longer needed files
+ rm Lightstreamer.tar.gz Lightstreamer.tar.gz.asc; \
+ gpgconf --kill all; \
+ rm -rf "$GNUPGHOME"; \
+ rm -rf /var/lib/apt/lists/*; \
+# Create a non-root user and group (UID/GID 10000) as the default runtime identity
+ groupadd -g 10000 lightstreamer; \
+ useradd --no-log-init -M -s /usr/sbin/nologin -g lightstreamer -u 10000 lightstreamer; \
+# Group-owned by root (GID 0) and g=u so OpenShift's arbitrary UID (always in
+# root group) can read/write. Harmless on plain Docker (user 10000 still owns
+# the files and gets the same permissions via the user bits).
+ chown -R lightstreamer:root /lightstreamer; \
+ chmod -R g=u /lightstreamer;
+
+USER 10000:10000
+
EXPOSE 8080
-# Set the final working dir
WORKDIR /lightstreamer/bin/unix-like
-# Start the server
CMD ["./LS.sh", "run"]
\ No newline at end of file
diff --git a/lightstreamer_7-jdk11-temurin-base/Dockerfile b/lightstreamer_7-jdk11-temurin-base/Dockerfile
new file mode 100644
index 0000000..0819f45
--- /dev/null
+++ b/lightstreamer_7-jdk11-temurin-base/Dockerfile
@@ -0,0 +1,61 @@
+#
+# NOTE: THIS DOCKERFILE IS GENERATED VIA "update.sh"
+#
+# PLEASE DO NOT EDIT IT DIRECTLY.
+#
+
+# "Base" edition — same runtime as the full image, but with all content that
+# downstream images are expected to provide themselves removed: factory config
+# XMLs, welcome page, welcome-adapter resources, and PDF documentation.
+# The sed step that rewrites conf/lightstreamer_log_conf.xml is dropped too,
+# since the file it targets is stripped a moment later.
+
+FROM eclipse-temurin:11-jdk
+LABEL org.opencontainers.image.authors="Lightstreamer Server Development Team <support@lightstreamer.com>"
+ENV LIGHTSTREAMER_VERSION=7.4.8
+
+ARG LIGHTSTREAMER_URL_DOWNLOAD=https://lightstreamer.com/distros/ls-server/7.4.8/Lightstreamer-7.4.8.tar.gz
+ARG FINGERPRINT=9B90BFD14309C7DA5EF58D7D4A8C08966F29B4D2
+
+WORKDIR /lightstreamer
+
+RUN set -eux; \
+ apt-get update && apt-get install -y --no-install-recommends curl gnupg; \
+# Download the package from the Lightstreamer site
+ curl -fSL -o Lightstreamer.tar.gz ${LIGHTSTREAMER_URL_DOWNLOAD}; \
+ curl -fSL -o Lightstreamer.tar.gz.asc ${LIGHTSTREAMER_URL_DOWNLOAD}.asc; \
+# Import Lightstreamer's public key and verify the signature of the downloaded package
+ GNUPGHOME="$(mktemp -d)"; \
+ export GNUPGHOME; \
+ gpg --batch --keyserver hkps://keys.openpgp.org --recv-keys "${FINGERPRINT}"; \
+ gpg --batch --verify Lightstreamer.tar.gz.asc Lightstreamer.tar.gz; \
+# Unpack
+ tar -xf Lightstreamer.tar.gz --strip-components=1; \
+# Strip content that downstream images are expected to provide themselves.
+ rm -rf docs pages adapters/welcome_res; \
+ rm -f conf/*.xml; \
+ rm -rf bin/unix-like/install; \
+ rm -rf bin/windows; \
+# Remove no longer needed files
+ rm Lightstreamer.tar.gz Lightstreamer.tar.gz.asc; \
+ gpgconf --kill all; \
+ rm -rf "$GNUPGHOME"; \
+ rm -rf /var/lib/apt/lists/*; \
+# Create a non-root user and group (UID/GID 10000) as the default runtime identity
+ groupadd -g 10000 lightstreamer; \
+ useradd --no-log-init -M -s /usr/sbin/nologin -g lightstreamer -u 10000 lightstreamer; \
+# Group-owned by root (GID 0) and g=u so OpenShift's arbitrary UID (always in
+# root group) can read/write. Downstream images that add content (conf/,
+# adapters/) should apply the same pattern to their own additions.
+ chown -R lightstreamer:root /lightstreamer; \
+ chmod -R g=u /lightstreamer
+
+USER 10000:10000
+
+EXPOSE 8080
+
+WORKDIR /lightstreamer/bin/unix-like
+
+# Downstream images MUST provide their own conf/*.xml (and any adapters they
+# need) before the container can start.
+CMD ["./LS.sh", "run"]
diff --git a/lightstreamer_7-jdk11-temurin/Dockerfile b/lightstreamer_7-jdk11-temurin/Dockerfile
new file mode 100644
index 0000000..fe2078f
--- /dev/null
+++ b/lightstreamer_7-jdk11-temurin/Dockerfile
@@ -0,0 +1,55 @@
+#
+# NOTE: THIS DOCKERFILE IS GENERATED VIA "update.sh"
+#
+# PLEASE DO NOT EDIT IT DIRECTLY.
+#
+
+FROM eclipse-temurin:11-jdk
+LABEL org.opencontainers.image.authors="Lightstreamer Server Development Team <support@lightstreamer.com>"
+ENV LIGHTSTREAMER_VERSION=7.4.8
+
+ARG LIGHTSTREAMER_URL_DOWNLOAD=https://lightstreamer.com/distros/ls-server/7.4.8/Lightstreamer-7.4.8.tar.gz
+ARG FINGERPRINT=9B90BFD14309C7DA5EF58D7D4A8C08966F29B4D2
+
+WORKDIR /lightstreamer
+
+RUN set -eux; \
+ apt-get update; \
+ apt-get install -y --no-install-recommends curl gnupg; \
+# Download the package from the Lightstreamer site
+ curl -fSL -o Lightstreamer.tar.gz ${LIGHTSTREAMER_URL_DOWNLOAD}; \
+ curl -fSL -o Lightstreamer.tar.gz.asc ${LIGHTSTREAMER_URL_DOWNLOAD}.asc; \
+# Import Lightstreamer's public key and verify the signature of the downloaded package
+ GNUPGHOME="$(mktemp -d)"; \
+ export GNUPGHOME; \
+ gpg --batch --keyserver hkps://keys.openpgp.org --recv-keys "${FINGERPRINT}"; \
+ gpg --batch --verify Lightstreamer.tar.gz.asc Lightstreamer.tar.gz; \
+# Unpack
+ tar -xf Lightstreamer.tar.gz --strip-components=1; \
+# Adjust the logging configuration in order to log only on standard output
+ sed -i -e 's/<appender-ref ref="LSDailyRolling" \/>/<appender-ref ref="LSConsole" \/>/' \
+ -e '/<logger name="LightstreamerLogger.init/,+2s/<appender-ref ref="LSConsole" \/>/<!-- <appender-ref ref="LSConsole" \/> -->/' \
+ -e '/<logger name="LightstreamerLogger.license/,+2s/<appender-ref ref="LSConsole" \/>/<!-- <appender-ref ref="LSConsole" \/> -->/' \
+ -e '/<logger name="LightstreamerProxyAdapters/,+2s/<appender-ref ref="LSConsole" \/>/<!-- <appender-ref ref="LSConsole" \/> -->/' \
+ conf/lightstreamer_log_conf.xml; \
+# Remove no longer needed files
+ rm Lightstreamer.tar.gz Lightstreamer.tar.gz.asc; \
+ gpgconf --kill all; \
+ rm -rf "$GNUPGHOME"; \
+ rm -rf /var/lib/apt/lists/*; \
+# Create a non-root user and group (UID/GID 10000) as the default runtime identity
+ groupadd -g 10000 lightstreamer; \
+ useradd --no-log-init -M -s /usr/sbin/nologin -g lightstreamer -u 10000 lightstreamer; \
+# Group-owned by root (GID 0) and g=u so OpenShift's arbitrary UID (always in
+# root group) can read/write. Harmless on plain Docker (user 10000 still owns
+# the files and gets the same permissions via the user bits).
+ chown -R lightstreamer:root /lightstreamer; \
+ chmod -R g=u /lightstreamer;
+
+USER 10000:10000
+
+EXPOSE 8080
+
+WORKDIR /lightstreamer/bin/unix-like
+
+CMD ["./LS.sh", "run"]
\ No newline at end of file
diff --git a/lightstreamer_7-jdk11/Dockerfile b/lightstreamer_7-jdk11/Dockerfile
deleted file mode 100644
index 22fd120..0000000
diff --git a/lightstreamer_7-jdk17-temurin-base/Dockerfile b/lightstreamer_7-jdk17-temurin-base/Dockerfile
new file mode 100644
index 0000000..3a51676
--- /dev/null
+++ b/lightstreamer_7-jdk17-temurin-base/Dockerfile
@@ -0,0 +1,61 @@
+#
+# NOTE: THIS DOCKERFILE IS GENERATED VIA "update.sh"
+#
+# PLEASE DO NOT EDIT IT DIRECTLY.
+#
+
+# "Base" edition — same runtime as the full image, but with all content that
+# downstream images are expected to provide themselves removed: factory config
+# XMLs, welcome page, welcome-adapter resources, and PDF documentation.
+# The sed step that rewrites conf/lightstreamer_log_conf.xml is dropped too,
+# since the file it targets is stripped a moment later.
+
+FROM eclipse-temurin:17-jdk
+LABEL org.opencontainers.image.authors="Lightstreamer Server Development Team <support@lightstreamer.com>"
+ENV LIGHTSTREAMER_VERSION=7.4.8
+
+ARG LIGHTSTREAMER_URL_DOWNLOAD=https://lightstreamer.com/distros/ls-server/7.4.8/Lightstreamer-7.4.8.tar.gz
+ARG FINGERPRINT=9B90BFD14309C7DA5EF58D7D4A8C08966F29B4D2
+
+WORKDIR /lightstreamer
+
+RUN set -eux; \
+ apt-get update && apt-get install -y --no-install-recommends curl gnupg; \
+# Download the package from the Lightstreamer site
+ curl -fSL -o Lightstreamer.tar.gz ${LIGHTSTREAMER_URL_DOWNLOAD}; \
+ curl -fSL -o Lightstreamer.tar.gz.asc ${LIGHTSTREAMER_URL_DOWNLOAD}.asc; \
+# Import Lightstreamer's public key and verify the signature of the downloaded package
+ GNUPGHOME="$(mktemp -d)"; \
+ export GNUPGHOME; \
+ gpg --batch --keyserver hkps://keys.openpgp.org --recv-keys "${FINGERPRINT}"; \
+ gpg --batch --verify Lightstreamer.tar.gz.asc Lightstreamer.tar.gz; \
+# Unpack
+ tar -xf Lightstreamer.tar.gz --strip-components=1; \
+# Strip content that downstream images are expected to provide themselves.
+ rm -rf docs pages adapters/welcome_res; \
+ rm -f conf/*.xml; \
+ rm -rf bin/unix-like/install; \
+ rm -rf bin/windows; \
+# Remove no longer needed files
+ rm Lightstreamer.tar.gz Lightstreamer.tar.gz.asc; \
+ gpgconf --kill all; \
+ rm -rf "$GNUPGHOME"; \
+ rm -rf /var/lib/apt/lists/*; \
+# Create a non-root user and group (UID/GID 10000) as the default runtime identity
+ groupadd -g 10000 lightstreamer; \
+ useradd --no-log-init -M -s /usr/sbin/nologin -g lightstreamer -u 10000 lightstreamer; \
+# Group-owned by root (GID 0) and g=u so OpenShift's arbitrary UID (always in
+# root group) can read/write. Downstream images that add content (conf/,
+# adapters/) should apply the same pattern to their own additions.
+ chown -R lightstreamer:root /lightstreamer; \
+ chmod -R g=u /lightstreamer
+
+USER 10000:10000
+
+EXPOSE 8080
+
+WORKDIR /lightstreamer/bin/unix-like
+
+# Downstream images MUST provide their own conf/*.xml (and any adapters they
+# need) before the container can start.
+CMD ["./LS.sh", "run"]
diff --git a/lightstreamer_7-jdk17-temurin/Dockerfile b/lightstreamer_7-jdk17-temurin/Dockerfile
new file mode 100644
index 0000000..629593d
--- /dev/null
+++ b/lightstreamer_7-jdk17-temurin/Dockerfile
@@ -0,0 +1,55 @@
+#
+# NOTE: THIS DOCKERFILE IS GENERATED VIA "update.sh"
+#
+# PLEASE DO NOT EDIT IT DIRECTLY.
+#
+
+FROM eclipse-temurin:17-jdk
+LABEL org.opencontainers.image.authors="Lightstreamer Server Development Team <support@lightstreamer.com>"
+ENV LIGHTSTREAMER_VERSION=7.4.8
+
+ARG LIGHTSTREAMER_URL_DOWNLOAD=https://lightstreamer.com/distros/ls-server/7.4.8/Lightstreamer-7.4.8.tar.gz
+ARG FINGERPRINT=9B90BFD14309C7DA5EF58D7D4A8C08966F29B4D2
+
+WORKDIR /lightstreamer
+
+RUN set -eux; \
+ apt-get update; \
+ apt-get install -y --no-install-recommends curl gnupg; \
+# Download the package from the Lightstreamer site
+ curl -fSL -o Lightstreamer.tar.gz ${LIGHTSTREAMER_URL_DOWNLOAD}; \
+ curl -fSL -o Lightstreamer.tar.gz.asc ${LIGHTSTREAMER_URL_DOWNLOAD}.asc; \
+# Import Lightstreamer's public key and verify the signature of the downloaded package
+ GNUPGHOME="$(mktemp -d)"; \
+ export GNUPGHOME; \
+ gpg --batch --keyserver hkps://keys.openpgp.org --recv-keys "${FINGERPRINT}"; \
+ gpg --batch --verify Lightstreamer.tar.gz.asc Lightstreamer.tar.gz; \
+# Unpack
+ tar -xf Lightstreamer.tar.gz --strip-components=1; \
+# Adjust the logging configuration in order to log only on standard output
+ sed -i -e 's/<appender-ref ref="LSDailyRolling" \/>/<appender-ref ref="LSConsole" \/>/' \
+ -e '/<logger name="LightstreamerLogger.init/,+2s/<appender-ref ref="LSConsole" \/>/<!-- <appender-ref ref="LSConsole" \/> -->/' \
+ -e '/<logger name="LightstreamerLogger.license/,+2s/<appender-ref ref="LSConsole" \/>/<!-- <appender-ref ref="LSConsole" \/> -->/' \
+ -e '/<logger name="LightstreamerProxyAdapters/,+2s/<appender-ref ref="LSConsole" \/>/<!-- <appender-ref ref="LSConsole" \/> -->/' \
+ conf/lightstreamer_log_conf.xml; \
+# Remove no longer needed files
+ rm Lightstreamer.tar.gz Lightstreamer.tar.gz.asc; \
+ gpgconf --kill all; \
+ rm -rf "$GNUPGHOME"; \
+ rm -rf /var/lib/apt/lists/*; \
+# Create a non-root user and group (UID/GID 10000) as the default runtime identity
+ groupadd -g 10000 lightstreamer; \
+ useradd --no-log-init -M -s /usr/sbin/nologin -g lightstreamer -u 10000 lightstreamer; \
+# Group-owned by root (GID 0) and g=u so OpenShift's arbitrary UID (always in
+# root group) can read/write. Harmless on plain Docker (user 10000 still owns
+# the files and gets the same permissions via the user bits).
+ chown -R lightstreamer:root /lightstreamer; \
+ chmod -R g=u /lightstreamer;
+
+USER 10000:10000
+
+EXPOSE 8080
+
+WORKDIR /lightstreamer/bin/unix-like
+
+CMD ["./LS.sh", "run"]
\ No newline at end of file
diff --git a/lightstreamer_7-jdk17/Dockerfile b/lightstreamer_7-jdk17/Dockerfile
deleted file mode 100644
index 58737ea..0000000
diff --git a/lightstreamer_7-jdk21-temurin-base/Dockerfile b/lightstreamer_7-jdk21-temurin-base/Dockerfile
new file mode 100644
index 0000000..672b681
--- /dev/null
+++ b/lightstreamer_7-jdk21-temurin-base/Dockerfile
@@ -0,0 +1,61 @@
+#
+# NOTE: THIS DOCKERFILE IS GENERATED VIA "update.sh"
+#
+# PLEASE DO NOT EDIT IT DIRECTLY.
+#
+
+# "Base" edition — same runtime as the full image, but with all content that
+# downstream images are expected to provide themselves removed: factory config
+# XMLs, welcome page, welcome-adapter resources, and PDF documentation.
+# The sed step that rewrites conf/lightstreamer_log_conf.xml is dropped too,
+# since the file it targets is stripped a moment later.
+
+FROM eclipse-temurin:21-jdk
+LABEL org.opencontainers.image.authors="Lightstreamer Server Development Team <support@lightstreamer.com>"
+ENV LIGHTSTREAMER_VERSION=7.4.8
+
+ARG LIGHTSTREAMER_URL_DOWNLOAD=https://lightstreamer.com/distros/ls-server/7.4.8/Lightstreamer-7.4.8.tar.gz
+ARG FINGERPRINT=9B90BFD14309C7DA5EF58D7D4A8C08966F29B4D2
+
+WORKDIR /lightstreamer
+
+RUN set -eux; \
+ apt-get update && apt-get install -y --no-install-recommends curl gnupg; \
+# Download the package from the Lightstreamer site
+ curl -fSL -o Lightstreamer.tar.gz ${LIGHTSTREAMER_URL_DOWNLOAD}; \
+ curl -fSL -o Lightstreamer.tar.gz.asc ${LIGHTSTREAMER_URL_DOWNLOAD}.asc; \
+# Import Lightstreamer's public key and verify the signature of the downloaded package
+ GNUPGHOME="$(mktemp -d)"; \
+ export GNUPGHOME; \
+ gpg --batch --keyserver hkps://keys.openpgp.org --recv-keys "${FINGERPRINT}"; \
+ gpg --batch --verify Lightstreamer.tar.gz.asc Lightstreamer.tar.gz; \
+# Unpack
+ tar -xf Lightstreamer.tar.gz --strip-components=1; \
+# Strip content that downstream images are expected to provide themselves.
+ rm -rf docs pages adapters/welcome_res; \
+ rm -f conf/*.xml; \
+ rm -rf bin/unix-like/install; \
+ rm -rf bin/windows; \
+# Remove no longer needed files
+ rm Lightstreamer.tar.gz Lightstreamer.tar.gz.asc; \
+ gpgconf --kill all; \
+ rm -rf "$GNUPGHOME"; \
+ rm -rf /var/lib/apt/lists/*; \
+# Create a non-root user and group (UID/GID 10000) as the default runtime identity
+ groupadd -g 10000 lightstreamer; \
+ useradd --no-log-init -M -s /usr/sbin/nologin -g lightstreamer -u 10000 lightstreamer; \
+# Group-owned by root (GID 0) and g=u so OpenShift's arbitrary UID (always in
+# root group) can read/write. Downstream images that add content (conf/,
+# adapters/) should apply the same pattern to their own additions.
+ chown -R lightstreamer:root /lightstreamer; \
+ chmod -R g=u /lightstreamer
+
+USER 10000:10000
+
+EXPOSE 8080
+
+WORKDIR /lightstreamer/bin/unix-like
+
+# Downstream images MUST provide their own conf/*.xml (and any adapters they
+# need) before the container can start.
+CMD ["./LS.sh", "run"]
diff --git a/lightstreamer_7-jdk21-temurin/Dockerfile b/lightstreamer_7-jdk21-temurin/Dockerfile
new file mode 100644
index 0000000..dd5e820
--- /dev/null
+++ b/lightstreamer_7-jdk21-temurin/Dockerfile
@@ -0,0 +1,55 @@
+#
+# NOTE: THIS DOCKERFILE IS GENERATED VIA "update.sh"
+#
+# PLEASE DO NOT EDIT IT DIRECTLY.
+#
+
+FROM eclipse-temurin:21-jdk
+LABEL org.opencontainers.image.authors="Lightstreamer Server Development Team <support@lightstreamer.com>"
+ENV LIGHTSTREAMER_VERSION=7.4.8
+
+ARG LIGHTSTREAMER_URL_DOWNLOAD=https://lightstreamer.com/distros/ls-server/7.4.8/Lightstreamer-7.4.8.tar.gz
+ARG FINGERPRINT=9B90BFD14309C7DA5EF58D7D4A8C08966F29B4D2
+
+WORKDIR /lightstreamer
+
+RUN set -eux; \
+ apt-get update; \
+ apt-get install -y --no-install-recommends curl gnupg; \
+# Download the package from the Lightstreamer site
+ curl -fSL -o Lightstreamer.tar.gz ${LIGHTSTREAMER_URL_DOWNLOAD}; \
+ curl -fSL -o Lightstreamer.tar.gz.asc ${LIGHTSTREAMER_URL_DOWNLOAD}.asc; \
+# Import Lightstreamer's public key and verify the signature of the downloaded package
+ GNUPGHOME="$(mktemp -d)"; \
+ export GNUPGHOME; \
+ gpg --batch --keyserver hkps://keys.openpgp.org --recv-keys "${FINGERPRINT}"; \
+ gpg --batch --verify Lightstreamer.tar.gz.asc Lightstreamer.tar.gz; \
+# Unpack
+ tar -xf Lightstreamer.tar.gz --strip-components=1; \
+# Adjust the logging configuration in order to log only on standard output
+ sed -i -e 's/<appender-ref ref="LSDailyRolling" \/>/<appender-ref ref="LSConsole" \/>/' \
+ -e '/<logger name="LightstreamerLogger.init/,+2s/<appender-ref ref="LSConsole" \/>/<!-- <appender-ref ref="LSConsole" \/> -->/' \
+ -e '/<logger name="LightstreamerLogger.license/,+2s/<appender-ref ref="LSConsole" \/>/<!-- <appender-ref ref="LSConsole" \/> -->/' \
+ -e '/<logger name="LightstreamerProxyAdapters/,+2s/<appender-ref ref="LSConsole" \/>/<!-- <appender-ref ref="LSConsole" \/> -->/' \
+ conf/lightstreamer_log_conf.xml; \
+# Remove no longer needed files
+ rm Lightstreamer.tar.gz Lightstreamer.tar.gz.asc; \
+ gpgconf --kill all; \
+ rm -rf "$GNUPGHOME"; \
+ rm -rf /var/lib/apt/lists/*; \
+# Create a non-root user and group (UID/GID 10000) as the default runtime identity
+ groupadd -g 10000 lightstreamer; \
+ useradd --no-log-init -M -s /usr/sbin/nologin -g lightstreamer -u 10000 lightstreamer; \
+# Group-owned by root (GID 0) and g=u so OpenShift's arbitrary UID (always in
+# root group) can read/write. Harmless on plain Docker (user 10000 still owns
+# the files and gets the same permissions via the user bits).
+ chown -R lightstreamer:root /lightstreamer; \
+ chmod -R g=u /lightstreamer;
+
+USER 10000:10000
+
+EXPOSE 8080
+
+WORKDIR /lightstreamer/bin/unix-like
+
+CMD ["./LS.sh", "run"]
\ No newline at end of file
diff --git a/lightstreamer_7-jdk21/Dockerfile b/lightstreamer_7-jdk21/Dockerfile
deleted file mode 100644
index 7cd1ed7..0000000
diff --git a/lightstreamer_7-jdk8-temurin-base/Dockerfile b/lightstreamer_7-jdk8-temurin-base/Dockerfile
new file mode 100644
index 0000000..ce26588
--- /dev/null
+++ b/lightstreamer_7-jdk8-temurin-base/Dockerfile
@@ -0,0 +1,61 @@
+#
+# NOTE: THIS DOCKERFILE IS GENERATED VIA "update.sh"
+#
+# PLEASE DO NOT EDIT IT DIRECTLY.
+#
+
+# "Base" edition — same runtime as the full image, but with all content that
+# downstream images are expected to provide themselves removed: factory config
+# XMLs, welcome page, welcome-adapter resources, and PDF documentation.
+# The sed step that rewrites conf/lightstreamer_log_conf.xml is dropped too,
+# since the file it targets is stripped a moment later.
+
+FROM eclipse-temurin:8-jdk
+LABEL org.opencontainers.image.authors="Lightstreamer Server Development Team <support@lightstreamer.com>"
+ENV LIGHTSTREAMER_VERSION=7.4.8
+
+ARG LIGHTSTREAMER_URL_DOWNLOAD=https://lightstreamer.com/distros/ls-server/7.4.8/Lightstreamer-7.4.8.tar.gz
+ARG FINGERPRINT=9B90BFD14309C7DA5EF58D7D4A8C08966F29B4D2
+
+WORKDIR /lightstreamer
+
+RUN set -eux; \
+ apt-get update && apt-get install -y --no-install-recommends curl gnupg; \
+# Download the package from the Lightstreamer site
+ curl -fSL -o Lightstreamer.tar.gz ${LIGHTSTREAMER_URL_DOWNLOAD}; \
+ curl -fSL -o Lightstreamer.tar.gz.asc ${LIGHTSTREAMER_URL_DOWNLOAD}.asc; \
+# Import Lightstreamer's public key and verify the signature of the downloaded package
+ GNUPGHOME="$(mktemp -d)"; \
+ export GNUPGHOME; \
+ gpg --batch --keyserver hkps://keys.openpgp.org --recv-keys "${FINGERPRINT}"; \
+ gpg --batch --verify Lightstreamer.tar.gz.asc Lightstreamer.tar.gz; \
+# Unpack
+ tar -xf Lightstreamer.tar.gz --strip-components=1; \
+# Strip content that downstream images are expected to provide themselves.
+ rm -rf docs pages adapters/welcome_res; \
+ rm -f conf/*.xml; \
+ rm -rf bin/unix-like/install; \
+ rm -rf bin/windows; \
+# Remove no longer needed files
+ rm Lightstreamer.tar.gz Lightstreamer.tar.gz.asc; \
+ gpgconf --kill all; \
+ rm -rf "$GNUPGHOME"; \
+ rm -rf /var/lib/apt/lists/*; \
+# Create a non-root user and group (UID/GID 10000) as the default runtime identity
+ groupadd -g 10000 lightstreamer; \
+ useradd --no-log-init -M -s /usr/sbin/nologin -g lightstreamer -u 10000 lightstreamer; \
+# Group-owned by root (GID 0) and g=u so OpenShift's arbitrary UID (always in
+# root group) can read/write. Downstream images that add content (conf/,
+# adapters/) should apply the same pattern to their own additions.
+ chown -R lightstreamer:root /lightstreamer; \
+ chmod -R g=u /lightstreamer
+
+USER 10000:10000
+
+EXPOSE 8080
+
+WORKDIR /lightstreamer/bin/unix-like
+
+# Downstream images MUST provide their own conf/*.xml (and any adapters they
+# need) before the container can start.
+CMD ["./LS.sh", "run"]
diff --git a/lightstreamer_7-jdk8-temurin/Dockerfile b/lightstreamer_7-jdk8-temurin/Dockerfile
new file mode 100644
index 0000000..ce1798a
--- /dev/null
+++ b/lightstreamer_7-jdk8-temurin/Dockerfile
@@ -0,0 +1,55 @@
+#
+# NOTE: THIS DOCKERFILE IS GENERATED VIA "update.sh"
+#
+# PLEASE DO NOT EDIT IT DIRECTLY.
+#
+
+FROM eclipse-temurin:8-jdk
+LABEL org.opencontainers.image.authors="Lightstreamer Server Development Team <support@lightstreamer.com>"
+ENV LIGHTSTREAMER_VERSION=7.4.8
+
+ARG LIGHTSTREAMER_URL_DOWNLOAD=https://lightstreamer.com/distros/ls-server/7.4.8/Lightstreamer-7.4.8.tar.gz
+ARG FINGERPRINT=9B90BFD14309C7DA5EF58D7D4A8C08966F29B4D2
+
+WORKDIR /lightstreamer
+
+RUN set -eux; \
+ apt-get update; \
+ apt-get install -y --no-install-recommends curl gnupg; \
+# Download the package from the Lightstreamer site
+ curl -fSL -o Lightstreamer.tar.gz ${LIGHTSTREAMER_URL_DOWNLOAD}; \
+ curl -fSL -o Lightstreamer.tar.gz.asc ${LIGHTSTREAMER_URL_DOWNLOAD}.asc; \
+# Import Lightstreamer's public key and verify the signature of the downloaded package
+ GNUPGHOME="$(mktemp -d)"; \
+ export GNUPGHOME; \
+ gpg --batch --keyserver hkps://keys.openpgp.org --recv-keys "${FINGERPRINT}"; \
+ gpg --batch --verify Lightstreamer.tar.gz.asc Lightstreamer.tar.gz; \
+# Unpack
+ tar -xf Lightstreamer.tar.gz --strip-components=1; \
+# Adjust the logging configuration in order to log only on standard output
+ sed -i -e 's/<appender-ref ref="LSDailyRolling" \/>/<appender-ref ref="LSConsole" \/>/' \
+ -e '/<logger name="LightstreamerLogger.init/,+2s/<appender-ref ref="LSConsole" \/>/<!-- <appender-ref ref="LSConsole" \/> -->/' \
+ -e '/<logger name="LightstreamerLogger.license/,+2s/<appender-ref ref="LSConsole" \/>/<!-- <appender-ref ref="LSConsole" \/> -->/' \
+ -e '/<logger name="LightstreamerProxyAdapters/,+2s/<appender-ref ref="LSConsole" \/>/<!-- <appender-ref ref="LSConsole" \/> -->/' \
+ conf/lightstreamer_log_conf.xml; \
+# Remove no longer needed files
+ rm Lightstreamer.tar.gz Lightstreamer.tar.gz.asc; \
+ gpgconf --kill all; \
+ rm -rf "$GNUPGHOME"; \
+ rm -rf /var/lib/apt/lists/*; \
+# Create a non-root user and group (UID/GID 10000) as the default runtime identity
+ groupadd -g 10000 lightstreamer; \
+ useradd --no-log-init -M -s /usr/sbin/nologin -g lightstreamer -u 10000 lightstreamer; \
+# Group-owned by root (GID 0) and g=u so OpenShift's arbitrary UID (always in
+# root group) can read/write. Harmless on plain Docker (user 10000 still owns
+# the files and gets the same permissions via the user bits).
+ chown -R lightstreamer:root /lightstreamer; \
+ chmod -R g=u /lightstreamer;
+
+USER 10000:10000
+
+EXPOSE 8080
+
+WORKDIR /lightstreamer/bin/unix-like
+
+CMD ["./LS.sh", "run"]
\ No newline at end of file
diff --git a/lightstreamer_7-jdk8/Dockerfile b/lightstreamer_7-jdk8/Dockerfile
deleted file mode 100644
index 7cc0d6f..0000000
diff --git a/lightstreamer_7.0-base/Dockerfile b/lightstreamer_7.0-base/Dockerfile
new file mode 100644
index 0000000..513d7dc
--- /dev/null
+++ b/lightstreamer_7.0-base/Dockerfile
@@ -0,0 +1,63 @@
+#
+# NOTE: THIS DOCKERFILE IS GENERATED VIA "update.sh"
+#
+# PLEASE DO NOT EDIT IT DIRECTLY.
+#
+
+# "Base" edition — same runtime as the full image, but with all content that
+# downstream images are expected to provide themselves removed: factory config
+# XMLs, welcome page, welcome-adapter resources, and PDF documentation.
+# The sed step that rewrites conf/lightstreamer_log_conf.xml is dropped too,
+# since the file it targets is stripped a moment later.
+
+FROM eclipse-temurin:11-jdk
+LABEL org.opencontainers.image.authors="Lightstreamer Server Development Team <support@lightstreamer.com>"
+ENV LIGHTSTREAMER_VERSION=7.0.3
+
+ARG LIGHTSTREAMER_URL_DOWNLOAD=https://lightstreamer.com/distros/ls-server/7.0.3/Lightstreamer-7.0.3.tar.gz
+ARG FINGERPRINT=9B90BFD14309C7DA5EF58D7D4A8C08966F29B4D2
+
+WORKDIR /lightstreamer
+
+RUN set -eux; \
+ apt-get update && apt-get install -y --no-install-recommends curl gnupg; \
+# Download the package from the Lightstreamer site
+ curl -fSL -o Lightstreamer.tar.gz ${LIGHTSTREAMER_URL_DOWNLOAD}; \
+ curl -fSL -o Lightstreamer.tar.gz.asc ${LIGHTSTREAMER_URL_DOWNLOAD}.asc; \
+# Import Lightstreamer's public key and verify the signature of the downloaded package
+ GNUPGHOME="$(mktemp -d)"; \
+ export GNUPGHOME; \
+ gpg --batch --keyserver hkps://keys.openpgp.org --recv-keys "${FINGERPRINT}"; \
+ gpg --batch --verify Lightstreamer.tar.gz.asc Lightstreamer.tar.gz; \
+# Unpack
+ tar -xf Lightstreamer.tar.gz --strip-components=1; \
+# Replace the fictitious jdk path with the JAVA_HOME environment variable in the launch script file
+ sed -i -- 's/\/usr\/jdk1.8.0/$JAVA_HOME/' bin/unix-like/LS.sh; \
+# Strip content that downstream images are expected to provide themselves.
+ rm -rf DOCS-SDKs pages adapters/welcome_res; \
+ rm -f conf/*.xml; \
+ rm -rf bin/unix-like/install; \
+ rm -rf bin/windows; \
+# Remove no longer needed files
+ rm Lightstreamer.tar.gz Lightstreamer.tar.gz.asc; \
+ gpgconf --kill all; \
+ rm -rf "$GNUPGHOME"; \
+ rm -rf /var/lib/apt/lists/*; \
+# Create a non-root user and group (UID/GID 10000) as the default runtime identity
+ groupadd -g 10000 lightstreamer; \
+ useradd --no-log-init -M -s /usr/sbin/nologin -g lightstreamer -u 10000 lightstreamer; \
+# Group-owned by root (GID 0) and g=u so OpenShift's arbitrary UID (always in
+# root group) can read/write. Downstream images that add content (conf/,
+# adapters/) should apply the same pattern to their own additions.
+ chown -R lightstreamer:root /lightstreamer; \
+ chmod -R g=u /lightstreamer
+
+USER 10000:10000
+
+EXPOSE 8080
+
+WORKDIR /lightstreamer/bin/unix-like
+
+# Downstream images MUST provide their own conf/*.xml (and any adapters they
+# need) before the container can start.
+CMD ["./LS.sh", "run"]
diff --git a/lightstreamer_7.0-jdk8-temurin-base/Dockerfile b/lightstreamer_7.0-jdk8-temurin-base/Dockerfile
new file mode 100644
index 0000000..7be1436
--- /dev/null
+++ b/lightstreamer_7.0-jdk8-temurin-base/Dockerfile
@@ -0,0 +1,63 @@
+#
+# NOTE: THIS DOCKERFILE IS GENERATED VIA "update.sh"
+#
+# PLEASE DO NOT EDIT IT DIRECTLY.
+#
+
+# "Base" edition — same runtime as the full image, but with all content that
+# downstream images are expected to provide themselves removed: factory config
+# XMLs, welcome page, welcome-adapter resources, and PDF documentation.
+# The sed step that rewrites conf/lightstreamer_log_conf.xml is dropped too,
+# since the file it targets is stripped a moment later.
+
+FROM eclipse-temurin:8-jdk
+LABEL org.opencontainers.image.authors="Lightstreamer Server Development Team <support@lightstreamer.com>"
+ENV LIGHTSTREAMER_VERSION=7.0.3
+
+ARG LIGHTSTREAMER_URL_DOWNLOAD=https://lightstreamer.com/distros/ls-server/7.0.3/Lightstreamer-7.0.3.tar.gz
+ARG FINGERPRINT=9B90BFD14309C7DA5EF58D7D4A8C08966F29B4D2
+
+WORKDIR /lightstreamer
+
+RUN set -eux; \
+ apt-get update && apt-get install -y --no-install-recommends curl gnupg; \
+# Download the package from the Lightstreamer site
+ curl -fSL -o Lightstreamer.tar.gz ${LIGHTSTREAMER_URL_DOWNLOAD}; \
+ curl -fSL -o Lightstreamer.tar.gz.asc ${LIGHTSTREAMER_URL_DOWNLOAD}.asc; \
+# Import Lightstreamer's public key and verify the signature of the downloaded package
+ GNUPGHOME="$(mktemp -d)"; \
+ export GNUPGHOME; \
+ gpg --batch --keyserver hkps://keys.openpgp.org --recv-keys "${FINGERPRINT}"; \
+ gpg --batch --verify Lightstreamer.tar.gz.asc Lightstreamer.tar.gz; \
+# Unpack
+ tar -xf Lightstreamer.tar.gz --strip-components=1; \
+# Replace the fictitious jdk path with the JAVA_HOME environment variable in the launch script file
+ sed -i -- 's/\/usr\/jdk1.8.0/$JAVA_HOME/' bin/unix-like/LS.sh; \
+# Strip content that downstream images are expected to provide themselves.
+ rm -rf DOCS-SDKs pages adapters/welcome_res; \
+ rm -f conf/*.xml; \
+ rm -rf bin/unix-like/install; \
+ rm -rf bin/windows; \
+# Remove no longer needed files
+ rm Lightstreamer.tar.gz Lightstreamer.tar.gz.asc; \
+ gpgconf --kill all; \
+ rm -rf "$GNUPGHOME"; \
+ rm -rf /var/lib/apt/lists/*; \
+# Create a non-root user and group (UID/GID 10000) as the default runtime identity
+ groupadd -g 10000 lightstreamer; \
+ useradd --no-log-init -M -s /usr/sbin/nologin -g lightstreamer -u 10000 lightstreamer; \
+# Group-owned by root (GID 0) and g=u so OpenShift's arbitrary UID (always in
+# root group) can read/write. Downstream images that add content (conf/,
+# adapters/) should apply the same pattern to their own additions.
+ chown -R lightstreamer:root /lightstreamer; \
+ chmod -R g=u /lightstreamer
+
+USER 10000:10000
+
+EXPOSE 8080
+
+WORKDIR /lightstreamer/bin/unix-like
+
+# Downstream images MUST provide their own conf/*.xml (and any adapters they
+# need) before the container can start.
+CMD ["./LS.sh", "run"]
diff --git a/lightstreamer_7.0-jdk8-temurin/Dockerfile b/lightstreamer_7.0-jdk8-temurin/Dockerfile
new file mode 100644
index 0000000..9ed0880
--- /dev/null
+++ b/lightstreamer_7.0-jdk8-temurin/Dockerfile
@@ -0,0 +1,57 @@
+#
+# NOTE: THIS DOCKERFILE IS GENERATED VIA "update.sh"
+#
+# PLEASE DO NOT EDIT IT DIRECTLY.
+#
+
+FROM eclipse-temurin:8-jdk
+LABEL org.opencontainers.image.authors="Lightstreamer Server Development Team <support@lightstreamer.com>"
+ENV LIGHTSTREAMER_VERSION=7.0.3
+
+ARG LIGHTSTREAMER_URL_DOWNLOAD=https://lightstreamer.com/distros/ls-server/7.0.3/Lightstreamer-7.0.3.tar.gz
+ARG FINGERPRINT=9B90BFD14309C7DA5EF58D7D4A8C08966F29B4D2
+
+WORKDIR /lightstreamer
+
+RUN set -eux; \
+ apt-get update; \
+ apt-get install -y --no-install-recommends curl gnupg; \
+# Download the package from the Lightstreamer site
+ curl -fSL -o Lightstreamer.tar.gz ${LIGHTSTREAMER_URL_DOWNLOAD}; \
+ curl -fSL -o Lightstreamer.tar.gz.asc ${LIGHTSTREAMER_URL_DOWNLOAD}.asc; \
+# Import Lightstreamer's public key and verify the signature of the downloaded package
+ GNUPGHOME="$(mktemp -d)"; \
+ export GNUPGHOME; \
+ gpg --batch --keyserver hkps://keys.openpgp.org --recv-keys "${FINGERPRINT}"; \
+ gpg --batch --verify Lightstreamer.tar.gz.asc Lightstreamer.tar.gz; \
+# Unpack
+ tar -xf Lightstreamer.tar.gz --strip-components=1; \
+# Replace the fictitious jdk path with the JAVA_HOME environment variable in the launch script file
+ sed -i -- 's/\/usr\/jdk1.8.0/$JAVA_HOME/' bin/unix-like/LS.sh; \
+# Adjust the logging configuration in order to log only on standard output
+ sed -i -e 's/<appender-ref ref="LSDailyRolling" \/>/<appender-ref ref="LSConsole" \/>/' \
+ -e '/<logger name="LightstreamerLogger.init/,+2s/<appender-ref ref="LSConsole" \/>/<!-- <appender-ref ref="LSConsole" \/> -->/' \
+ -e '/<logger name="LightstreamerLogger.license/,+2s/<appender-ref ref="LSConsole" \/>/<!-- <appender-ref ref="LSConsole" \/> -->/' \
+ -e '/<logger name="LightstreamerProxyAdapters/,+2s/<appender-ref ref="LSConsole" \/>/<!-- <appender-ref ref="LSConsole" \/> -->/' \
+ conf/lightstreamer_log_conf.xml; \
+# Remove no longer needed files
+ rm Lightstreamer.tar.gz Lightstreamer.tar.gz.asc; \
+ gpgconf --kill all; \
+ rm -rf "$GNUPGHOME"; \
+ rm -rf /var/lib/apt/lists/*; \
+# Create a non-root user and group (UID/GID 10000) as the default runtime identity
+ groupadd -g 10000 lightstreamer; \
+ useradd --no-log-init -M -s /usr/sbin/nologin -g lightstreamer -u 10000 lightstreamer; \
+# Group-owned by root (GID 0) and g=u so OpenShift's arbitrary UID (always in
+# root group) can read/write. Harmless on plain Docker (user 10000 still owns
+# the files and gets the same permissions via the user bits).
+ chown -R lightstreamer:root /lightstreamer; \
+ chmod -R g=u /lightstreamer;
+
+USER 10000:10000
+
+EXPOSE 8080
+
+WORKDIR /lightstreamer/bin/unix-like
+
+CMD ["./LS.sh", "run"]
\ No newline at end of file
diff --git a/lightstreamer_7.0-jdk8/Dockerfile b/lightstreamer_7.0-jdk8/Dockerfile
deleted file mode 100644
index d74e522..0000000
diff --git a/lightstreamer_7.0/Dockerfile b/lightstreamer_7.0/Dockerfile
index 7047310..fea7b62 100644
--- a/lightstreamer_7.0/Dockerfile
+++ b/lightstreamer_7.0/Dockerfile
@@ -1,51 +1,57 @@
-# Set the base image
-FROM eclipse-temurin:11-jdk
-
-LABEL maintainer="Lightstreamer Server Development Team <support@lightstreamer.com>"
-
-# Add gpg, which is missing in the eclipse-temurin image
-RUN apt-get -y update \
- && apt-get -y install gnupg \
- && rm -rf /var/lib/apt/lists/*
-
-# Import Lighstreamer's public key
-RUN gpg --batch --keyserver hkp://keyserver.ubuntu.com --recv-keys 9B90BFD14309C7DA5EF58D7D4A8C08966F29B4D2
+#
+# NOTE: THIS DOCKERFILE IS GENERATED VIA "update.sh"
+#
+# PLEASE DO NOT EDIT IT DIRECTLY.
+#
-# Set environment variables to identify the right Lightstreamer version and edition
-ENV LIGHTSTREAMER_URL_DOWNLOAD https://lightstreamer.com/distros/ls-server/7.0.3/Lightstreamer_7_0_3_20190315.tar.gz
-
-# Download the package from the Lightstreamer site, verify the signature, and unpack
-RUN set -ex; \
- mkdir /lightstreamer && cd /lightstreamer \
- && curl -fSL -o Lightstreamer.tar.gz ${LIGHTSTREAMER_URL_DOWNLOAD} \
- && curl -fSL -o Lightstreamer.tar.gz.asc ${LIGHTSTREAMER_URL_DOWNLOAD}.asc \
- && gpg --batch --verify Lightstreamer.tar.gz.asc Lightstreamer.tar.gz \
- && tar -xvf Lightstreamer.tar.gz --strip-components=1 \
+FROM eclipse-temurin:11-jdk
+LABEL org.opencontainers.image.authors="Lightstreamer Server Development Team <support@lightstreamer.com>"
+ENV LIGHTSTREAMER_VERSION=7.0.3
+
+ARG LIGHTSTREAMER_URL_DOWNLOAD=https://lightstreamer.com/distros/ls-server/7.0.3/Lightstreamer-7.0.3.tar.gz
+ARG FINGERPRINT=9B90BFD14309C7DA5EF58D7D4A8C08966F29B4D2
+
+WORKDIR /lightstreamer
+
+RUN set -eux; \
+ apt-get update; \
+ apt-get install -y --no-install-recommends curl gnupg; \
+# Download the package from the Lightstreamer site
+ curl -fSL -o Lightstreamer.tar.gz ${LIGHTSTREAMER_URL_DOWNLOAD}; \
+ curl -fSL -o Lightstreamer.tar.gz.asc ${LIGHTSTREAMER_URL_DOWNLOAD}.asc; \
+# Import Lightstreamer's public key and verify the signature of the downloaded package
+ GNUPGHOME="$(mktemp -d)"; \
+ export GNUPGHOME; \
+ gpg --batch --keyserver hkps://keys.openpgp.org --recv-keys "${FINGERPRINT}"; \
+ gpg --batch --verify Lightstreamer.tar.gz.asc Lightstreamer.tar.gz; \
+# Unpack
+ tar -xf Lightstreamer.tar.gz --strip-components=1; \
# Replace the fictitious jdk path with the JAVA_HOME environment variable in the launch script file
- && sed -i -- 's/\/usr\/jdk1.8.0/$JAVA_HOME/' bin/unix-like/LS.sh \
+ sed -i -- 's/\/usr\/jdk1.8.0/$JAVA_HOME/' bin/unix-like/LS.sh; \
# Adjust the logging configuration in order to log only on standard output
- && sed -i -e 's/<appender-ref ref="LSDailyRolling" \/>/<appender-ref ref="LSConsole" \/>/' \
+ sed -i -e 's/<appender-ref ref="LSDailyRolling" \/>/<appender-ref ref="LSConsole" \/>/' \
-e '/<logger name="LightstreamerLogger.init/,+2s/<appender-ref ref="LSConsole" \/>/<!-- <appender-ref ref="LSConsole" \/> -->/' \
-e '/<logger name="LightstreamerLogger.license/,+2s/<appender-ref ref="LSConsole" \/>/<!-- <appender-ref ref="LSConsole" \/> -->/' \
-e '/<logger name="LightstreamerProxyAdapters/,+2s/<appender-ref ref="LSConsole" \/>/<!-- <appender-ref ref="LSConsole" \/> -->/' \
- conf/lightstreamer_log_conf.xml \
-# Remove unneeded folder
- && rm -fr /lightstreamer/DOCS-SDKs \
-# Add new user and group
- && groupadd -r -g 10000 lightstreamer \
- && useradd --no-log-init -r -g lightstreamer -u 10000 lightstreamer \
-# Change ownership of the lightstreamer folder
- && chown -R lightstreamer:lightstreamer ../lightstreamer \
-# Finally, remove no longer needed files
- && rm Lightstreamer.tar.gz Lightstreamer.tar.gz.asc
-
-USER lightstreamer
-
-# Export TCP port 8080
+ conf/lightstreamer_log_conf.xml; \
+# Remove no longer needed files
+ rm Lightstreamer.tar.gz Lightstreamer.tar.gz.asc; \
+ gpgconf --kill all; \
+ rm -rf "$GNUPGHOME"; \
+ rm -rf /var/lib/apt/lists/*; \
+# Create a non-root user and group (UID/GID 10000) as the default runtime identity
+ groupadd -g 10000 lightstreamer; \
+ useradd --no-log-init -M -s /usr/sbin/nologin -g lightstreamer -u 10000 lightstreamer; \
+# Group-owned by root (GID 0) and g=u so OpenShift's arbitrary UID (always in
+# root group) can read/write. Harmless on plain Docker (user 10000 still owns
+# the files and gets the same permissions via the user bits).
+ chown -R lightstreamer:root /lightstreamer; \
+ chmod -R g=u /lightstreamer;
+
+USER 10000:10000
+
EXPOSE 8080
-# Set the final working dir
WORKDIR /lightstreamer/bin/unix-like
-# Start the server
CMD ["./LS.sh", "run"]
\ No newline at end of file
diff --git a/lightstreamer_7.1-base/Dockerfile b/lightstreamer_7.1-base/Dockerfile
new file mode 100644
index 0000000..d8c4532
--- /dev/null
+++ b/lightstreamer_7.1-base/Dockerfile
@@ -0,0 +1,64 @@
+#
+# NOTE: THIS DOCKERFILE IS GENERATED VIA "update.sh"
+#
+# PLEASE DO NOT EDIT IT DIRECTLY.
+#
+
+# "Base" edition — same runtime as the full image, but with all content that
+# downstream images are expected to provide themselves removed: factory config
+# XMLs, welcome page, welcome-adapter resources, and PDF documentation.
+# The sed step that rewrites conf/lightstreamer_log_conf.xml is dropped too,
+# since the file it targets is stripped a moment later.
+
+FROM eclipse-temurin:11-jdk
+LABEL org.opencontainers.image.authors="Lightstreamer Server Development Team <support@lightstreamer.com>"
+ENV LIGHTSTREAMER_VERSION=7.1.3
+
+ARG LIGHTSTREAMER_URL_DOWNLOAD=https://lightstreamer.com/distros/ls-server/7.1.3/Lightstreamer-7.1.3.tar.gz
+ARG FINGERPRINT=9B90BFD14309C7DA5EF58D7D4A8C08966F29B4D2
+
+WORKDIR /lightstreamer
+
+RUN set -eux; \
+ apt-get update && apt-get install -y --no-install-recommends curl gnupg; \
+# Download the package from the Lightstreamer site
+ curl -fSL -o Lightstreamer.tar.gz ${LIGHTSTREAMER_URL_DOWNLOAD}; \
+ curl -fSL -o Lightstreamer.tar.gz.asc ${LIGHTSTREAMER_URL_DOWNLOAD}.asc; \
+# Import Lightstreamer's public key and verify the signature of the downloaded package
+ GNUPGHOME="$(mktemp -d)"; \
+ export GNUPGHOME; \
+ gpg --batch --keyserver hkps://keys.openpgp.org --recv-keys "${FINGERPRINT}"; \
+ gpg --batch --verify Lightstreamer.tar.gz.asc Lightstreamer.tar.gz; \
+# Unpack
+ tar -xf Lightstreamer.tar.gz --strip-components=1; \
+# Replace the fictitious jdk path with the JAVA_HOME environment variable in the launch script file
+ sed -i -- 's/\/usr\/jdk1.8.0/$JAVA_HOME/' bin/unix-like/LS.sh; \
+# Strip content that downstream images are expected to provide themselves.
+ rm -rf docs pages adapters/welcome_res; \
+ rm -f conf/*.xml; \
+ rm -rf bin/unix-like/install; \
+ rm -rf bin/windows; \
+ rm -rf adapter_remoting_infrastructure; \
+# Remove no longer needed files
+ rm Lightstreamer.tar.gz Lightstreamer.tar.gz.asc; \
+ gpgconf --kill all; \
+ rm -rf "$GNUPGHOME"; \
+ rm -rf /var/lib/apt/lists/*; \
+# Create a non-root user and group (UID/GID 10000) as the default runtime identity
+ groupadd -g 10000 lightstreamer; \
+ useradd --no-log-init -M -s /usr/sbin/nologin -g lightstreamer -u 10000 lightstreamer; \
+# Group-owned by root (GID 0) and g=u so OpenShift's arbitrary UID (always in
+# root group) can read/write. Downstream images that add content (conf/,
+# adapters/) should apply the same pattern to their own additions.
+ chown -R lightstreamer:root /lightstreamer; \
+ chmod -R g=u /lightstreamer
+
+USER 10000:10000
+
+EXPOSE 8080
+
+WORKDIR /lightstreamer/bin/unix-like
+
+# Downstream images MUST provide their own conf/*.xml (and any adapters they
+# need) before the container can start.
+CMD ["./LS.sh", "run"]
diff --git a/lightstreamer_7.1-jdk8-temurin-base/Dockerfile b/lightstreamer_7.1-jdk8-temurin-base/Dockerfile
new file mode 100644
index 0000000..027b350
--- /dev/null
+++ b/lightstreamer_7.1-jdk8-temurin-base/Dockerfile
@@ -0,0 +1,64 @@
+#
+# NOTE: THIS DOCKERFILE IS GENERATED VIA "update.sh"
+#
+# PLEASE DO NOT EDIT IT DIRECTLY.
+#
+
+# "Base" edition — same runtime as the full image, but with all content that
+# downstream images are expected to provide themselves removed: factory config
+# XMLs, welcome page, welcome-adapter resources, and PDF documentation.
+# The sed step that rewrites conf/lightstreamer_log_conf.xml is dropped too,
+# since the file it targets is stripped a moment later.
+
+FROM eclipse-temurin:8-jdk
+LABEL org.opencontainers.image.authors="Lightstreamer Server Development Team <support@lightstreamer.com>"
+ENV LIGHTSTREAMER_VERSION=7.1.3
+
+ARG LIGHTSTREAMER_URL_DOWNLOAD=https://lightstreamer.com/distros/ls-server/7.1.3/Lightstreamer-7.1.3.tar.gz
+ARG FINGERPRINT=9B90BFD14309C7DA5EF58D7D4A8C08966F29B4D2
+
+WORKDIR /lightstreamer
+
+RUN set -eux; \
+ apt-get update && apt-get install -y --no-install-recommends curl gnupg; \
+# Download the package from the Lightstreamer site
+ curl -fSL -o Lightstreamer.tar.gz ${LIGHTSTREAMER_URL_DOWNLOAD}; \
+ curl -fSL -o Lightstreamer.tar.gz.asc ${LIGHTSTREAMER_URL_DOWNLOAD}.asc; \
+# Import Lightstreamer's public key and verify the signature of the downloaded package
+ GNUPGHOME="$(mktemp -d)"; \
+ export GNUPGHOME; \
+ gpg --batch --keyserver hkps://keys.openpgp.org --recv-keys "${FINGERPRINT}"; \
+ gpg --batch --verify Lightstreamer.tar.gz.asc Lightstreamer.tar.gz; \
+# Unpack
+ tar -xf Lightstreamer.tar.gz --strip-components=1; \
+# Replace the fictitious jdk path with the JAVA_HOME environment variable in the launch script file
+ sed -i -- 's/\/usr\/jdk1.8.0/$JAVA_HOME/' bin/unix-like/LS.sh; \
+# Strip content that downstream images are expected to provide themselves.
+ rm -rf docs pages adapters/welcome_res; \
+ rm -f conf/*.xml; \
+ rm -rf bin/unix-like/install; \
+ rm -rf bin/windows; \
+ rm -rf adapter_remoting_infrastructure; \
+# Remove no longer needed files
+ rm Lightstreamer.tar.gz Lightstreamer.tar.gz.asc; \
+ gpgconf --kill all; \
+ rm -rf "$GNUPGHOME"; \
+ rm -rf /var/lib/apt/lists/*; \
+# Create a non-root user and group (UID/GID 10000) as the default runtime identity
+ groupadd -g 10000 lightstreamer; \
+ useradd --no-log-init -M -s /usr/sbin/nologin -g lightstreamer -u 10000 lightstreamer; \
+# Group-owned by root (GID 0) and g=u so OpenShift's arbitrary UID (always in
+# root group) can read/write. Downstream images that add content (conf/,
+# adapters/) should apply the same pattern to their own additions.
+ chown -R lightstreamer:root /lightstreamer; \
+ chmod -R g=u /lightstreamer
+
+USER 10000:10000
+
+EXPOSE 8080
+
+WORKDIR /lightstreamer/bin/unix-like
+
+# Downstream images MUST provide their own conf/*.xml (and any adapters they
+# need) before the container can start.
+CMD ["./LS.sh", "run"]
diff --git a/lightstreamer_7.1-jdk8-temurin/Dockerfile b/lightstreamer_7.1-jdk8-temurin/Dockerfile
new file mode 100644
index 0000000..160e77c
--- /dev/null
+++ b/lightstreamer_7.1-jdk8-temurin/Dockerfile
@@ -0,0 +1,57 @@
+#
+# NOTE: THIS DOCKERFILE IS GENERATED VIA "update.sh"
+#
+# PLEASE DO NOT EDIT IT DIRECTLY.
+#
+
+FROM eclipse-temurin:8-jdk
+LABEL org.opencontainers.image.authors="Lightstreamer Server Development Team <support@lightstreamer.com>"
+ENV LIGHTSTREAMER_VERSION=7.1.3
+
+ARG LIGHTSTREAMER_URL_DOWNLOAD=https://lightstreamer.com/distros/ls-server/7.1.3/Lightstreamer-7.1.3.tar.gz
+ARG FINGERPRINT=9B90BFD14309C7DA5EF58D7D4A8C08966F29B4D2
+
+WORKDIR /lightstreamer
+
+RUN set -eux; \
+ apt-get update; \
+ apt-get install -y --no-install-recommends curl gnupg; \
+# Download the package from the Lightstreamer site
+ curl -fSL -o Lightstreamer.tar.gz ${LIGHTSTREAMER_URL_DOWNLOAD}; \
+ curl -fSL -o Lightstreamer.tar.gz.asc ${LIGHTSTREAMER_URL_DOWNLOAD}.asc; \
+# Import Lightstreamer's public key and verify the signature of the downloaded package
+ GNUPGHOME="$(mktemp -d)"; \
+ export GNUPGHOME; \
+ gpg --batch --keyserver hkps://keys.openpgp.org --recv-keys "${FINGERPRINT}"; \
+ gpg --batch --verify Lightstreamer.tar.gz.asc Lightstreamer.tar.gz; \
+# Unpack
+ tar -xf Lightstreamer.tar.gz --strip-components=1; \
+# Replace the fictitious jdk path with the JAVA_HOME environment variable in the launch script file
+ sed -i -- 's/\/usr\/jdk1.8.0/$JAVA_HOME/' bin/unix-like/LS.sh; \
+# Adjust the logging configuration in order to log only on standard output
+ sed -i -e 's/<appender-ref ref="LSDailyRolling" \/>/<appender-ref ref="LSConsole" \/>/' \
+ -e '/<logger name="LightstreamerLogger.init/,+2s/<appender-ref ref="LSConsole" \/>/<!-- <appender-ref ref="LSConsole" \/> -->/' \
+ -e '/<logger name="LightstreamerLogger.license/,+2s/<appender-ref ref="LSConsole" \/>/<!-- <appender-ref ref="LSConsole" \/> -->/' \
+ -e '/<logger name="LightstreamerProxyAdapters/,+2s/<appender-ref ref="LSConsole" \/>/<!-- <appender-ref ref="LSConsole" \/> -->/' \
+ conf/lightstreamer_log_conf.xml; \
+# Remove no longer needed files
+ rm Lightstreamer.tar.gz Lightstreamer.tar.gz.asc; \
+ gpgconf --kill all; \
+ rm -rf "$GNUPGHOME"; \
+ rm -rf /var/lib/apt/lists/*; \
+# Create a non-root user and group (UID/GID 10000) as the default runtime identity
+ groupadd -g 10000 lightstreamer; \
+ useradd --no-log-init -M -s /usr/sbin/nologin -g lightstreamer -u 10000 lightstreamer; \
+# Group-owned by root (GID 0) and g=u so OpenShift's arbitrary UID (always in
+# root group) can read/write. Harmless on plain Docker (user 10000 still owns
+# the files and gets the same permissions via the user bits).
+ chown -R lightstreamer:root /lightstreamer; \
+ chmod -R g=u /lightstreamer;
+
+USER 10000:10000
+
+EXPOSE 8080
+
+WORKDIR /lightstreamer/bin/unix-like
+
+CMD ["./LS.sh", "run"]
\ No newline at end of file
diff --git a/lightstreamer_7.1-jdk8/Dockerfile b/lightstreamer_7.1-jdk8/Dockerfile
deleted file mode 100644
index e81acf4..0000000
diff --git a/lightstreamer_7.1/Dockerfile b/lightstreamer_7.1/Dockerfile
index e86fa7e..f5394dc 100644
--- a/lightstreamer_7.1/Dockerfile
+++ b/lightstreamer_7.1/Dockerfile
@@ -1,49 +1,57 @@
-# Set the base image
-FROM eclipse-temurin:11-jdk
-
-LABEL maintainer="Lightstreamer Server Development Team <support@lightstreamer.com>"
-
-# Add gpg, which is missing in the eclipse-temurin image
-RUN apt-get -y update \
- && apt-get -y install gnupg \
- && rm -rf /var/lib/apt/lists/*
-
-# Import Lighstreamer's public key
-RUN gpg --batch --keyserver hkp://keyserver.ubuntu.com --recv-keys 9B90BFD14309C7DA5EF58D7D4A8C08966F29B4D2
+#
+# NOTE: THIS DOCKERFILE IS GENERATED VIA "update.sh"
+#
+# PLEASE DO NOT EDIT IT DIRECTLY.
+#
-# Set environment variables to identify the right Lightstreamer version and edition
-ENV LIGHTSTREAMER_URL_DOWNLOAD https://lightstreamer.com/distros/ls-server/7.1.3/Lightstreamer_7_1_3.tar.gz
-
-# Download the package from the Lightstreamer site, verify the signature, and unpack
-RUN set -ex; \
- mkdir /lightstreamer && cd /lightstreamer \
- && curl -fSL -o Lightstreamer.tar.gz ${LIGHTSTREAMER_URL_DOWNLOAD} \
- && curl -fSL -o Lightstreamer.tar.gz.asc ${LIGHTSTREAMER_URL_DOWNLOAD}.asc \
- && gpg --batch --verify Lightstreamer.tar.gz.asc Lightstreamer.tar.gz \
- && tar -xvf Lightstreamer.tar.gz --strip-components=1 \
+FROM eclipse-temurin:11-jdk
+LABEL org.opencontainers.image.authors="Lightstreamer Server Development Team <support@lightstreamer.com>"
+ENV LIGHTSTREAMER_VERSION=7.1.3
+
+ARG LIGHTSTREAMER_URL_DOWNLOAD=https://lightstreamer.com/distros/ls-server/7.1.3/Lightstreamer-7.1.3.tar.gz
+ARG FINGERPRINT=9B90BFD14309C7DA5EF58D7D4A8C08966F29B4D2
+
+WORKDIR /lightstreamer
+
+RUN set -eux; \
+ apt-get update; \
+ apt-get install -y --no-install-recommends curl gnupg; \
+# Download the package from the Lightstreamer site
+ curl -fSL -o Lightstreamer.tar.gz ${LIGHTSTREAMER_URL_DOWNLOAD}; \
+ curl -fSL -o Lightstreamer.tar.gz.asc ${LIGHTSTREAMER_URL_DOWNLOAD}.asc; \
+# Import Lightstreamer's public key and verify the signature of the downloaded package
+ GNUPGHOME="$(mktemp -d)"; \
+ export GNUPGHOME; \
+ gpg --batch --keyserver hkps://keys.openpgp.org --recv-keys "${FINGERPRINT}"; \
+ gpg --batch --verify Lightstreamer.tar.gz.asc Lightstreamer.tar.gz; \
+# Unpack
+ tar -xf Lightstreamer.tar.gz --strip-components=1; \
# Replace the fictitious jdk path with the JAVA_HOME environment variable in the launch script file
- && sed -i -- 's/\/usr\/jdk1.8.0/$JAVA_HOME/' bin/unix-like/LS.sh \
+ sed -i -- 's/\/usr\/jdk1.8.0/$JAVA_HOME/' bin/unix-like/LS.sh; \
# Adjust the logging configuration in order to log only on standard output
- && sed -i -e 's/<appender-ref ref="LSDailyRolling" \/>/<appender-ref ref="LSConsole" \/>/' \
+ sed -i -e 's/<appender-ref ref="LSDailyRolling" \/>/<appender-ref ref="LSConsole" \/>/' \
-e '/<logger name="LightstreamerLogger.init/,+2s/<appender-ref ref="LSConsole" \/>/<!-- <appender-ref ref="LSConsole" \/> -->/' \
-e '/<logger name="LightstreamerLogger.license/,+2s/<appender-ref ref="LSConsole" \/>/<!-- <appender-ref ref="LSConsole" \/> -->/' \
-e '/<logger name="LightstreamerProxyAdapters/,+2s/<appender-ref ref="LSConsole" \/>/<!-- <appender-ref ref="LSConsole" \/> -->/' \
- conf/lightstreamer_log_conf.xml \
-# Add new user and group
- && groupadd -r -g 10000 lightstreamer \
- && useradd --no-log-init -r -g lightstreamer -u 10000 lightstreamer \
-# Change ownership of the lightstreamer folder
- && chown -R lightstreamer:lightstreamer ../lightstreamer \
-# Finally, remove no longer needed files
- && rm Lightstreamer.tar.gz Lightstreamer.tar.gz.asc
-
-USER lightstreamer
-
-# Export TCP port 8080
+ conf/lightstreamer_log_conf.xml; \
+# Remove no longer needed files
+ rm Lightstreamer.tar.gz Lightstreamer.tar.gz.asc; \
+ gpgconf --kill all; \
+ rm -rf "$GNUPGHOME"; \
+ rm -rf /var/lib/apt/lists/*; \
+# Create a non-root user and group (UID/GID 10000) as the default runtime identity
+ groupadd -g 10000 lightstreamer; \
+ useradd --no-log-init -M -s /usr/sbin/nologin -g lightstreamer -u 10000 lightstreamer; \
+# Group-owned by root (GID 0) and g=u so OpenShift's arbitrary UID (always in
+# root group) can read/write. Harmless on plain Docker (user 10000 still owns
+# the files and gets the same permissions via the user bits).
+ chown -R lightstreamer:root /lightstreamer; \
+ chmod -R g=u /lightstreamer;
+
+USER 10000:10000
+
EXPOSE 8080
-# Set the final working dir
WORKDIR /lightstreamer/bin/unix-like
-# Start the server
CMD ["./LS.sh", "run"]
\ No newline at end of file
diff --git a/lightstreamer_7.2-base/Dockerfile b/lightstreamer_7.2-base/Dockerfile
new file mode 100644
index 0000000..aec740b
--- /dev/null
+++ b/lightstreamer_7.2-base/Dockerfile
@@ -0,0 +1,61 @@
+#
+# NOTE: THIS DOCKERFILE IS GENERATED VIA "update.sh"
+#
+# PLEASE DO NOT EDIT IT DIRECTLY.
+#
+
+# "Base" edition — same runtime as the full image, but with all content that
+# downstream images are expected to provide themselves removed: factory config
+# XMLs, welcome page, welcome-adapter resources, and PDF documentation.
+# The sed step that rewrites conf/lightstreamer_log_conf.xml is dropped too,
+# since the file it targets is stripped a moment later.
+
+FROM eclipse-temurin:11-jdk
+LABEL org.opencontainers.image.authors="Lightstreamer Server Development Team <support@lightstreamer.com>"
+ENV LIGHTSTREAMER_VERSION=7.2.2
+
+ARG LIGHTSTREAMER_URL_DOWNLOAD=https://lightstreamer.com/distros/ls-server/7.2.2/Lightstreamer-7.2.2.tar.gz
+ARG FINGERPRINT=9B90BFD14309C7DA5EF58D7D4A8C08966F29B4D2
+
+WORKDIR /lightstreamer
+
+RUN set -eux; \
+ apt-get update && apt-get install -y --no-install-recommends curl gnupg; \
+# Download the package from the Lightstreamer site
+ curl -fSL -o Lightstreamer.tar.gz ${LIGHTSTREAMER_URL_DOWNLOAD}; \
+ curl -fSL -o Lightstreamer.tar.gz.asc ${LIGHTSTREAMER_URL_DOWNLOAD}.asc; \
+# Import Lightstreamer's public key and verify the signature of the downloaded package
+ GNUPGHOME="$(mktemp -d)"; \
+ export GNUPGHOME; \
+ gpg --batch --keyserver hkps://keys.openpgp.org --recv-keys "${FINGERPRINT}"; \
+ gpg --batch --verify Lightstreamer.tar.gz.asc Lightstreamer.tar.gz; \
+# Unpack
+ tar -xf Lightstreamer.tar.gz --strip-components=1; \
+# Strip content that downstream images are expected to provide themselves.
+ rm -rf docs pages adapters/welcome_res; \
+ rm -f conf/*.xml; \
+ rm -rf bin/unix-like/install; \
+ rm -rf bin/windows; \
+# Remove no longer needed files
+ rm Lightstreamer.tar.gz Lightstreamer.tar.gz.asc; \
+ gpgconf --kill all; \
+ rm -rf "$GNUPGHOME"; \
+ rm -rf /var/lib/apt/lists/*; \
+# Create a non-root user and group (UID/GID 10000) as the default runtime identity
+ groupadd -g 10000 lightstreamer; \
+ useradd --no-log-init -M -s /usr/sbin/nologin -g lightstreamer -u 10000 lightstreamer; \
+# Group-owned by root (GID 0) and g=u so OpenShift's arbitrary UID (always in
+# root group) can read/write. Downstream images that add content (conf/,
+# adapters/) should apply the same pattern to their own additions.
+ chown -R lightstreamer:root /lightstreamer; \
+ chmod -R g=u /lightstreamer
+
+USER 10000:10000
+
+EXPOSE 8080
+
+WORKDIR /lightstreamer/bin/unix-like
+
+# Downstream images MUST provide their own conf/*.xml (and any adapters they
+# need) before the container can start.
+CMD ["./LS.sh", "run"]
diff --git a/lightstreamer_7.2-jdk8-temurin-base/Dockerfile b/lightstreamer_7.2-jdk8-temurin-base/Dockerfile
new file mode 100644
index 0000000..398f932
--- /dev/null
+++ b/lightstreamer_7.2-jdk8-temurin-base/Dockerfile
@@ -0,0 +1,61 @@
+#
+# NOTE: THIS DOCKERFILE IS GENERATED VIA "update.sh"
+#
+# PLEASE DO NOT EDIT IT DIRECTLY.
+#
+
+# "Base" edition — same runtime as the full image, but with all content that
+# downstream images are expected to provide themselves removed: factory config
+# XMLs, welcome page, welcome-adapter resources, and PDF documentation.
+# The sed step that rewrites conf/lightstreamer_log_conf.xml is dropped too,
+# since the file it targets is stripped a moment later.
+
+FROM eclipse-temurin:8-jdk
+LABEL org.opencontainers.image.authors="Lightstreamer Server Development Team <support@lightstreamer.com>"
+ENV LIGHTSTREAMER_VERSION=7.2.2
+
+ARG LIGHTSTREAMER_URL_DOWNLOAD=https://lightstreamer.com/distros/ls-server/7.2.2/Lightstreamer-7.2.2.tar.gz
+ARG FINGERPRINT=9B90BFD14309C7DA5EF58D7D4A8C08966F29B4D2
+
+WORKDIR /lightstreamer
+
+RUN set -eux; \
+ apt-get update && apt-get install -y --no-install-recommends curl gnupg; \
+# Download the package from the Lightstreamer site
+ curl -fSL -o Lightstreamer.tar.gz ${LIGHTSTREAMER_URL_DOWNLOAD}; \
+ curl -fSL -o Lightstreamer.tar.gz.asc ${LIGHTSTREAMER_URL_DOWNLOAD}.asc; \
+# Import Lightstreamer's public key and verify the signature of the downloaded package
+ GNUPGHOME="$(mktemp -d)"; \
+ export GNUPGHOME; \
+ gpg --batch --keyserver hkps://keys.openpgp.org --recv-keys "${FINGERPRINT}"; \
+ gpg --batch --verify Lightstreamer.tar.gz.asc Lightstreamer.tar.gz; \
+# Unpack
+ tar -xf Lightstreamer.tar.gz --strip-components=1; \
+# Strip content that downstream images are expected to provide themselves.
+ rm -rf docs pages adapters/welcome_res; \
+ rm -f conf/*.xml; \
+ rm -rf bin/unix-like/install; \
+ rm -rf bin/windows; \
+# Remove no longer needed files
+ rm Lightstreamer.tar.gz Lightstreamer.tar.gz.asc; \
+ gpgconf --kill all; \
+ rm -rf "$GNUPGHOME"; \
+ rm -rf /var/lib/apt/lists/*; \
+# Create a non-root user and group (UID/GID 10000) as the default runtime identity
+ groupadd -g 10000 lightstreamer; \
+ useradd --no-log-init -M -s /usr/sbin/nologin -g lightstreamer -u 10000 lightstreamer; \
+# Group-owned by root (GID 0) and g=u so OpenShift's arbitrary UID (always in
+# root group) can read/write. Downstream images that add content (conf/,
+# adapters/) should apply the same pattern to their own additions.
+ chown -R lightstreamer:root /lightstreamer; \
+ chmod -R g=u /lightstreamer
+
+USER 10000:10000
+
+EXPOSE 8080
+
+WORKDIR /lightstreamer/bin/unix-like
+
+# Downstream images MUST provide their own conf/*.xml (and any adapters they
+# need) before the container can start.
+CMD ["./LS.sh", "run"]
diff --git a/lightstreamer_7.2-jdk8-temurin/Dockerfile b/lightstreamer_7.2-jdk8-temurin/Dockerfile
new file mode 100644
index 0000000..dce0ff1
--- /dev/null
+++ b/lightstreamer_7.2-jdk8-temurin/Dockerfile
@@ -0,0 +1,55 @@
+#
+# NOTE: THIS DOCKERFILE IS GENERATED VIA "update.sh"
+#
+# PLEASE DO NOT EDIT IT DIRECTLY.
+#
+
+FROM eclipse-temurin:8-jdk
+LABEL org.opencontainers.image.authors="Lightstreamer Server Development Team <support@lightstreamer.com>"
+ENV LIGHTSTREAMER_VERSION=7.2.2
+
+ARG LIGHTSTREAMER_URL_DOWNLOAD=https://lightstreamer.com/distros/ls-server/7.2.2/Lightstreamer-7.2.2.tar.gz
+ARG FINGERPRINT=9B90BFD14309C7DA5EF58D7D4A8C08966F29B4D2
+
+WORKDIR /lightstreamer
+
+RUN set -eux; \
+ apt-get update; \
+ apt-get install -y --no-install-recommends curl gnupg; \
+# Download the package from the Lightstreamer site
+ curl -fSL -o Lightstreamer.tar.gz ${LIGHTSTREAMER_URL_DOWNLOAD}; \
+ curl -fSL -o Lightstreamer.tar.gz.asc ${LIGHTSTREAMER_URL_DOWNLOAD}.asc; \
+# Import Lightstreamer's public key and verify the signature of the downloaded package
+ GNUPGHOME="$(mktemp -d)"; \
+ export GNUPGHOME; \
+ gpg --batch --keyserver hkps://keys.openpgp.org --recv-keys "${FINGERPRINT}"; \
+ gpg --batch --verify Lightstreamer.tar.gz.asc Lightstreamer.tar.gz; \
+# Unpack
+ tar -xf Lightstreamer.tar.gz --strip-components=1; \
+# Adjust the logging configuration in order to log only on standard output
+ sed -i -e 's/<appender-ref ref="LSDailyRolling" \/>/<appender-ref ref="LSConsole" \/>/' \
+ -e '/<logger name="LightstreamerLogger.init/,+2s/<appender-ref ref="LSConsole" \/>/<!-- <appender-ref ref="LSConsole" \/> -->/' \
+ -e '/<logger name="LightstreamerLogger.license/,+2s/<appender-ref ref="LSConsole" \/>/<!-- <appender-ref ref="LSConsole" \/> -->/' \
+ -e '/<logger name="LightstreamerProxyAdapters/,+2s/<appender-ref ref="LSConsole" \/>/<!-- <appender-ref ref="LSConsole" \/> -->/' \
+ conf/lightstreamer_log_conf.xml; \
+# Remove no longer needed files
+ rm Lightstreamer.tar.gz Lightstreamer.tar.gz.asc; \
+ gpgconf --kill all; \
+ rm -rf "$GNUPGHOME"; \
+ rm -rf /var/lib/apt/lists/*; \
+# Create a non-root user and group (UID/GID 10000) as the default runtime identity
+ groupadd -g 10000 lightstreamer; \
+ useradd --no-log-init -M -s /usr/sbin/nologin -g lightstreamer -u 10000 lightstreamer; \
+# Group-owned by root (GID 0) and g=u so OpenShift's arbitrary UID (always in
+# root group) can read/write. Harmless on plain Docker (user 10000 still owns
+# the files and gets the same permissions via the user bits).
+ chown -R lightstreamer:root /lightstreamer; \
+ chmod -R g=u /lightstreamer;
+
+USER 10000:10000
+
+EXPOSE 8080
+
+WORKDIR /lightstreamer/bin/unix-like
+
+CMD ["./LS.sh", "run"]
\ No newline at end of file
diff --git a/lightstreamer_7.2-jdk8/Dockerfile b/lightstreamer_7.2-jdk8/Dockerfile
deleted file mode 100644
index cff968a..0000000
diff --git a/lightstreamer_7.2/Dockerfile b/lightstreamer_7.2/Dockerfile
index 0e48961..a3195e9 100644
--- a/lightstreamer_7.2/Dockerfile
+++ b/lightstreamer_7.2/Dockerfile
@@ -1,48 +1,55 @@
-# Set the base image
-FROM eclipse-temurin:11-jdk
-
-LABEL maintainer="Lightstreamer Server Development Team <support@lightstreamer.com>"
-
-# Add gpg, which is missing in the eclipse-temurin image
-RUN apt-get -y update \
- && apt-get -y install gnupg \
- && rm -rf /var/lib/apt/lists/*
-
-# Import Lighstreamer's public key
-RUN gpg --batch --keyserver hkp://keyserver.ubuntu.com --recv-keys 9B90BFD14309C7DA5EF58D7D4A8C08966F29B4D2
+#
+# NOTE: THIS DOCKERFILE IS GENERATED VIA "update.sh"
+#
+# PLEASE DO NOT EDIT IT DIRECTLY.
+#
-# Set environment variables to identify the right Lightstreamer version and edition
-ENV LIGHTSTREAMER_VERSION 7.2.2
-ENV LIGHTSTREAMER_URL_DOWNLOAD https://lightstreamer.com/distros/ls-server/${LIGHTSTREAMER_VERSION}/Lightstreamer-${LIGHTSTREAMER_VERSION}.tar.gz
-
-# Download the package from the Lightstreamer site, verify the signature, and unpack
-RUN set -ex; \
- mkdir /lightstreamer && cd /lightstreamer \
- && curl -fSL -o Lightstreamer.tar.gz ${LIGHTSTREAMER_URL_DOWNLOAD} \
- && curl -fSL -o Lightstreamer.tar.gz.asc ${LIGHTSTREAMER_URL_DOWNLOAD}.asc \
- && gpg --batch --verify Lightstreamer.tar.gz.asc Lightstreamer.tar.gz \
- && tar -xvf Lightstreamer.tar.gz --strip-components=1 \
+FROM eclipse-temurin:11-jdk
+LABEL org.opencontainers.image.authors="Lightstreamer Server Development Team <support@lightstreamer.com>"
+ENV LIGHTSTREAMER_VERSION=7.2.2
+
+ARG LIGHTSTREAMER_URL_DOWNLOAD=https://lightstreamer.com/distros/ls-server/7.2.2/Lightstreamer-7.2.2.tar.gz
+ARG FINGERPRINT=9B90BFD14309C7DA5EF58D7D4A8C08966F29B4D2
+
+WORKDIR /lightstreamer
+
+RUN set -eux; \
+ apt-get update; \
+ apt-get install -y --no-install-recommends curl gnupg; \
+# Download the package from the Lightstreamer site
+ curl -fSL -o Lightstreamer.tar.gz ${LIGHTSTREAMER_URL_DOWNLOAD}; \
+ curl -fSL -o Lightstreamer.tar.gz.asc ${LIGHTSTREAMER_URL_DOWNLOAD}.asc; \
+# Import Lightstreamer's public key and verify the signature of the downloaded package
+ GNUPGHOME="$(mktemp -d)"; \
+ export GNUPGHOME; \
+ gpg --batch --keyserver hkps://keys.openpgp.org --recv-keys "${FINGERPRINT}"; \
+ gpg --batch --verify Lightstreamer.tar.gz.asc Lightstreamer.tar.gz; \
+# Unpack
+ tar -xf Lightstreamer.tar.gz --strip-components=1; \
# Adjust the logging configuration in order to log only on standard output
- && sed -i -e 's/<appender-ref ref="LSDailyRolling" \/>/<appender-ref ref="LSConsole" \/>/' \
+ sed -i -e 's/<appender-ref ref="LSDailyRolling" \/>/<appender-ref ref="LSConsole" \/>/' \
-e '/<logger name="LightstreamerLogger.init/,+2s/<appender-ref ref="LSConsole" \/>/<!-- <appender-ref ref="LSConsole" \/> -->/' \
-e '/<logger name="LightstreamerLogger.license/,+2s/<appender-ref ref="LSConsole" \/>/<!-- <appender-ref ref="LSConsole" \/> -->/' \
-e '/<logger name="LightstreamerProxyAdapters/,+2s/<appender-ref ref="LSConsole" \/>/<!-- <appender-ref ref="LSConsole" \/> -->/' \
- conf/lightstreamer_log_conf.xml \
-# Add new user and group
- && groupadd -r -g 10000 lightstreamer \
- && useradd --no-log-init -r -g lightstreamer -u 10000 lightstreamer \
-# Change ownership of the lightstreamer folder
- && chown -R lightstreamer:lightstreamer ../lightstreamer \
-# Finally, remove no longer needed files
- && rm Lightstreamer.tar.gz Lightstreamer.tar.gz.asc
-
-USER lightstreamer
-
-# Export TCP port 8080
+ conf/lightstreamer_log_conf.xml; \
+# Remove no longer needed files
+ rm Lightstreamer.tar.gz Lightstreamer.tar.gz.asc; \
+ gpgconf --kill all; \
+ rm -rf "$GNUPGHOME"; \
+ rm -rf /var/lib/apt/lists/*; \
+# Create a non-root user and group (UID/GID 10000) as the default runtime identity
+ groupadd -g 10000 lightstreamer; \
+ useradd --no-log-init -M -s /usr/sbin/nologin -g lightstreamer -u 10000 lightstreamer; \
+# Group-owned by root (GID 0) and g=u so OpenShift's arbitrary UID (always in
+# root group) can read/write. Harmless on plain Docker (user 10000 still owns
+# the files and gets the same permissions via the user bits).
+ chown -R lightstreamer:root /lightstreamer; \
+ chmod -R g=u /lightstreamer;
+
+USER 10000:10000
+
EXPOSE 8080
-# Set the final working dir
WORKDIR /lightstreamer/bin/unix-like
-# Start the server
CMD ["./LS.sh", "run"]
\ No newline at end of file
diff --git a/lightstreamer_7.3-base/Dockerfile b/lightstreamer_7.3-base/Dockerfile
new file mode 100644
index 0000000..af40113
--- /dev/null
+++ b/lightstreamer_7.3-base/Dockerfile
@@ -0,0 +1,61 @@
+#
+# NOTE: THIS DOCKERFILE IS GENERATED VIA "update.sh"
+#
+# PLEASE DO NOT EDIT IT DIRECTLY.
+#
+
+# "Base" edition — same runtime as the full image, but with all content that
+# downstream images are expected to provide themselves removed: factory config
+# XMLs, welcome page, welcome-adapter resources, and PDF documentation.
+# The sed step that rewrites conf/lightstreamer_log_conf.xml is dropped too,
+# since the file it targets is stripped a moment later.
+
+FROM eclipse-temurin:17-jdk
+LABEL org.opencontainers.image.authors="Lightstreamer Server Development Team <support@lightstreamer.com>"
+ENV LIGHTSTREAMER_VERSION=7.3.3
+
+ARG LIGHTSTREAMER_URL_DOWNLOAD=https://lightstreamer.com/distros/ls-server/7.3.3/Lightstreamer-7.3.3.tar.gz
+ARG FINGERPRINT=9B90BFD14309C7DA5EF58D7D4A8C08966F29B4D2
+
+WORKDIR /lightstreamer
+
+RUN set -eux; \
+ apt-get update && apt-get install -y --no-install-recommends curl gnupg; \
+# Download the package from the Lightstreamer site
+ curl -fSL -o Lightstreamer.tar.gz ${LIGHTSTREAMER_URL_DOWNLOAD}; \
+ curl -fSL -o Lightstreamer.tar.gz.asc ${LIGHTSTREAMER_URL_DOWNLOAD}.asc; \
+# Import Lightstreamer's public key and verify the signature of the downloaded package
+ GNUPGHOME="$(mktemp -d)"; \
+ export GNUPGHOME; \
+ gpg --batch --keyserver hkps://keys.openpgp.org --recv-keys "${FINGERPRINT}"; \
+ gpg --batch --verify Lightstreamer.tar.gz.asc Lightstreamer.tar.gz; \
+# Unpack
+ tar -xf Lightstreamer.tar.gz --strip-components=1; \
+# Strip content that downstream images are expected to provide themselves.
+ rm -rf docs pages adapters/welcome_res; \
+ rm -f conf/*.xml; \
+ rm -rf bin/unix-like/install; \
+ rm -rf bin/windows; \
+# Remove no longer needed files
+ rm Lightstreamer.tar.gz Lightstreamer.tar.gz.asc; \
+ gpgconf --kill all; \
+ rm -rf "$GNUPGHOME"; \
+ rm -rf /var/lib/apt/lists/*; \
+# Create a non-root user and group (UID/GID 10000) as the default runtime identity
+ groupadd -g 10000 lightstreamer; \
+ useradd --no-log-init -M -s /usr/sbin/nologin -g lightstreamer -u 10000 lightstreamer; \
+# Group-owned by root (GID 0) and g=u so OpenShift's arbitrary UID (always in
+# root group) can read/write. Downstream images that add content (conf/,
+# adapters/) should apply the same pattern to their own additions.
+ chown -R lightstreamer:root /lightstreamer; \
+ chmod -R g=u /lightstreamer
+
+USER 10000:10000
+
+EXPOSE 8080
+
+WORKDIR /lightstreamer/bin/unix-like
+
+# Downstream images MUST provide their own conf/*.xml (and any adapters they
+# need) before the container can start.
+CMD ["./LS.sh", "run"]
diff --git a/lightstreamer_7.3-jdk11-temurin-base/Dockerfile b/lightstreamer_7.3-jdk11-temurin-base/Dockerfile
new file mode 100644
index 0000000..709d695
--- /dev/null
+++ b/lightstreamer_7.3-jdk11-temurin-base/Dockerfile
@@ -0,0 +1,61 @@
+#
+# NOTE: THIS DOCKERFILE IS GENERATED VIA "update.sh"
+#
+# PLEASE DO NOT EDIT IT DIRECTLY.
+#
+
+# "Base" edition — same runtime as the full image, but with all content that
+# downstream images are expected to provide themselves removed: factory config
+# XMLs, welcome page, welcome-adapter resources, and PDF documentation.
+# The sed step that rewrites conf/lightstreamer_log_conf.xml is dropped too,
+# since the file it targets is stripped a moment later.
+
+FROM eclipse-temurin:11-jdk
+LABEL org.opencontainers.image.authors="Lightstreamer Server Development Team <support@lightstreamer.com>"
+ENV LIGHTSTREAMER_VERSION=7.3.3
+
+ARG LIGHTSTREAMER_URL_DOWNLOAD=https://lightstreamer.com/distros/ls-server/7.3.3/Lightstreamer-7.3.3.tar.gz
+ARG FINGERPRINT=9B90BFD14309C7DA5EF58D7D4A8C08966F29B4D2
+
+WORKDIR /lightstreamer
+
+RUN set -eux; \
+ apt-get update && apt-get install -y --no-install-recommends curl gnupg; \
+# Download the package from the Lightstreamer site
+ curl -fSL -o Lightstreamer.tar.gz ${LIGHTSTREAMER_URL_DOWNLOAD}; \
+ curl -fSL -o Lightstreamer.tar.gz.asc ${LIGHTSTREAMER_URL_DOWNLOAD}.asc; \
+# Import Lightstreamer's public key and verify the signature of the downloaded package
+ GNUPGHOME="$(mktemp -d)"; \
+ export GNUPGHOME; \
+ gpg --batch --keyserver hkps://keys.openpgp.org --recv-keys "${FINGERPRINT}"; \
+ gpg --batch --verify Lightstreamer.tar.gz.asc Lightstreamer.tar.gz; \
+# Unpack
+ tar -xf Lightstreamer.tar.gz --strip-components=1; \
+# Strip content that downstream images are expected to provide themselves.
+ rm -rf docs pages adapters/welcome_res; \
+ rm -f conf/*.xml; \
+ rm -rf bin/unix-like/install; \
+ rm -rf bin/windows; \
+# Remove no longer needed files
+ rm Lightstreamer.tar.gz Lightstreamer.tar.gz.asc; \
+ gpgconf --kill all; \
+ rm -rf "$GNUPGHOME"; \
+ rm -rf /var/lib/apt/lists/*; \
+# Create a non-root user and group (UID/GID 10000) as the default runtime identity
+ groupadd -g 10000 lightstreamer; \
+ useradd --no-log-init -M -s /usr/sbin/nologin -g lightstreamer -u 10000 lightstreamer; \
+# Group-owned by root (GID 0) and g=u so OpenShift's arbitrary UID (always in
+# root group) can read/write. Downstream images that add content (conf/,
+# adapters/) should apply the same pattern to their own additions.
+ chown -R lightstreamer:root /lightstreamer; \
+ chmod -R g=u /lightstreamer
+
+USER 10000:10000
+
+EXPOSE 8080
+
+WORKDIR /lightstreamer/bin/unix-like
+
+# Downstream images MUST provide their own conf/*.xml (and any adapters they
+# need) before the container can start.
+CMD ["./LS.sh", "run"]
diff --git a/lightstreamer_7.3-jdk11-temurin/Dockerfile b/lightstreamer_7.3-jdk11-temurin/Dockerfile
new file mode 100644
index 0000000..fe24f85
--- /dev/null
+++ b/lightstreamer_7.3-jdk11-temurin/Dockerfile
@@ -0,0 +1,55 @@
+#
+# NOTE: THIS DOCKERFILE IS GENERATED VIA "update.sh"
+#
+# PLEASE DO NOT EDIT IT DIRECTLY.
+#
+
+FROM eclipse-temurin:11-jdk
+LABEL org.opencontainers.image.authors="Lightstreamer Server Development Team <support@lightstreamer.com>"
+ENV LIGHTSTREAMER_VERSION=7.3.3
+
+ARG LIGHTSTREAMER_URL_DOWNLOAD=https://lightstreamer.com/distros/ls-server/7.3.3/Lightstreamer-7.3.3.tar.gz
+ARG FINGERPRINT=9B90BFD14309C7DA5EF58D7D4A8C08966F29B4D2
+
+WORKDIR /lightstreamer
+
+RUN set -eux; \
+ apt-get update; \
+ apt-get install -y --no-install-recommends curl gnupg; \
+# Download the package from the Lightstreamer site
+ curl -fSL -o Lightstreamer.tar.gz ${LIGHTSTREAMER_URL_DOWNLOAD}; \
+ curl -fSL -o Lightstreamer.tar.gz.asc ${LIGHTSTREAMER_URL_DOWNLOAD}.asc; \
+# Import Lightstreamer's public key and verify the signature of the downloaded package
+ GNUPGHOME="$(mktemp -d)"; \
+ export GNUPGHOME; \
+ gpg --batch --keyserver hkps://keys.openpgp.org --recv-keys "${FINGERPRINT}"; \
+ gpg --batch --verify Lightstreamer.tar.gz.asc Lightstreamer.tar.gz; \
+# Unpack
+ tar -xf Lightstreamer.tar.gz --strip-components=1; \
+# Adjust the logging configuration in order to log only on standard output
+ sed -i -e 's/<appender-ref ref="LSDailyRolling" \/>/<appender-ref ref="LSConsole" \/>/' \
+ -e '/<logger name="LightstreamerLogger.init/,+2s/<appender-ref ref="LSConsole" \/>/<!-- <appender-ref ref="LSConsole" \/> -->/' \
+ -e '/<logger name="LightstreamerLogger.license/,+2s/<appender-ref ref="LSConsole" \/>/<!-- <appender-ref ref="LSConsole" \/> -->/' \
+ -e '/<logger name="LightstreamerProxyAdapters/,+2s/<appender-ref ref="LSConsole" \/>/<!-- <appender-ref ref="LSConsole" \/> -->/' \
+ conf/lightstreamer_log_conf.xml; \
+# Remove no longer needed files
+ rm Lightstreamer.tar.gz Lightstreamer.tar.gz.asc; \
+ gpgconf --kill all; \
+ rm -rf "$GNUPGHOME"; \
+ rm -rf /var/lib/apt/lists/*; \
+# Create a non-root user and group (UID/GID 10000) as the default runtime identity
+ groupadd -g 10000 lightstreamer; \
+ useradd --no-log-init -M -s /usr/sbin/nologin -g lightstreamer -u 10000 lightstreamer; \
+# Group-owned by root (GID 0) and g=u so OpenShift's arbitrary UID (always in
+# root group) can read/write. Harmless on plain Docker (user 10000 still owns
+# the files and gets the same permissions via the user bits).
+ chown -R lightstreamer:root /lightstreamer; \
+ chmod -R g=u /lightstreamer;
+
+USER 10000:10000
+
+EXPOSE 8080
+
+WORKDIR /lightstreamer/bin/unix-like
+
+CMD ["./LS.sh", "run"]
\ No newline at end of file
diff --git a/lightstreamer_7.3-jdk11/Dockerfile b/lightstreamer_7.3-jdk11/Dockerfile
deleted file mode 100644
index 4f77ee4..0000000
diff --git a/lightstreamer_7.3-jdk8-temurin-base/Dockerfile b/lightstreamer_7.3-jdk8-temurin-base/Dockerfile
new file mode 100644
index 0000000..efc0eaa
--- /dev/null
+++ b/lightstreamer_7.3-jdk8-temurin-base/Dockerfile
@@ -0,0 +1,61 @@
+#
+# NOTE: THIS DOCKERFILE IS GENERATED VIA "update.sh"
+#
+# PLEASE DO NOT EDIT IT DIRECTLY.
+#
+
+# "Base" edition — same runtime as the full image, but with all content that
+# downstream images are expected to provide themselves removed: factory config
+# XMLs, welcome page, welcome-adapter resources, and PDF documentation.
+# The sed step that rewrites conf/lightstreamer_log_conf.xml is dropped too,
+# since the file it targets is stripped a moment later.
+
+FROM eclipse-temurin:8-jdk
+LABEL org.opencontainers.image.authors="Lightstreamer Server Development Team <support@lightstreamer.com>"
+ENV LIGHTSTREAMER_VERSION=7.3.3
+
+ARG LIGHTSTREAMER_URL_DOWNLOAD=https://lightstreamer.com/distros/ls-server/7.3.3/Lightstreamer-7.3.3.tar.gz
+ARG FINGERPRINT=9B90BFD14309C7DA5EF58D7D4A8C08966F29B4D2
+
+WORKDIR /lightstreamer
+
+RUN set -eux; \
+ apt-get update && apt-get install -y --no-install-recommends curl gnupg; \
+# Download the package from the Lightstreamer site
+ curl -fSL -o Lightstreamer.tar.gz ${LIGHTSTREAMER_URL_DOWNLOAD}; \
+ curl -fSL -o Lightstreamer.tar.gz.asc ${LIGHTSTREAMER_URL_DOWNLOAD}.asc; \
+# Import Lightstreamer's public key and verify the signature of the downloaded package
+ GNUPGHOME="$(mktemp -d)"; \
+ export GNUPGHOME; \
+ gpg --batch --keyserver hkps://keys.openpgp.org --recv-keys "${FINGERPRINT}"; \
+ gpg --batch --verify Lightstreamer.tar.gz.asc Lightstreamer.tar.gz; \
+# Unpack
+ tar -xf Lightstreamer.tar.gz --strip-components=1; \
+# Strip content that downstream images are expected to provide themselves.
+ rm -rf docs pages adapters/welcome_res; \
+ rm -f conf/*.xml; \
+ rm -rf bin/unix-like/install; \
+ rm -rf bin/windows; \
+# Remove no longer needed files
+ rm Lightstreamer.tar.gz Lightstreamer.tar.gz.asc; \
+ gpgconf --kill all; \
+ rm -rf "$GNUPGHOME"; \
+ rm -rf /var/lib/apt/lists/*; \
+# Create a non-root user and group (UID/GID 10000) as the default runtime identity
+ groupadd -g 10000 lightstreamer; \
+ useradd --no-log-init -M -s /usr/sbin/nologin -g lightstreamer -u 10000 lightstreamer; \
+# Group-owned by root (GID 0) and g=u so OpenShift's arbitrary UID (always in
+# root group) can read/write. Downstream images that add content (conf/,
+# adapters/) should apply the same pattern to their own additions.
+ chown -R lightstreamer:root /lightstreamer; \
+ chmod -R g=u /lightstreamer
+
+USER 10000:10000
+
+EXPOSE 8080
+
+WORKDIR /lightstreamer/bin/unix-like
+
+# Downstream images MUST provide their own conf/*.xml (and any adapters they
+# need) before the container can start.
+CMD ["./LS.sh", "run"]
diff --git a/lightstreamer_7.3-jdk8-temurin/Dockerfile b/lightstreamer_7.3-jdk8-temurin/Dockerfile
new file mode 100644
index 0000000..b18673e
--- /dev/null
+++ b/lightstreamer_7.3-jdk8-temurin/Dockerfile
@@ -0,0 +1,55 @@
+#
+# NOTE: THIS DOCKERFILE IS GENERATED VIA "update.sh"
+#
+# PLEASE DO NOT EDIT IT DIRECTLY.
+#
+
+FROM eclipse-temurin:8-jdk
+LABEL org.opencontainers.image.authors="Lightstreamer Server Development Team <support@lightstreamer.com>"
+ENV LIGHTSTREAMER_VERSION=7.3.3
+
+ARG LIGHTSTREAMER_URL_DOWNLOAD=https://lightstreamer.com/distros/ls-server/7.3.3/Lightstreamer-7.3.3.tar.gz
+ARG FINGERPRINT=9B90BFD14309C7DA5EF58D7D4A8C08966F29B4D2
+
+WORKDIR /lightstreamer
+
+RUN set -eux; \
+ apt-get update; \
+ apt-get install -y --no-install-recommends curl gnupg; \
+# Download the package from the Lightstreamer site
+ curl -fSL -o Lightstreamer.tar.gz ${LIGHTSTREAMER_URL_DOWNLOAD}; \
+ curl -fSL -o Lightstreamer.tar.gz.asc ${LIGHTSTREAMER_URL_DOWNLOAD}.asc; \
+# Import Lightstreamer's public key and verify the signature of the downloaded package
+ GNUPGHOME="$(mktemp -d)"; \
+ export GNUPGHOME; \
+ gpg --batch --keyserver hkps://keys.openpgp.org --recv-keys "${FINGERPRINT}"; \
+ gpg --batch --verify Lightstreamer.tar.gz.asc Lightstreamer.tar.gz; \
+# Unpack
+ tar -xf Lightstreamer.tar.gz --strip-components=1; \
+# Adjust the logging configuration in order to log only on standard output
+ sed -i -e 's/<appender-ref ref="LSDailyRolling" \/>/<appender-ref ref="LSConsole" \/>/' \
+ -e '/<logger name="LightstreamerLogger.init/,+2s/<appender-ref ref="LSConsole" \/>/<!-- <appender-ref ref="LSConsole" \/> -->/' \
+ -e '/<logger name="LightstreamerLogger.license/,+2s/<appender-ref ref="LSConsole" \/>/<!-- <appender-ref ref="LSConsole" \/> -->/' \
+ -e '/<logger name="LightstreamerProxyAdapters/,+2s/<appender-ref ref="LSConsole" \/>/<!-- <appender-ref ref="LSConsole" \/> -->/' \
+ conf/lightstreamer_log_conf.xml; \
+# Remove no longer needed files
+ rm Lightstreamer.tar.gz Lightstreamer.tar.gz.asc; \
+ gpgconf --kill all; \
+ rm -rf "$GNUPGHOME"; \
+ rm -rf /var/lib/apt/lists/*; \
+# Create a non-root user and group (UID/GID 10000) as the default runtime identity
+ groupadd -g 10000 lightstreamer; \
+ useradd --no-log-init -M -s /usr/sbin/nologin -g lightstreamer -u 10000 lightstreamer; \
+# Group-owned by root (GID 0) and g=u so OpenShift's arbitrary UID (always in
+# root group) can read/write. Harmless on plain Docker (user 10000 still owns
+# the files and gets the same permissions via the user bits).
+ chown -R lightstreamer:root /lightstreamer; \
+ chmod -R g=u /lightstreamer;
+
+USER 10000:10000
+
+EXPOSE 8080
+
+WORKDIR /lightstreamer/bin/unix-like
+
+CMD ["./LS.sh", "run"]
\ No newline at end of file
diff --git a/lightstreamer_7.3-jdk8/Dockerfile b/lightstreamer_7.3-jdk8/Dockerfile
deleted file mode 100644
index a94ec90..0000000
diff --git a/lightstreamer_7.3/Dockerfile b/lightstreamer_7.3/Dockerfile
index 34a4361..ee98233 100644
--- a/lightstreamer_7.3/Dockerfile
+++ b/lightstreamer_7.3/Dockerfile
@@ -1,48 +1,55 @@
-# Set the base image
-FROM eclipse-temurin:17-jdk
-
-LABEL maintainer="Lightstreamer Server Development Team <support@lightstreamer.com>"
-
-# Add gpg, which is missing in the eclipse-temurin image
-RUN apt-get -y update \
- && apt-get -y install gnupg \
- && rm -rf /var/lib/apt/lists/*
-
-# Import Lighstreamer's public key
-RUN gpg --batch --keyserver hkp://keyserver.ubuntu.com --recv-keys 9B90BFD14309C7DA5EF58D7D4A8C08966F29B4D2
+#
+# NOTE: THIS DOCKERFILE IS GENERATED VIA "update.sh"
+#
+# PLEASE DO NOT EDIT IT DIRECTLY.
+#
-# Set environment variables to identify the right Lightstreamer version and edition
-ENV LIGHTSTREAMER_VERSION 7.3.3
-ENV LIGHTSTREAMER_URL_DOWNLOAD https://lightstreamer.com/distros/ls-server/${LIGHTSTREAMER_VERSION}/Lightstreamer-${LIGHTSTREAMER_VERSION}.tar.gz
-
-# Download the package from the Lightstreamer site, verify the signature, and unpack
-RUN set -ex; \
- mkdir /lightstreamer && cd /lightstreamer \
- && curl -fSL -o Lightstreamer.tar.gz ${LIGHTSTREAMER_URL_DOWNLOAD} \
- && curl -fSL -o Lightstreamer.tar.gz.asc ${LIGHTSTREAMER_URL_DOWNLOAD}.asc \
- && gpg --batch --verify Lightstreamer.tar.gz.asc Lightstreamer.tar.gz \
- && tar -xvf Lightstreamer.tar.gz --strip-components=1 \
+FROM eclipse-temurin:17-jdk
+LABEL org.opencontainers.image.authors="Lightstreamer Server Development Team <support@lightstreamer.com>"
+ENV LIGHTSTREAMER_VERSION=7.3.3
+
+ARG LIGHTSTREAMER_URL_DOWNLOAD=https://lightstreamer.com/distros/ls-server/7.3.3/Lightstreamer-7.3.3.tar.gz
+ARG FINGERPRINT=9B90BFD14309C7DA5EF58D7D4A8C08966F29B4D2
+
+WORKDIR /lightstreamer
+
+RUN set -eux; \
+ apt-get update; \
+ apt-get install -y --no-install-recommends curl gnupg; \
+# Download the package from the Lightstreamer site
+ curl -fSL -o Lightstreamer.tar.gz ${LIGHTSTREAMER_URL_DOWNLOAD}; \
+ curl -fSL -o Lightstreamer.tar.gz.asc ${LIGHTSTREAMER_URL_DOWNLOAD}.asc; \
+# Import Lightstreamer's public key and verify the signature of the downloaded package
+ GNUPGHOME="$(mktemp -d)"; \
+ export GNUPGHOME; \
+ gpg --batch --keyserver hkps://keys.openpgp.org --recv-keys "${FINGERPRINT}"; \
+ gpg --batch --verify Lightstreamer.tar.gz.asc Lightstreamer.tar.gz; \
+# Unpack
+ tar -xf Lightstreamer.tar.gz --strip-components=1; \
# Adjust the logging configuration in order to log only on standard output
- && sed -i -e 's/<appender-ref ref="LSDailyRolling" \/>/<appender-ref ref="LSConsole" \/>/' \
+ sed -i -e 's/<appender-ref ref="LSDailyRolling" \/>/<appender-ref ref="LSConsole" \/>/' \
-e '/<logger name="LightstreamerLogger.init/,+2s/<appender-ref ref="LSConsole" \/>/<!-- <appender-ref ref="LSConsole" \/> -->/' \
-e '/<logger name="LightstreamerLogger.license/,+2s/<appender-ref ref="LSConsole" \/>/<!-- <appender-ref ref="LSConsole" \/> -->/' \
-e '/<logger name="LightstreamerProxyAdapters/,+2s/<appender-ref ref="LSConsole" \/>/<!-- <appender-ref ref="LSConsole" \/> -->/' \
- conf/lightstreamer_log_conf.xml \
-# Add new user and group
- && groupadd -r -g 10000 lightstreamer \
- && useradd --no-log-init -r -g lightstreamer -u 10000 lightstreamer \
-# Change ownership of the lightstreamer folder
- && chown -R lightstreamer:lightstreamer ../lightstreamer \
-# Finally, remove no longer needed files
- && rm Lightstreamer.tar.gz Lightstreamer.tar.gz.asc
-
-USER lightstreamer
-
-# Export TCP port 8080
+ conf/lightstreamer_log_conf.xml; \
+# Remove no longer needed files
+ rm Lightstreamer.tar.gz Lightstreamer.tar.gz.asc; \
+ gpgconf --kill all; \
+ rm -rf "$GNUPGHOME"; \
+ rm -rf /var/lib/apt/lists/*; \
+# Create a non-root user and group (UID/GID 10000) as the default runtime identity
+ groupadd -g 10000 lightstreamer; \
+ useradd --no-log-init -M -s /usr/sbin/nologin -g lightstreamer -u 10000 lightstreamer; \
+# Group-owned by root (GID 0) and g=u so OpenShift's arbitrary UID (always in
+# root group) can read/write. Harmless on plain Docker (user 10000 still owns
+# the files and gets the same permissions via the user bits).
+ chown -R lightstreamer:root /lightstreamer; \
+ chmod -R g=u /lightstreamer;
+
+USER 10000:10000
+
EXPOSE 8080
-# Set the final working dir
WORKDIR /lightstreamer/bin/unix-like
-# Start the server
CMD ["./LS.sh", "run"]
\ No newline at end of file
diff --git a/lightstreamer_base/Dockerfile b/lightstreamer_base/Dockerfile
new file mode 100644
index 0000000..bc18b9a
--- /dev/null
+++ b/lightstreamer_base/Dockerfile
@@ -0,0 +1,61 @@
+#
+# NOTE: THIS DOCKERFILE IS GENERATED VIA "update.sh"
+#
+# PLEASE DO NOT EDIT IT DIRECTLY.
+#
+
+# "Base" edition — same runtime as the full image, but with all content that
+# downstream images are expected to provide themselves removed: factory config
+# XMLs, welcome page, welcome-adapter resources, and PDF documentation.
+# The sed step that rewrites conf/lightstreamer_log_conf.xml is dropped too,
+# since the file it targets is stripped a moment later.
+
+FROM eclipse-temurin:25-jdk
+LABEL org.opencontainers.image.authors="Lightstreamer Server Development Team <support@lightstreamer.com>"
+ENV LIGHTSTREAMER_VERSION=7.4.8
+
+ARG LIGHTSTREAMER_URL_DOWNLOAD=https://lightstreamer.com/distros/ls-server/7.4.8/Lightstreamer-7.4.8.tar.gz
+ARG FINGERPRINT=9B90BFD14309C7DA5EF58D7D4A8C08966F29B4D2
+
+WORKDIR /lightstreamer
+
+RUN set -eux; \
+ apt-get update && apt-get install -y --no-install-recommends curl gnupg; \
+# Download the package from the Lightstreamer site
+ curl -fSL -o Lightstreamer.tar.gz ${LIGHTSTREAMER_URL_DOWNLOAD}; \
+ curl -fSL -o Lightstreamer.tar.gz.asc ${LIGHTSTREAMER_URL_DOWNLOAD}.asc; \
+# Import Lightstreamer's public key and verify the signature of the downloaded package
+ GNUPGHOME="$(mktemp -d)"; \
+ export GNUPGHOME; \
+ gpg --batch --keyserver hkps://keys.openpgp.org --recv-keys "${FINGERPRINT}"; \
+ gpg --batch --verify Lightstreamer.tar.gz.asc Lightstreamer.tar.gz; \
+# Unpack
+ tar -xf Lightstreamer.tar.gz --strip-components=1; \
+# Strip content that downstream images are expected to provide themselves.
+ rm -rf docs pages adapters/welcome_res; \
+ rm -f conf/*.xml; \
+ rm -rf bin/unix-like/install; \
+ rm -rf bin/windows; \
+# Remove no longer needed files
+ rm Lightstreamer.tar.gz Lightstreamer.tar.gz.asc; \
+ gpgconf --kill all; \
+ rm -rf "$GNUPGHOME"; \
+ rm -rf /var/lib/apt/lists/*; \
+# Create a non-root user and group (UID/GID 10000) as the default runtime identity
+ groupadd -g 10000 lightstreamer; \
+ useradd --no-log-init -M -s /usr/sbin/nologin -g lightstreamer -u 10000 lightstreamer; \
+# Group-owned by root (GID 0) and g=u so OpenShift's arbitrary UID (always in
+# root group) can read/write. Downstream images that add content (conf/,
+# adapters/) should apply the same pattern to their own additions.
+ chown -R lightstreamer:root /lightstreamer; \
+ chmod -R g=u /lightstreamer
+
+USER 10000:10000
+
+EXPOSE 8080
+
+WORKDIR /lightstreamer/bin/unix-like
+
+# Downstream images MUST provide their own conf/*.xml (and any adapters they
+# need) before the container can start.
+CMD ["./LS.sh", "run"]
diff --git a/lightstreamer_latest/Dockerfile b/lightstreamer_latest/Dockerfile
index cf0d2ec..8c92914 100644
--- a/lightstreamer_latest/Dockerfile
+++ b/lightstreamer_latest/Dockerfile
@@ -1,49 +1,55 @@
-# Set the base image
-FROM eclipse-temurin:25-jdk
-
-LABEL maintainer="Lightstreamer Server Development Team <support@lightstreamer.com>"
-
-# Add gpg, which is missing in the eclipse-temurin image
-RUN apt-get -y update \
- && apt-get -y install gnupg \
- && apt-get -y install curl \
- && rm -rf /var/lib/apt/lists/*
-
-# Import Lighstreamer's public key
-RUN gpg --batch --keyserver hkp://keyserver.ubuntu.com --recv-keys 9B90BFD14309C7DA5EF58D7D4A8C08966F29B4D2
+#
+# NOTE: THIS DOCKERFILE IS GENERATED VIA "update.sh"
+#
+# PLEASE DO NOT EDIT IT DIRECTLY.
+#
-# Set environment variables to identify the right Lightstreamer version and edition
+FROM eclipse-temurin:25-jdk
+LABEL org.opencontainers.image.authors="Lightstreamer Server Development Team <support@lightstreamer.com>"
ENV LIGHTSTREAMER_VERSION=7.4.8
-ENV LIGHTSTREAMER_URL_DOWNLOAD=https://lightstreamer.com/distros/ls-server/${LIGHTSTREAMER_VERSION}/Lightstreamer-${LIGHTSTREAMER_VERSION}.tar.gz
-
-# Download the package from the Lightstreamer site, verify the signature, and unpack
-RUN set -ex; \
- mkdir /lightstreamer && cd /lightstreamer \
- && curl -fSL -o Lightstreamer.tar.gz ${LIGHTSTREAMER_URL_DOWNLOAD} \
- && curl -fSL -o Lightstreamer.tar.gz.asc ${LIGHTSTREAMER_URL_DOWNLOAD}.asc \
- && gpg --batch --verify Lightstreamer.tar.gz.asc Lightstreamer.tar.gz \
- && tar -xvf Lightstreamer.tar.gz --strip-components=1 \
+
+ARG LIGHTSTREAMER_URL_DOWNLOAD=https://lightstreamer.com/distros/ls-server/7.4.8/Lightstreamer-7.4.8.tar.gz
+ARG FINGERPRINT=9B90BFD14309C7DA5EF58D7D4A8C08966F29B4D2
+
+WORKDIR /lightstreamer
+
+RUN set -eux; \
+ apt-get update; \
+ apt-get install -y --no-install-recommends curl gnupg; \
+# Download the package from the Lightstreamer site
+ curl -fSL -o Lightstreamer.tar.gz ${LIGHTSTREAMER_URL_DOWNLOAD}; \
+ curl -fSL -o Lightstreamer.tar.gz.asc ${LIGHTSTREAMER_URL_DOWNLOAD}.asc; \
+# Import Lightstreamer's public key and verify the signature of the downloaded package
+ GNUPGHOME="$(mktemp -d)"; \
+ export GNUPGHOME; \
+ gpg --batch --keyserver hkps://keys.openpgp.org --recv-keys "${FINGERPRINT}"; \
+ gpg --batch --verify Lightstreamer.tar.gz.asc Lightstreamer.tar.gz; \
+# Unpack
+ tar -xf Lightstreamer.tar.gz --strip-components=1; \
# Adjust the logging configuration in order to log only on standard output
- && sed -i -e 's/<appender-ref ref="LSDailyRolling" \/>/<appender-ref ref="LSConsole" \/>/' \
+ sed -i -e 's/<appender-ref ref="LSDailyRolling" \/>/<appender-ref ref="LSConsole" \/>/' \
-e '/<logger name="LightstreamerLogger.init/,+2s/<appender-ref ref="LSConsole" \/>/<!-- <appender-ref ref="LSConsole" \/> -->/' \
-e '/<logger name="LightstreamerLogger.license/,+2s/<appender-ref ref="LSConsole" \/>/<!-- <appender-ref ref="LSConsole" \/> -->/' \
-e '/<logger name="LightstreamerProxyAdapters/,+2s/<appender-ref ref="LSConsole" \/>/<!-- <appender-ref ref="LSConsole" \/> -->/' \
- conf/lightstreamer_log_conf.xml \
-# Add new user and group
- && groupadd -r -g 10000 lightstreamer \
- && useradd --no-log-init -r -g lightstreamer -u 10000 lightstreamer \
-# Change ownership of the lightstreamer folder
- && chown -R lightstreamer:lightstreamer ../lightstreamer \
-# Finally, remove no longer needed files
- && rm Lightstreamer.tar.gz Lightstreamer.tar.gz.asc
-
-USER lightstreamer
-
-# Export TCP port 8080
+ conf/lightstreamer_log_conf.xml; \
+# Remove no longer needed files
+ rm Lightstreamer.tar.gz Lightstreamer.tar.gz.asc; \
+ gpgconf --kill all; \
+ rm -rf "$GNUPGHOME"; \
+ rm -rf /var/lib/apt/lists/*; \
+# Create a non-root user and group (UID/GID 10000) as the default runtime identity
+ groupadd -g 10000 lightstreamer; \
+ useradd --no-log-init -M -s /usr/sbin/nologin -g lightstreamer -u 10000 lightstreamer; \
+# Group-owned by root (GID 0) and g=u so OpenShift's arbitrary UID (always in
+# root group) can read/write. Harmless on plain Docker (user 10000 still owns
+# the files and gets the same permissions via the user bits).
+ chown -R lightstreamer:root /lightstreamer; \
+ chmod -R g=u /lightstreamer;
+
+USER 10000:10000
+
EXPOSE 8080
-# Set the final working dir
WORKDIR /lightstreamer/bin/unix-like
-# Start the server
CMD ["./LS.sh", "run"]
\ No newline at end of fileRelevant Maintainers:
|
|
Just to make sure, are all these older lightstreamer versions still actively supported? ie, if there's a security issue, will they have a new release? |
Typically, only the latest version is actively supported and will receive updates in case of security issues. However, this may vary based on specific customer needs. |
|
Ah, so in that case, all those older versions should be removed 😅 As a reminder / supplementary note, removing tags here will remove them from the "Supported" section on the Hub readme (and will prevent us from spending cycles rebuilding them on the official build servers), but the tags will still be available to users who want them. (See https://github.com/docker-library/official-images#library-definition-files for more detail on this.) |
|
Thanks @tianon for clarifying. In the next PR we will remove no longer supported tags. |
Refactor of the entire matrix. Highlights:
docker pullwill 404.<mm>/<runtime>/temurin-<os>/, which lets us publish explicit-OS tag variants (-noble,-jammy) instead of relying on Temurin's floating default.temurin-noble(previously they used Temurin's unpinned base). Same JDK, forward-compatible OS pin.-baseedition (base,<ver>-<runtime>-temurin-<os>-base, etc.) provides a minimal image with factory config stripped, intended for downstream to layer their own conf/adapters.-temurin(no-OS) alias family for backwards compatibility.Maintainers:list.