2017-03-25 14 views
1

運用環境では、共有ボリュームは必要ありません。したがって、私はオーバーライドファイルを持っていますが、これはボリュームを削除しません。オーバーライドドッカー作成ファイル内のボリュームを意図的に削除する

オーバーライドファイル内の共有ボリュームを削除する方法はありますか?私は開発のためだけにオーバーライドすることを避けたいと思います。なぜなら、それは使いにくいからです。

これは私のdocker-compose.yml

version: '2' 
# other services defined here 
services: 
    web: 
    build: 
     context: . 
    # other configuration 
    volumes: 
     - .:${APP_DIR} 

そして、私のdocker-compose.prod.yml

version: '2' 
services: 
    web: 
    volumes: [] 
    restart: always 

答えて

2

docker-compose内のリスト項目をマージ、それは新しいマップを追加しますが、既存のボリュームのマッピングを削除しません。

これを実装するには、devにオーバーライドファイルを設定するか、またはバージョン2.1まででextend a common docker fileにすることができます。これは、devsが1つのファイルを指すようにするオーバーライドを適用することです。

これはあなたのドッキングウィンドウ-compose.ymlが考えられます。

version: '2' 
# other services defined here 
services: 
    web: 
    extends: 
     file: docker-compose.prod.yml 
     service: web 
    build: 
     context: . 
    restart: no 
    volumes: 
     - .:${APP_DIR} 

そして、あなたのドッキングウィンドウ-compose.prod.ymlは、すべての一般的な構成とPROD設定が含まれます

version: '2' 
services: 
    web: 
    # other configuration 
    restart: always 
+0

私はありませんこれがどうやって問題を解決するか確かめてください。両方の作成ファイルがマージされたときにボリュームがまだ定義されていませんか?また、あなたは何を意味するのですか?これを実装するには、devにファイルのオーバーライドを設定するか? – Johnny

+0

@ Johnny私は、devdの定義からprodを拡張する代わりに、prod定義からdevを拡張する代わりに、composeファイルを逆にすることを提案しています。 – BMitch

+0

それはどうしたのですか?それでも私が見つけることができる最高の方法はいくつかの汚れていると感じる。 – Johnny

関連する問題