Skip to content

Commit 25910d9

Browse files
authored
Base tomcat smoke test images on jdk ones (#4414)
1 parent 2f5a40d commit 25910d9

File tree

2 files changed

+27
-29
lines changed

2 files changed

+27
-29
lines changed

smoke-tests/images/servlet/build.gradle

Lines changed: 12 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -38,14 +38,13 @@ def linuxTargets = [
3838
[version: ["11.0.1"], vm: ["openj9"], jdk: ["11", "16"], war: "servlet-5.0"]
3939
],
4040
"tomcat" : [
41-
[version: ["7.0.109"], vm: ["hotspot"], jdk: ["8"], args: [tagSuffix: ""]],
42-
[version: ["7.0.109"], vm: ["openj9"], jdk: ["8"], args: [tagSuffix: "-adoptopenjdk-openj9"]],
43-
[version: ["8.5.71", "9.0.53"], vm: ["hotspot"], jdk: ["8", "11", "17"], args: [tagSuffix: ""]],
44-
// 8.5.70 and 9.0.52 are the latest tomcat images published with openj9 (and there's no openj9 image for jdk 17)
45-
[version: ["8.5.70", "9.0.52"], vm: ["openj9"], jdk: ["8", "11"], args: [tagSuffix: "-adoptopenjdk-openj9"]],
46-
[version: ["10.0.11"], vm: ["hotspot"], jdk: ["8", "11", "17"], args: [tagSuffix: ""], war: "servlet-5.0"],
47-
// 10.0.8 is the latest tomcat image published with openj9 (and there's no openj9 image for jdk 17)
48-
[version: ["10.0.8"], vm: ["openj9"], jdk: ["8", "11"], args: [tagSuffix: "-adoptopenjdk-openj9"], war: "servlet-5.0"]
41+
[version: ["7.0.109"], vm: ["hotspot", "openj9"], jdk: ["8"], args: [majorVersion: "7"]],
42+
[version: ["8.5.71"], vm: ["hotspot"], jdk: ["8", "11", "17"], args: [majorVersion: "8"]],
43+
[version: ["8.5.71"], vm: ["openj9"], jdk: ["8", "11"], args: [majorVersion: "8"]],
44+
[version: ["9.0.53"], vm: ["hotspot"], jdk: ["8", "11", "17"], args: [majorVersion: "9"]],
45+
[version: ["9.0.53"], vm: ["openj9"], jdk: ["8", "11"], args: [majorVersion: "9"]],
46+
[version: ["10.0.11"], vm: ["hotspot"], jdk: ["8", "11", "17"], args: [majorVersion: "10"], war: "servlet-5.0"],
47+
[version: ["10.0.11"], vm: ["openj9"], jdk: ["8", "11"], args: [majorVersion: "10"], war: "servlet-5.0"]
4948
],
5049
"tomee" : [
5150
[version: ["7.0.0"], vm: ["hotspot"], jdk: ["8"]],
@@ -79,15 +78,7 @@ def windowsTargets = [
7978
[version: ["11.0.1"], vm: ["hotspot"], jdk: ["11", "16", "17"], dockerfile: "jetty-split", args: [sourceVersion: "11.0.1"], war: "servlet-5.0"],
8079
[version: ["11.0.1"], vm: ["openj9"], jdk: ["11", "16"], dockerfile: "jetty-split", args: [sourceVersion: "11.0.1"], war: "servlet-5.0"]
8180
],
82-
"tomcat" : [
83-
[version: ["7.0.109"], vm: ["hotspot", "openj9"], jdk: ["8"], args: [majorVersion: "7"]],
84-
[version: ["8.5.71"], vm: ["hotspot"], jdk: ["8", "11", "17"], args: [majorVersion: "8"]],
85-
[version: ["8.5.70"], vm: ["openj9"], jdk: ["8", "11"], args: [majorVersion: "8"]],
86-
[version: ["9.0.53"], vm: ["hotspot"], jdk: ["8", "11", "17"], args: [majorVersion: "9"]],
87-
[version: ["9.0.52"], vm: ["openj9"], jdk: ["8", "11"], args: [majorVersion: "9"]],
88-
[version: ["10.0.11"], vm: ["hotspot"], jdk: ["8", "11", "17"], args: [majorVersion: "10"], war: "servlet-5.0"],
89-
[version: ["10.0.8"], vm: ["openj9"], jdk: ["8", "11"], args: [majorVersion: "10"], war: "servlet-5.0"]
90-
],
81+
"tomcat" : linuxTargets["tomcat"],
9182
"tomee" : [
9283
[version: ["7.0.0"], vm: ["hotspot", "openj9"], jdk: ["8"]],
9384
[version: ["8.0.6"], vm: ["hotspot", "openj9"], jdk: ["8", "11"]]
@@ -108,7 +99,7 @@ def windowsTargets = [
10899
createDockerTasks(buildLinuxTestImagesTask, linuxTargets, false)
109100
createDockerTasks(buildWindowsTestImagesTask, windowsTargets, true)
110101

111-
def configureImage(Task parentTask, server, dockerfile, version, vm, jdk, warProject, Map<String, String> extraArgs, isWindows = false) {
102+
def configureImage(Task parentTask, server, dockerfile, version, vm, jdk, warProject, Map<String, String> extraArgs, boolean isWindows, String extraTag) {
112103
// Using separate build directory for different war files allows using the same app.war filename
113104
def dockerWorkingDir = new File(project.buildDir, "docker-$warProject")
114105
def dockerFileName = isWindows ? "${dockerfile}.windows.dockerfile" : "${dockerfile}.dockerfile"
@@ -125,17 +116,12 @@ def configureImage(Task parentTask, server, dockerfile, version, vm, jdk, warPro
125116
}
126117
}
127118

128-
def extraTag = findProperty("extraTag") ?: new Date().format("yyyyMMdd.HHmmSS")
129119
def vmSuffix = vm == "hotspot" ? "" : "-$vm"
130120
def image = "ghcr.io/open-telemetry/opentelemetry-java-instrumentation/smoke-test-servlet-$server:$version-jdk$jdk$vmSuffix$platformSuffix-$extraTag"
131121

132122
def jdkImage
133123
if (vm == "hotspot") {
134-
if (jdk == "15") {
135-
jdkImage = "adoptopenjdk:${jdk}-hotspot"
136-
} else {
137-
jdkImage = "eclipse-temurin:${jdk}"
138-
}
124+
jdkImage = "eclipse-temurin:${jdk}"
139125
} else if (vm == "openj9") {
140126
jdkImage = "adoptopenjdk:${jdk}-openj9"
141127
} else {
@@ -161,6 +147,7 @@ def configureImage(Task parentTask, server, dockerfile, version, vm, jdk, warPro
161147
}
162148

163149
def createDockerTasks(Task parentTask, targets, isWindows) {
150+
String extraTag = findProperty("extraTag") ?: new Date().format("yyyyMMdd.HHmmSS")
164151
Set<String> resultImages = []
165152
targets.each { server, matrices ->
166153
def smokeTestServer = findProperty('smokeTestServer')
@@ -175,7 +162,7 @@ def createDockerTasks(Task parentTask, targets, isWindows) {
175162
entry.version.forEach { version ->
176163
entry.vm.forEach { vm ->
177164
entry.jdk.forEach { jdk ->
178-
resultImages.add(configureImage(parentTask, server, dockerfile, version, vm, jdk, warProject, extraArgs, isWindows))
165+
resultImages.add(configureImage(parentTask, server, dockerfile, version, vm, jdk, warProject, extraArgs, isWindows, extraTag))
179166
}
180167
}
181168
}
Lines changed: 15 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,18 @@
1+
ARG jdkImage
12
ARG version
2-
ARG jdk
3-
ARG tagSuffix
43

5-
FROM tomcat:${version}-jdk${jdk}${tagSuffix}
4+
# Unzip in a separate container so that zip file layer is not part of final image
5+
FROM ${jdkImage} as builder
6+
ARG majorVersion
7+
ARG version
8+
9+
ADD https://archive.apache.org/dist/tomcat/tomcat-${majorVersion}/v${version}/bin/apache-tomcat-${version}.tar.gz /server.tgz
10+
RUN tar xf server.tgz && mv apache-tomcat-${version} /server && rm -rf /server/webapps && mkdir -p /server/webapps
11+
12+
FROM ${jdkImage}
13+
COPY --from=builder /server /server
14+
15+
WORKDIR /server/bin
16+
CMD /server/bin/catalina.sh run
617

7-
COPY app.war /usr/local/tomcat/webapps/
18+
COPY app.war /server/webapps/

0 commit comments

Comments
 (0)