You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@flink.apache.org by "Chesnay Schepler (Jira)" <ji...@apache.org> on 2020/07/24 09:36:00 UTC

[jira] [Commented] (FLINK-16260) Add docker images based on Java 11

    [ 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)