我有一个通过Ansible在Docker容器中部署的Rails应用程序。到目前为止,我的应用程序包含三个容器:
docker volume create --name dbdata
创建)volumes_from
dbdata)我的部署手册正在运行,但是我必须通过SSH在服务器上运行
docker volume create
命令。我很想通过Ansible做到这一点,所以我可以将应用程序的新实例部署到一个空容器中。有没有办法通过Ansible运行
docker volume create
,还是有其他办法呢?我在文档中检查了Ansible Docker模块,但看起来它们尚不支持volume create
。除非我想念什么? 最佳答案
这是一个使用command
模块的选项。
- 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
中,然后仅在inspect
任务失败时创建卷。