dei*_*iga 4 image ansible docker
我正在构建本地docker映像,我想对其进行标记,但是我不知道repository
应该如何为刚在本地构建的docker映像填充字段。
是否可以使用docker_image
模块标记本地图像?
似乎有更好的解决方案docker_image
:
tasks:
- name: build_image
docker_image:
name: test_img:latest # Name of image, may be with repo path.
path: .
state: present
register: image_build
- name: tag_version
docker_image:
name: test_img:latest # Equal to name in build task.
repository: test_img:1.2 # New tag there.
pull: no
state: present
when: image_build.changed
Run Code Online (Sandbox Code Playgroud)
影响:
$ docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
test_img 1.2 ab14e8cce7ef 9 seconds ago 142MB
test_img latest ab14e8cce7ef 9 seconds ago 142MB
Run Code Online (Sandbox Code Playgroud)
还可用于推送回购(需要将名称更改为完整的回购路径)。
您可以在一个命令中进行构建和标记。如果您希望它保持本地状态,则不能在名称中包含存储库(no /
)。该标签仅相当于“最新”标签。因此结果看起来像:
- name: 'Build an image with a tag'
docker_image:
path: .
name: ansible-module
tag: v1
state: present
Run Code Online (Sandbox Code Playgroud)
结果将如下所示:
$ docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
ansible-module v1 39be0dcc8dfa 2 minutes ago 1.093 MB
Run Code Online (Sandbox Code Playgroud)
如果要包括注册表URL或存储库名称(docker中心登录),并且不想在构建后自动推送,我不认为您可以使用此Ansible插件。
更新,对于其他标签,您可以执行以下操作:
- name: 'Build an image'
docker_image:
path: .
name: ansible-module
tag: v1
state: present
register: docker_build
- name: 'Retag image'
shell: docker tag ansible-module:v1 ansible-module:dev
when: docker_build.changed
Run Code Online (Sandbox Code Playgroud)
我发现repository
模块的docker_image
就是本地构建的图像的名称。
这是首先构建带有标签的图像latest
,然后向其添加标签的方式。
- name: Build docker image
become: yes
docker_image:
path: /tmp/foo
name: foo
state: present
- name: Tag docker image
become: yes
docker_image:
name: foo
repository: foo
tag: "{{ version.stdout }}"
state: present
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
4762 次 |
最近记录: |