shimgo
8/7/2017 - 3:50 PM

ansibleのdocker_containerモジュールでデータコンテナを作成して他のコンテナでvolumes_fromでデータコンテナを指定するとデータボリュームに書き込みできない

ansibleのdocker_containerモジュールでデータコンテナを作成して他のコンテナでvolumes_fromでデータコンテナを指定するとデータボリュームに書き込みできない

ansibleで以下のようなデータコンテナを作る。

- name: データコンテナを作成
  docker_container:
    name: data
    image: busybox
    volumes:
      - mydata:/var/www/one-progress/public:z

以下のようにデータコンテナをvolumes_fromで使用するとzオプションを指定していても書き込みができない。(rootなら可能)

- name: アプリケーションコンテナ
  docker_container:
    name: app
    image: rails
    volumes_from:
      - data

###解決策 以下のようにvolumesで指定すればいい。データボリュームに名前をつけたらそれが存在していなければ作成し、存在していれば指定されたパスにマウントする。 他のコンテナとデータボリュームを共有する場合にもデータボリューム名を記述すればよい。 zオプションはなくても書き込みできた。

- name: アプリケーションコンテナ
  docker_container:
    name: app
    image: rails
    volumes:
      - mydata:/var/www/one-progress/public:z