Hi Hannah, +1 to standardize .dev suffixes across all SDKs.
Whether to pull or not to pull was recently discussed in [1]. My personal preference would be to pull images before starting the containers, and instructing users who want to customize containers to tag them with a new tag, such as :customized-2.17.0. If we need to revisit this conversation, consider continuing it in [1] to keep the conversation in one place. [1] https://lists.apache.org/thread.html/07131e314e229ec60100eaa2c0cf6dfc206bf2b0f78c3cee9ebb0bda@%3Cdev.beam.apache.org%3E Thanks, Valentyn On Fri, Jan 10, 2020 at 9:52 AM Hannah Jiang <[email protected]> wrote: > >> This has a minor downside for the users who are using unreleased > versions. They need to build a local image first before using docker to run. > > Isn't that the current behavior? > > Our current behavior is pull & run. So in case both local and remote > images are available, the local image is getting overwritten by the remote > image. > A New approach will do run only, which will pull remote images only when > local images are not available. Since we don't deploy different images with > the same tag, we can assume the images with the same tag are always > identical, unless a user customized it with the same tag. > > This has the following advantages. > 1. pull only when needed, so reduce unnecessary traffic for users. > 2. In case a user customize the image and rebuild it with the default tag, > the local customized image is used as expected. With pull & run, remote > image, instead of the customized image, is used. > > On Thu, Jan 9, 2020 at 4:54 PM Kyle Weaver <[email protected]> wrote: > >> > This has a minor downside for the users who are using unreleased >> versions. They need to build a local image first before using docker to run. >> >> Isn't that the current behavior? >> >> On Thu, Jan 9, 2020 at 4:48 PM Hannah Jiang <[email protected]> >> wrote: >> >>> Hi Community >>> >>> Now we are using different default tags for Python(version or >>> version.dev), Java(version-SNAPSHOT) and Go(latest). I would like to >>> clean it up and make it consistent for all languages and here is my >>> proposal. >>> >>> For the released version of SDKs, the default tag will be version >>> number. (ex: 2.17.0) >>> For the unreleased version of SDKs, the default tag will be version >>> number + '.dev'. (ex: 2.18.0.dev) >>> >>> The default tag is used 1). when we build docker images without >>> specifying a tag. 2) when we run a job with runners running on dockers with >>> default docker images. >>> >>> Additionally, Beam will always lookup images locally before pulling one >>> from remote, so the images built locally will not be overwritten by remote >>> ones. >>> >>> This has a minor downside for the users who are using unreleased >>> versions. They need to build a local image first before using docker to >>> run. I will add a clear error message to show the problem and add a link to >>> a documentation of how to create images. >>> >>> I would like to collect feedback from whoever uses dockers. Does this >>> sound good? Is there anything I am missing? >>> >>> Thanks, >>> Hannah >>> >>> >>> >>> >>> >>> >>> >>>
