2016-10-07 14 views
2

こんにちは私は2つのファイルを作成しています.1つはサービス(docker-compose.yml)を整理する方法、もう1つは同じサービスの画像(docker-compose.build.yml)を構築する方法です。 。この方法で1つのファイルを分割することが合理的かどうかはわかりませんが、この機能を発見して実験したいと思っています。ファイルを拡張すると、検証エラーが発生する

docker-compose build webを使用すると、私のポイントは1つのファイルから得られますが、すべて正常に動作します。私は上記に定義され、使用して2でファイルを分割 docker-compose -f docker-compose.yml -f docker-compose.build.yml build web 私は次のエラーを取得する:

単一のファイルには、(単一ドッカ-compose.yml)のように見える
ERROR: Validation failed, reason(s): 
web.build.args contains null, which is an invalid type, it should be a string, or a number 

version: '2' 

services: 
    web: 
    image: registry.private:5000/mycompany/web:dev 
    restart: unless-stopped 
    ports: 
    - "9000:9000" 
    environment: 
    - SQL_URL=jdbc:mysql://mysql:3306/mydb 
    build: 
     context: ./applications/web 
     args: 
     - VCS_REF 
     - BUILD_DATE 
     - http_proxy 

分割されると、最初のファイルdocker-compose.ymlは以下のようになります:

version: '2' 

services: 
    web: 
    image: registry.private:5000/mycompany/web:dev 
    restart: unless-stopped 
    ports: 
    - "9000:9000" 
    environment: 
    - SQL_URL=jdbc:mysql://mysql:3306/mydb 

そして、2番目のファイルdocker-compose .build.ymlは次のようになります。

version: '2' 

services: 
    web: 
    build: 
     context: ./applications/web 
     args: 
     - VCS_REF 
     - BUILD_DATE 
     - http_proxy 

この簡単な例は私の実験では機能しません。私はその機能に自信を持ってさらに前に行きたいと思っています。私たちのCIのための作成ファイルを専門化するなど。

誰かが私が誤っている場所を教えていただけたら。ありがとう。

ドッカ・コンバージョン1.6.2、4d72027

ドッカーバージョン1.10.3をビルドするには(services.???)web.build.args起こるPyYAMLとを使用して20f81dd


を構築配列であり、docker-composeがnullを含むと主張するものではありません。

Python 2.7.6 (default, Jun 22 2015, 17:58:13) 
[GCC 4.8.2] on linux2 
Type "help", "copyright", "credits" or "license" for more information. 
>>> from yaml import load, dump 
>>> document = """ 
... services: 
... web: 
...  build: 
...  context: ./applications/web 
...  args: 
...  - VCS_REF 
...  - BUILD_DATE 
...  - http_proxy 
...  - app_path=target/universal/web-0.1-SNAPSHOT.tgz 
... """ 
>>> print load(document) 
{'services': {'web': {'build': {'args': ['VCS_REF', 'BUILD_DATE', 'http_proxy', 'app_path=target/universal/web-0.1-SNAPSHOT.tgz'], 'context': './applications/web'}}}} 
+0

バグのようです。私は最新のリリース版(1.8.1)で試してみると、まだ壊れている場合はgithubの問題を開いてください – dnephin

+0

私の最初の推測は何か誤りがありました。 1.8.1で動作します。@ dnephinに感謝します。 – Yohann

+0

@dnephin、あなたはそれを答えに入れて、ヨハンがそれを選択し、あなたの正当な得点を与えることができるようにしてください:-) –

答えて

0

バグのようです。私は最新のリリース版(1.8.1)で試してみて、それでもまだgithubの問題を開いていないのならば。

関連する問題