Windows下Docker Compose构建TFServing报错:rpc error: code = Unknown desc
问题:Docker Compose部署TF Serving时提示找不到Dockerfile
问题场景
在Windows环境下部署TF Serving服务,执行docker compose up -d时出现以下错误:
failed to solve: rpc error: code = Unknown desc = failed to solve with frontend dockerfile.v0: failed to read dockerfile: open /var/lib/docker/tmp/buildkit-mount057242145/Dockerfile: no such file or directory
相关目录结构
|- tfserving | |- docker-compose.yml | |- Dockerfile | |- model.config |- model | |- 1 | | |- ... | |- 2 | | |- ... |....
Dockerfile内容
FROM tensorflow/serving EXPOSE 8601
docker-compose.yml内容
version: '3' services: tfserving: container_name: tfserving build: .. # 问题核心所在 ports: - "8601:8601" volumes: - ./model.config:/models/model.config - ../model:/models/model environment: - TENSORFLOW_SERVING_REST_API_PORT=8061 - TENSORFLOW_SERVING_MODEL_NAME=model - TENSORFLOW_MODEL_BASE_PATH=/models/model/ entrypoint: [ "bash", "-c", "tensorflow_model_server --rest_api_port=8601 --allow_version_labels_for_unavailable_models --model_config_file=/models/model.config"]
问题原因
docker-compose.yml中build字段配置为..,表示Docker会将tfserving的父目录作为构建上下文去查找Dockerfile,但实际Dockerfile存放在tfserving目录下,父目录中并没有该文件,因此触发找不到Dockerfile的错误。
解决方法
方法1:修改构建上下文为当前目录
将build字段改为.,让Docker在tfserving目录下查找Dockerfile:
services: tfserving: # 其他配置不变 build: . # 其他配置不变
方法2:保留父目录上下文,指定Dockerfile路径
如果需要以上级目录作为构建上下文(比如要直接引用上级的model目录),可以明确指定Dockerfile的相对路径:
services: tfserving: # 其他配置不变 build: context: .. dockerfile: tfserving/Dockerfile # 其他配置不变
内容的提问来源于stack exchange,提问作者Test
相关产品推荐
相关产品推荐

