[
https://issues.apache.org/jira/browse/BEAM-7474?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16865975#comment-16865975
]
Valentyn Tymofieiev commented on BEAM-7474:
-------------------------------------------
[~frederik], you can test your changes by building a container image, for
example, ./gradlew :sdks:python:container:py3:docker, and running
ValidatesContainer suites, for example:
https://github.com/apache/beam/blob/7e633f34e3a8ee68274d2752382fb6a52b5e9b4a/.test-infra/jenkins/job_PostCommit_Python_ValidatesContainer_Dataflow.groovy#L25.
The latter suite currently does not pass due to BEAM-7063, but you could still
try to exercise the container with Portable Python Precommit suite, see
https://github.com/apache/beam/pull/8745/files#diff-08a37e2757c9df3f0e1d0ba3e2121eecR101.
Portable Python Precommit suite is currently flaky
(https://issues.apache.org/jira/browse/BEAM-7546), so I don't think we should
run it for all of 3.5 - 3.7, but we could switch Portable Python Precommit from
Python 3.5 to 3.7 after this issue is completed and/or to help test the changes
being made here.
> Add SDK harness containers for Py 3.6, Py 3.7
> ---------------------------------------------
>
> Key: BEAM-7474
> URL: https://issues.apache.org/jira/browse/BEAM-7474
> Project: Beam
> Issue Type: Sub-task
> Components: sdk-py-harness
> Reporter: Valentyn Tymofieiev
> Assignee: Frederik Bode
> Priority: Major
>
> Currently we can build a Py3-compatible container image with gradle by
> running:
> ./gradlew :sdks:python:container:py3:docker
> This builds a docker container image like:
> valentyn-docker-apache.bintray.io/beam/python3
> The code for this is defined in:
> https://github.com/apache/beam/blob/ae60a72b03f3a2b6b2a06667ec1868a7acc8e38f/sdks/python/container/py3/build.gradle#L48
> To support portable runners that use a container (e.g. Flink) on multiple
> versions of Python 3, we should make it possible to build Python
> 3-compatible SDK harness containers bundled with any desired python version.
> We could have several gradle projects:
> :sdks:python:container:py35:docker
> :sdks:python:container:py36:docker
> :sdks:python:container:py37:docker
> and several Dockerfiles to support this:
>
> sdks/python/container/py35/Dockerfile
> sdks/python/container/py36/Dockerfile
> sdks/python/container/py37/Dockerfile
> The only difference right now would be the base image used in FROM field in
> Dockerfile.
> Alternatively, we could have one parameterized Dockerfile that starts with :
> {code}
> ARG BASE_IMAGE
> FROM $BASE_IMAGE
> ...
> {code}
> I think the latter approach, may result in complications later if these
> containers will need to diverge down the road.
> cc'ing a few folks who may have some feedback on this: [~angoenka] [~mxm]
> [~robertwb] [~Juta] [~frederik].
--
This message was sent by Atlassian JIRA
(v7.6.3#76005)