我有一个Rails应用程序,我通过Ansible在Docker容器中部署.我的应用包括目前为止的三个容器:
> Docker卷容器(使用docker volume create –name dbdata创建)
> Postgres容器(包含volumes_from dbdata)
> Rails应用程序容器(链接到postgres容器)
我的部署playbook正在运行,但我不得不通过SSH在服务器上运行docker volume create命令.我喜欢通过Ansible这样做,所以我可以将一个新的应用程序实例部署到一个空容器中.
有没有办法通过Ansible运行docker volume create,还是有其他方法可以做到这一点?我检查了Ansible Docker模块的文档,但看起来它们还不支持volume create.除非我错过了什么?
最佳答案
这是一个选项,使用命令模块.
- hosts: localhost
tasks:
- name: check if myvolume exists
command: docker volume inspect myvolume
register: myvolume_exists
Failed_when: false
- name: create myvolume
command: docker volume create --name myvolume
when: myvolume_exists|Failed
我们首先使用docker volume inspect检查卷是否存在.我们将该任务的结果保存在变量myvolume_exists中,然后我们只在检查任务失败时创建该卷.