[
https://issues.apache.org/jira/browse/FLINK-16260?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17164315#comment-17164315
]
Chesnay Schepler commented on FLINK-16260:
------------------------------------------
Before we add this I'd first like to rework the bashbrew scripts a bit first.
IMO we have to encode too much release-specific information on the master
branch:
h3. What is a release?
A release consists of 1 or more images, where each image consists of:
- a DOCKERFILE file, describing the contents of the image
- a docker-entrypoint.sh, the script that is called to start processes
The files are contained in a directory following this pattern:
<short-major-version>/scala_<scala-version>-<linux-distribution>, e.g.,
1.11/scala_2.12-debian
For each image, we publish a meta-data entry to
https://github.com/docker-library/official-images, that looks like this:
Tags: 1.11.0-scala_2.12, 1.11-scala_2.12, scala_2.12, 1.11.0, 1.11, latest
Architectures: amd64
GitCommit: 949e445006c4fc288813900c264847d23d3e33d4
Directory: 1.11/scala_2.12-debian
h3. How does a release work?
The files are generated on the respective dev-<short-major-version> branch,
copied over to the master branch (which serves as a publishing area), and a
script is run to generate the manifest containing the meta-data for all
releases.
h3. What is the problem?
In order to generate the meta-data entry, the scripts on the master branch need
to know a few things; like which Flink version it is, what scala version it was
built for, which java version it supports...
This information is not readily provided by the release files; some of them are
hard-coded into the master scripts (like scala versions or used linux
distributions), others are parsed from the DOCKERFILE (like the Flink version),
and others are derived via docker magic (supported architectures, which are
dependent on the base image we are using).
The issue is that a) several version-specific information is defined in the
master scripts and b) parsing data from the DOCKERFILE implies that this
information must be able to be parsed from the DOCKERFILE, although there might
not be a technical reason for this information to be present.
The problem is ultimately that when we create a new variant of a release for
some Flink version (like a new scala version), we have to touch something in
the master scripts.
h3. What is the proposal?
Generate a meta-data file on the dev-X branches, that is used by the master
scripts to assemble the meta-data entry.
This file would contain the:
- Flink version
- Scala version
- Java version
- linux distribution
- tags (except latest)
These bits are already readily available when the release files are assembled.
The architecture will still have to be derived via docker magic.
The master scripts parse the information from this file, and assemble the final
entry. The only release-specific information that should remain is which
release should be tagged as latest.
The goal is ultimately that we can create a new variant of a release for some
Flink version, without having to touch anything in the master scripts.
> Add docker images based on Java 11
> ----------------------------------
>
> Key: FLINK-16260
> URL: https://issues.apache.org/jira/browse/FLINK-16260
> Project: Flink
> Issue Type: New Feature
> Components: Dockerfiles
> Reporter: Ismaël Mejía
> Assignee: Ismaël Mejía
> Priority: Major
> Labels: pull-request-available
> Time Spent: 10m
> Remaining Estimate: 0h
>
> Since 1.10.0 supports Java 11, we can add a version of the docker image based
> on Java 11
> Feature [requested in our old issue
> tracker|https://github.com/docker-flink/docker-flink/issues/97] and moved here
--
This message was sent by Atlassian Jira
(v8.3.4#803005)