JFrog CLI执行build-docker-create(bdc)命令失败求助
解决jf rt bdc命令"no such file or directory"错误的完整示例
核心问题在于你混淆了--image-file参数的作用:这个参数是用来指定本地磁盘上的Docker镜像tar归档文件,而不是Artifactory仓库内的镜像路径。你之前传入仓库内的镜像路径(带@符号),CLI自然会找不到本地文件,触发错误。
下面分两种常见场景给出完整可用命令:
场景1:基于本地镜像tar文件创建构建
先把本地Docker镜像导出为tar文件,再用bdc命令关联:
# 1. 导出本地镜像到tar文件 docker save my-local-image:latest -o /home/user/my-image.tar # 2. 执行build-docker-create命令 jf rt bdc \ --server-id my-artifactory-server \ --build-name my-docker-build \ --build-number 1.0.0 \ --image-file /home/user/my-image.tar \ --docker-repo docker-local \ --target-image my-project-image:1.0.0
场景2:基于Artifactory仓库内的现有镜像创建构建
如果要关联Artifactory中已存在的镜像,无需使用--image-file,改用--docker-image参数指定仓库内的镜像完整路径(支持带标签或摘要):
jf rt bdc \ --server-id my-artifactory-server \ --build-name my-docker-build \ --build-number 1.0.0 \ --docker-image docker-local/my-existing-image:latest@sha256:abcdef1234567890abcdef1234567890abcdef1234567890abcdef1234567890 \ --docker-repo docker-local
额外排查/配置提示
- 用
jf rt s命令确认你指定的--server-id是已配置好的Artifactory服务器ID - 若需要构建完成后自动推送镜像到仓库,添加
--push参数即可 - 要查看更详细的执行日志,可在命令前添加环境变量开启DEBUG模式:
JFROG_CLI_LOG_LEVEL=DEBUG jf rt bdc \ --server-id my-artifactory-server \ --build-name my-docker-build \ --build-number 1.0.0 \ --docker-image docker-local/my-existing-image:latest
内容的提问来源于stack exchange,提问作者Nira Shavitt
相关产品推荐
相关产品推荐

