diff --git a/src/prefect/environments/storage/docker.py b/src/prefect/environments/storage/docker.py index ef108236bab9..57cb075a01a3 100644 --- a/src/prefect/environments/storage/docker.py +++ b/src/prefect/environments/storage/docker.py @@ -102,17 +102,20 @@ def __init__( else: # create an image from python:*-slim directly self.base_image = "python:{}-slim".format(python_version) - self.extra_commands.extend( - [ - "apt update && apt install -y gcc git && rm -rf /var/lib/apt/lists/*", - "pip install git+https://github.com/PrefectHQ/prefect.git@{}#egg=prefect[kubernetes]".format( - self.prefect_version - ), - ] + self.extra_commands.append( + "apt update && apt install -y gcc git && rm -rf /var/lib/apt/lists/*", ) else: self.base_image = base_image + # we should always try to install prefect, unless it is already installed. We can't determine this until + # image build time. + self.extra_commands.append( + "pip show prefect || pip install git+https://github.com/PrefectHQ/prefect.git@{}#egg=prefect[kubernetes]".format( + self.prefect_version + ), + ) + not_absolute = [ file_path for file_path in self.files if not os.path.isabs(file_path) ] diff --git a/tests/environments/storage/test_docker_storage.py b/tests/environments/storage/test_docker_storage.py index 3ab72d83f5a6..37ec585353e2 100644 --- a/tests/environments/storage/test_docker_storage.py +++ b/tests/environments/storage/test_docker_storage.py @@ -316,7 +316,7 @@ def test_create_dockerfile_from_base_image(): "master", ( "FROM python:3.6-slim", - "pip install git+https://github.com/PrefectHQ/prefect.git@master", + "pip show prefect || pip install git+https://github.com/PrefectHQ/prefect.git@master", ), ), ( @@ -324,7 +324,7 @@ def test_create_dockerfile_from_base_image(): ( "FROM python:3.6-slim", "apt update && apt install -y gcc git && rm -rf /var/lib/apt/lists/*", - "pip install git+https://github.com/PrefectHQ/prefect.git@424be6b5ed8d3be85064de4b95b5c3d7cb665510#egg=prefect[kubernetes]", + "pip show prefect || pip install git+https://github.com/PrefectHQ/prefect.git@424be6b5ed8d3be85064de4b95b5c3d7cb665510#egg=prefect[kubernetes]", ), ), ],