有什么方法可以在docker build
而非docker hub的情况下从私有(private)注册表中提取图像?
我部署了一个私有(private)注册表,我希望能够避免在Dockerfile的ip:port
指令中命名其特定的FROM
。我期待docker build
选项或docker环境变量来更改默认注册表。
最佳答案
我在2019年面临同样的问题。我使用参数(ARG)解决了这个问题。
https://docs.docker.com/engine/reference/builder/#understand-how-arg-and-from-interact
使用参数可以设置可以在FROM行中使用的可选参数(具有默认值)。
Dockerfile-project-dev
ARG REPO_LOCATION=privaterepo.company.net/
ARG BASE_VERSION=latest
FROM ${REPO_LOCATION}project/base:${BASE_VERSION}
...
对于我的用例,我通常想从私有(private)存储库中提取信息,但是如果我正在使用Dockerfile,我可能希望能够在自己的计算机上从镜像进行构建,而无需修改Dockerfile中的FROM行。 。要告诉Docker在构建时在本地计算机上搜索镜像,我可以这样做:
docker build -t project/dev:latest -f ./Dockerfile-project-dev --build-arg REPO_LOCATION='' .
关于docker - 在Docker构建期间从私有(private)存储库中提取Docker镜像?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/30908845/