mirror of
https://github.com/darlinghq/darling-openjdk.git
synced 2025-03-02 21:15:52 +00:00
8221342: [TESTBUG] Generate Dockerfile for docker testing
Dockerfile is generated; introduced properties to specify custom base image Reviewed-by: sgehwolf, dholmes, jiefu
This commit is contained in:
parent
201cdc50f9
commit
7f9103968f
@ -1,8 +0,0 @@
|
||||
FROM oraclelinux:7.6
|
||||
MAINTAINER mikhailo.seledtsov@oracle.com
|
||||
|
||||
COPY /jdk /jdk
|
||||
|
||||
ENV JAVA_HOME=/jdk
|
||||
|
||||
CMD ["/bin/bash"]
|
@ -1,8 +0,0 @@
|
||||
# Use generic ubuntu Linux on AArch64
|
||||
FROM aarch64/ubuntu
|
||||
|
||||
COPY /jdk /jdk
|
||||
|
||||
ENV JAVA_HOME=/jdk
|
||||
|
||||
CMD ["/bin/bash"]
|
@ -1,10 +0,0 @@
|
||||
# test on x86_64 uses Oracle Linux but we do not have this for ppc64le
|
||||
# so use some other Linux where OpenJDK works
|
||||
# FROM oraclelinux:7.2
|
||||
FROM ppc64le/ubuntu
|
||||
|
||||
COPY /jdk /jdk
|
||||
|
||||
ENV JAVA_HOME=/jdk
|
||||
|
||||
CMD ["/bin/bash"]
|
@ -1,7 +0,0 @@
|
||||
FROM s390x/ubuntu
|
||||
|
||||
COPY /jdk /jdk
|
||||
|
||||
ENV JAVA_HOME=/jdk
|
||||
|
||||
CMD ["/bin/bash"]
|
@ -1,8 +0,0 @@
|
||||
FROM oraclelinux:7.6
|
||||
MAINTAINER mikhailo.seledtsov@oracle.com
|
||||
|
||||
COPY /jdk /jdk
|
||||
|
||||
ENV JAVA_HOME=/jdk
|
||||
|
||||
CMD ["/bin/bash"]
|
@ -1,8 +0,0 @@
|
||||
# Use generic ubuntu Linux on AArch64
|
||||
FROM aarch64/ubuntu
|
||||
|
||||
COPY /jdk /jdk
|
||||
|
||||
ENV JAVA_HOME=/jdk
|
||||
|
||||
CMD ["/bin/bash"]
|
@ -1,10 +0,0 @@
|
||||
# test on x86_64 uses Oracle Linux but we do not have this for ppc64le
|
||||
# so use some other Linux where OpenJDK works
|
||||
# FROM oraclelinux:7.2
|
||||
FROM ppc64le/ubuntu
|
||||
|
||||
COPY /jdk /jdk
|
||||
|
||||
ENV JAVA_HOME=/jdk
|
||||
|
||||
CMD ["/bin/bash"]
|
@ -1,7 +0,0 @@
|
||||
FROM s390x/ubuntu
|
||||
|
||||
COPY /jdk /jdk
|
||||
|
||||
ENV JAVA_HOME=/jdk
|
||||
|
||||
CMD ["/bin/bash"]
|
@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright (c) 2017, 2018, Oracle and/or its affiliates. All rights reserved.
|
||||
* Copyright (c) 2017, 2019, Oracle and/or its affiliates. All rights reserved.
|
||||
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||
*
|
||||
* This code is free software; you can redistribute it and/or modify it
|
||||
@ -35,7 +35,6 @@ import java.nio.file.attribute.BasicFileAttributes;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Collections;
|
||||
import java.util.List;
|
||||
import jdk.test.lib.Platform;
|
||||
import jdk.test.lib.Utils;
|
||||
import jdk.test.lib.process.OutputAnalyzer;
|
||||
import jdk.test.lib.process.ProcessTools;
|
||||
@ -126,11 +125,6 @@ public class DockerTestUtils {
|
||||
if (Files.exists(buildDir)) {
|
||||
throw new RuntimeException("The docker build directory already exists: " + buildDir);
|
||||
}
|
||||
// check for the existance of a platform specific docker file as well
|
||||
String platformSpecificDockerfile = dockerfile + "-" + Platform.getOsArch();
|
||||
if (Files.exists(Paths.get(Utils.TEST_SRC, platformSpecificDockerfile))) {
|
||||
dockerfile = platformSpecificDockerfile;
|
||||
}
|
||||
|
||||
Path jdkSrcDir = Paths.get(Utils.TEST_JDK);
|
||||
Path jdkDstDir = buildDir.resolve("jdk");
|
||||
@ -158,8 +152,9 @@ public class DockerTestUtils {
|
||||
public static void
|
||||
buildDockerImage(String imageName, Path dockerfile, Path buildDir) throws Exception {
|
||||
|
||||
// Copy docker file to the build dir
|
||||
Files.copy(dockerfile, buildDir.resolve("Dockerfile"));
|
||||
generateDockerFile(buildDir.resolve("Dockerfile"),
|
||||
DockerfileConfig.getBaseImageName(),
|
||||
DockerfileConfig.getBaseImageVersion());
|
||||
|
||||
// Build the docker
|
||||
execute("docker", "build", "--no-cache", "--tag", imageName, buildDir.toString())
|
||||
@ -250,6 +245,18 @@ public class DockerTestUtils {
|
||||
}
|
||||
|
||||
|
||||
private static void generateDockerFile(Path dockerfile, String baseImage,
|
||||
String baseImageVersion) throws Exception {
|
||||
String template =
|
||||
"FROM %s:%s\n" +
|
||||
"COPY /jdk /jdk\n" +
|
||||
"ENV JAVA_HOME=/jdk\n" +
|
||||
"CMD [\"/bin/bash\"]\n";
|
||||
String dockerFileStr = String.format(template, baseImage, baseImageVersion);
|
||||
Files.writeString(dockerfile, dockerFileStr);
|
||||
}
|
||||
|
||||
|
||||
private static class CopyFileVisitor extends SimpleFileVisitor<Path> {
|
||||
private final Path src;
|
||||
private final Path dst;
|
||||
|
@ -0,0 +1,75 @@
|
||||
/*
|
||||
* Copyright (c) 2019, Oracle and/or its affiliates. All rights reserved.
|
||||
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||
*
|
||||
* This code is free software; you can redistribute it and/or modify it
|
||||
* under the terms of the GNU General Public License version 2 only, as
|
||||
* published by the Free Software Foundation.
|
||||
*
|
||||
* This code is distributed in the hope that it will be useful, but WITHOUT
|
||||
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
||||
* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
|
||||
* version 2 for more details (a copy is included in the LICENSE file that
|
||||
* accompanied this code).
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License version
|
||||
* 2 along with this work; if not, write to the Free Software Foundation,
|
||||
* Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
|
||||
*
|
||||
* Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
|
||||
* or visit www.oracle.com if you need additional information or have any
|
||||
* questions.
|
||||
*/
|
||||
|
||||
package jdk.test.lib.containers.docker;
|
||||
|
||||
import jdk.test.lib.Platform;
|
||||
|
||||
// Use the following properties to specify docker base image at test execution time:
|
||||
// Image name: jdk.test.docker.image.name
|
||||
// Image version: jdk.test.docker.image.version
|
||||
// Usage:
|
||||
// jtreg -Djdk.test.docker.image.name=<BASE_IMAGE_NAME> -Djdk.test.docker.image.version=<BASE_IMAGE_VERSION> test/hotspot/jtreg/runtime/containers/docker/
|
||||
// E.g.:
|
||||
// jtreg -Djdk.test.docker.image.name=ubuntu -Djdk.test.docker.image.version=latest test/hotspot/jtreg/runtime/containers/docker/
|
||||
// Using make:
|
||||
// make test TEST="test/hotspot/jtreg/runtime/containers/docker" JTREG="JAVA_OPTIONS=-Djdk.test.docker.image.name=ubuntu -Djdk.test.docker.image.version=latest"
|
||||
// Note: base image version should not be an empty string. Use "latest" to get the latest version.
|
||||
|
||||
public class DockerfileConfig {
|
||||
static String getBaseImageName() {
|
||||
String name = System.getProperty("jdk.test.docker.image.name");
|
||||
if (name != null) {
|
||||
System.out.println("DockerfileConfig: using custom image name: " + name);
|
||||
return name;
|
||||
}
|
||||
|
||||
switch (Platform.getOsArch()) {
|
||||
case "aarch64":
|
||||
return "aarch64/ubuntu";
|
||||
case "ppc64le":
|
||||
return "ppc64le/ubuntu";
|
||||
case "s390x":
|
||||
return "s390x/ubuntu";
|
||||
default:
|
||||
return "oraclelinux";
|
||||
}
|
||||
}
|
||||
|
||||
static String getBaseImageVersion() {
|
||||
String version = System.getProperty("jdk.test.docker.image.version");
|
||||
if (version != null) {
|
||||
System.out.println("DockerfileConfig: using custom image version: " + version);
|
||||
return version;
|
||||
}
|
||||
|
||||
switch (Platform.getOsArch()) {
|
||||
case "aarch64":
|
||||
case "ppc64le":
|
||||
case "s390x":
|
||||
return "latest";
|
||||
default:
|
||||
return "7.6";
|
||||
}
|
||||
}
|
||||
}
|
Loading…
x
Reference in New Issue
Block a user