You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
This issue is mostly documenting and describing something I noticed in the process of writing #163. I think this issue will mostly be resolved as a consequence of other related work we want to do (primarily #166, if we implement the proposed solution there), but still wanted to describe it separately for future reference.
The default image used for the Docker and AWS Batch runners (e.g. when no --image option is given) is determined by:
The environment variable override is mostly meant for automation and development contexts and can be ignored for the purposes of this issue as anyone setting it is doing so explicitly and can be assumed to know what they want. That leaves the docker.image config setting and the final fallback default of nextstrain/base.
The docker.image setting is only set and updated in normal usage when nextstrain update is run, where it tracks the latest nextstrain/base:build-* image. This leads to a consistent image used for both the local Docker and remote AWS Batch runtimes. If nextstrain update has never been run though—we don't include it in our installation instructions for example—then docker.image will be missing and the final fallback of nextstrain/base will be used. Docker will automatically download the most recent latest tag on first nextstrain build (or view) and then use that image version for all subsequent runs, which is ok. But running on AWS Batch will always track the most recent latest tag regardless of the snapshot of latest used by local Docker or previous Batch runs.
This inconsistency would be good to iron out:
If not present, then set docker.image to the latest build-* tag during nextstrain check-setup --set-default. This means in most cases the user will get a consistent image version across runtimes and some version reporting will be better (because it'll report a specific build-* tag instead of a snapshot of latest). The inconsistent behaviour still exists if --set-default is not used.
Advise nextstrain update after installation? Or have check-setup download the image (i.e. built-in update)? Though this would make the command much slower and requires some additional work to not muddy the output. Maybe not necessary.
This issue is mostly documenting and describing something I noticed in the process of writing #163. I think this issue will mostly be resolved as a consequence of other related work we want to do (primarily #166, if we implement the proposed solution there), but still wanted to describe it separately for future reference.
The default image used for the Docker and AWS Batch runners (e.g. when no
--image
option is given) is determined by:cli/nextstrain/cli/runner/docker.py
Lines 20 to 22 in c76c7b8
The environment variable override is mostly meant for automation and development contexts and can be ignored for the purposes of this issue as anyone setting it is doing so explicitly and can be assumed to know what they want. That leaves the
docker.image
config setting and the final fallback default ofnextstrain/base
.The
docker.image
setting is only set and updated in normal usage whennextstrain update
is run, where it tracks the latestnextstrain/base:build-*
image. This leads to a consistent image used for both the local Docker and remote AWS Batch runtimes. Ifnextstrain update
has never been run though—we don't include it in our installation instructions for example—thendocker.image
will be missing and the final fallback ofnextstrain/base
will be used. Docker will automatically download the most recentlatest
tag on firstnextstrain build
(orview
) and then use that image version for all subsequent runs, which is ok. But running on AWS Batch will always track the most recentlatest
tag regardless of the snapshot oflatest
used by local Docker or previous Batch runs.This inconsistency would be good to iron out:
docker.image
to the latestbuild-*
tag duringnextstrain check-setup --set-default
. This means in most cases the user will get a consistent image version across runtimes and some version reporting will be better (because it'll report a specificbuild-*
tag instead of a snapshot oflatest
). The inconsistent behaviour still exists if--set-default
is not used.docker.image
setting by implementing the proposed solution to Pull beforebuild
if explicitly using:latest
image? #166nextstrain update
after installation? Or havecheck-setup
download the image (i.e. built-inupdate
)? Though this would make the command much slower and requires some additional work to not muddy the output. Maybe not necessary.Good solutions may be related to/integrated with the other "first time setup" topic of picking a default runner (#164).
The text was updated successfully, but these errors were encountered: