Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Accommodate other container base images in testing #1109

Closed
smlambert opened this issue May 1, 2019 · 5 comments
Closed

Accommodate other container base images in testing #1109

smlambert opened this issue May 1, 2019 · 5 comments

Comments

@smlambert
Copy link
Contributor

AdoptOpenJDK currently creates Docker images on a ubuntu base, which we then pull from hub.docker and test (we currently do not trigger testing from the docker image build, but should, see #773).

When we start producing more variations of Docker images (on Debian or UBI base), we should be testing them, triggered from the Docker image build and possibly using an artifact from the upstream job or some intermediary location (rather than pulling from hub.docker or some other container store).

On build side:
docker save someImage > someImage.tar
and then archive the tar file (artifact)

From test side:
docker load --input someImage.tar
and then build the testAppImage

Currently, we parameterize the FROM statement in the Dockerfiles, not certain we need any additional parameters. Will need to try and see if any other information would be required.

Need to discuss with @dinogun and co-ordinate how we want things to look, and raise an issue/request at https://github.com/AdoptOpenJDK/openjdk-docker for the changes required there.

Also wondering if Docker image builds will every be integrated into the overall build pipelines. For now they are not, and we do not need to wait for that even if it is in plan.

@sophia-guo
Copy link
Contributor

sophia-guo commented May 14, 2019

Currently there are Docker images on Ubuntu and Alpine Linux, which are using associated tags( latest, alpine). If that is the same case when producing more variations we need to parameterize ARG IMAGE_VERSION, which is set as default 'latest' for now.

@dinogun
Copy link

dinogun commented Jun 26, 2019

A big +1 for this !

  • We are expecting to have native Alpine builds (OpenJDK built on musl instead of glibc) which can only be tested from the docker images. In this case it is not just additional testing, but we ideally need to be able to run all tests on docker images.
  • We need to be able to run a subset of the base tests (Eg headless) on the slim docker images and on the nightly docker images as well.
  • Run the extended docker only tests on all docker image variants (VM / OS / Package / Size = HotSpot/OpenJ9 / Alpine/Debian/Ubuntu/Windows / JDK/JRE / Regular/Slim).

@smlambert
Copy link
Contributor Author

Blocked by https://github.com/AdoptOpenJDK/openjdk-build/issues/1123 and need an issue in https://github.com/AdoptOpenJDK/openjdk-docker to make images available as an artifact of the docker build PRIOR to publishing to their final destination (docker hub, red hat container catalog, etc).

@smlambert
Copy link
Contributor Author

It feels like we are close to achieving this. With a series of PRs to this repo, and now with AdoptOpenJDK/openjdk-docker#345 about to land.

The docker manifest job can then trigger the scanning tool (added by AdoptOpenJDK/openjdk-docker#345) which creates artifacts that can tell a test pipeline what was published and therefore what needs to be tested.

@smlambert
Copy link
Contributor Author

I am closing this as the changes on the test side are completed.

@karianna karianna added this to the September 2020 milestone Sep 15, 2020
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

4 participants