如何在Tiltfile中引用同级目录下的自定义Dockerfile?
解决Tilt docker_build无法找到同级目录自定义Dockerfile的问题
问题出在Tilt的docker_build命令中,dockerfile参数的相对路径是相对于Tiltfile所在目录解析的,而非你指定的context目录(即../foo/)。你原本的写法里,dockerfile='Dockerfile.custom'会让Tilt在Tiltfile所在目录查找文件,而非目标的../foo/目录。
解决方法有两种:
直接指定
dockerfile相对于Tiltfile的完整路径:docker_build('foo-image', '../foo/', dockerfile='../foo/Dockerfile.custom')这种写法明确指向
../foo/目录下的自定义Dockerfile,Tilt就能准确定位到文件。用
path.join动态构建路径(推荐,路径复杂时更不易出错):# 定义context目录和自定义Dockerfile路径 context_dir = '../foo/' custom_dockerfile = path.join(context_dir, 'Dockerfile.custom') docker_build('foo-image', context_dir, dockerfile=custom_dockerfile)借助Tilt内置的
path.join函数拼接路径,能自动适配不同系统的路径分隔符,避免手动写路径出错。
补充说明:如果自定义Dockerfile就在context目录下,且文件名是默认的Dockerfile,则无需指定dockerfile参数;但因为你用了自定义文件名,所以必须明确给出完整的相对路径。
内容的提问来源于stack exchange,提问作者Hernan Veiras
相关产品推荐
相关产品推荐

