如何使用 docker-compose 标记 docker 图像
How to tag docker image with docker-compose
我想通过 docker-compose 构建图像并为其设置特定标签。 Documentation 说:
Compose will build and tag it with a generated name, and use that
image thereafter.
但我找不到指定标签的方法,对于构建的图像,我总是看到 'latest' 标签。
原始答案 15 年 11 月 20 日:
截至今天,没有特定标签的选项。 Docker compose 发挥了它的魔力,并像您所看到的那样分配了一个标签。在调用 docker-compose.
之后,您总是可以调用一些脚本 docker tag <image> <tag>
现在有一个如上所述的选项或here
build: ./dir
image: webapp:tag
docs/tool 似乎已经更新,您现在可以将 image
标签添加到您的脚本中。这对我来说很成功。
示例:
version: '2'
services:
baggins.api.rest:
image: my.image.name:rc2
build:
context: ../..
dockerfile: app/Docker/Dockerfile.release
ports:
...
如果您同时指定图像和构建,Compose 会使用图像中指定的 webapp 和可选标签命名构建的图像:
build: ./dir
image: webapp:tag
这会生成一个名为 webapp
并标记为 tag
的图像,该图像基于 ./dir
。
你可以试试:
services:
nameis:
container_name: hi_my
build: .
image: hi_my_nameis:v1.0.0
如果您已经构建了您的图像,您可以使用 docker tag
命令重新标记它:
docker tag imagename imagename:v1.0
docker tag imagename:v1.0 imagename:v1.1
如果你有多个标签附加到你的存储库,如果你想删除其中一个,你可以使用 docker rmi
命令:
$ docker rmi imagename:v1.0
Untagged imagename:v1.0
参考:
我想补充一点,您还可以通过环境变量或 .env 文件管理标签版本。
https://docs.docker.com/compose/environment-variables/#the-env-file
export TAG=1.11
示例:
version: '3.3'
services:
baggins.api.rest:
image: my.image.name:${TAG}
build:
context: ../..
dockerfile: app/Docker/Dockerfile.release
ports:
...
docker-compose config
验证
在我的 ci 管道中,我的第一个构建被标记为用于 运行 测试的一次性值。然后我将标签更改为最新并在推送到注册表之前再次重建(几乎是即时的,因为它都被缓存了)。
我想通过 docker-compose 构建图像并为其设置特定标签。 Documentation 说:
Compose will build and tag it with a generated name, and use that image thereafter.
但我找不到指定标签的方法,对于构建的图像,我总是看到 'latest' 标签。
原始答案 15 年 11 月 20 日:
截至今天,没有特定标签的选项。 Docker compose 发挥了它的魔力,并像您所看到的那样分配了一个标签。在调用 docker-compose.
之后,您总是可以调用一些脚本docker tag <image> <tag>
现在有一个如上所述的选项或here
build: ./dir
image: webapp:tag
docs/tool 似乎已经更新,您现在可以将 image
标签添加到您的脚本中。这对我来说很成功。
示例:
version: '2'
services:
baggins.api.rest:
image: my.image.name:rc2
build:
context: ../..
dockerfile: app/Docker/Dockerfile.release
ports:
...
如果您同时指定图像和构建,Compose 会使用图像中指定的 webapp 和可选标签命名构建的图像:
build: ./dir
image: webapp:tag
这会生成一个名为 webapp
并标记为 tag
的图像,该图像基于 ./dir
。
你可以试试:
services:
nameis:
container_name: hi_my
build: .
image: hi_my_nameis:v1.0.0
如果您已经构建了您的图像,您可以使用 docker tag
命令重新标记它:
docker tag imagename imagename:v1.0
docker tag imagename:v1.0 imagename:v1.1
如果你有多个标签附加到你的存储库,如果你想删除其中一个,你可以使用 docker rmi
命令:
$ docker rmi imagename:v1.0
Untagged imagename:v1.0
参考:
我想补充一点,您还可以通过环境变量或 .env 文件管理标签版本。
https://docs.docker.com/compose/environment-variables/#the-env-file
export TAG=1.11
示例:
version: '3.3'
services:
baggins.api.rest:
image: my.image.name:${TAG}
build:
context: ../..
dockerfile: app/Docker/Dockerfile.release
ports:
...
docker-compose config
验证
在我的 ci 管道中,我的第一个构建被标记为用于 运行 测试的一次性值。然后我将标签更改为最新并在推送到注册表之前再次重建(几乎是即时的,因为它都被缓存了)。