diff --git a/modal/image.py b/modal/image.py index 7175cdcde..1d21c78fa 100644 --- a/modal/image.py +++ b/modal/image.py @@ -2013,8 +2013,12 @@ def env(self, vars: dict[str, str]) -> "_Image": """ def build_dockerfile(version: ImageBuilderVersion) -> DockerfileSpec: - commands = ["FROM base"] + [f"ENV {key}={shlex.quote(val)}" for (key, val) in vars.items()] - return DockerfileSpec(commands=commands, context_files={}) + try: + env_commands = [f"ENV {key}={shlex.quote(val)}" for (key, val) in vars.items()] + except TypeError: + non_str_keys = [key for key, val in vars.items() if not isinstance(val, str)] + raise InvalidError(f"Environment variables must be strings. Invalid keys: {non_str_keys}") + return DockerfileSpec(commands=["FROM base"] + env_commands, context_files={}) return _Image._from_args( base_images={"base": self},