2016-12-22 9 views
2

を見つけることができません受け取り、私は次のプロジェクトの構造を有する:ドッカー-コンは:常に指定Dockerfile

WebApp 
    -- docker-compose.yml 
    -- Dockerfile 
    -- docker 
    -- docker-gc 
     --Dockerfile 

docker/docker-gcは、私は、このコマンドを使用する前に作成したgitのサブモジュールである:ドッキングウィンドウで

git submodule add [email protected]:spotify/docker-gc.git docker/docker-gc 

-compose、Dockerfileをdocker-gcに実行しようとしました。

gc: 
    container_name: docker-gc 
    build: ./docker/docker-gc 
    dockerfile: ./docker/docker-gc/Dockerfile 
    volumes: 
    - /var/run/docker.sock:/var/run/docker.sock 
    - /etc:/etc 

しかし、私は常にエラーメッセージが表示されます:ここに私のサービスがある

Cannot locate specified Dockerfile ./docker/docker-gc/Dockerfile

私は結果なしで、このようなdocker/docker-gc/Dockerfile/docker/docker-gc/Dockerfileなど多くの方法を試してみました。この問題はsymlink(git submodule natureのため)と関連していますか?どうすればいいのか教えてください。

+0

'docker-compose.yaml'ファイルから' dockerfile'属性を削除するとどうなりますか?指定された 'build'ディレクトリから自動的に' Dockerfile'を使うべきではありませんか? – nwinkler

+0

@nwinkler nice。できます。ここに何か間違いはありますか?別の 'Dockerfile'を使用したい場合は? (例えば、dev環境の 'Dockerfile-dev')。ありがとう –

+0

dockerfile属性にファイル名を指定するだけで、ビルドディレクトリで解決されると思います。 – nwinkler

答えて

4

エラーはdocker-compose.yamlファイルに記載されています。この形式のバージョン1では、builddockerfileの両方を指定できます。両方を指定すると、dockerfile属性は、buildで指定されたディレクトリに見つかると予想されるファイル名を示します。あなたのケースでは

、だけではなく、buildと同じパスのファイル名を含めるようにdockerfile属性を変更します。Dockerfileので

gc: 
    container_name: docker-gc 
    build: ./docker/docker-gc 
    dockerfile: Dockerfile 
    volumes: 
    - /var/run/docker.sock:/var/run/docker.sock 
    - /etc:/etc 

は、デフォルトの名前である、あなたは、単にこの行を削除することができます

gc: 
    container_name: docker-gc 
    build: ./docker/docker-gc 
    volumes: 
    - /var/run/docker.sock:/var/run/docker.sock 
    - /etc:/etc 

詳細については、Docker Compose documentationを参照してください。

Docker Composeファイル形式のバージョン2では、buildという異なる概念を使用しています。

+0

非常に便利:Dありがとうあなたの明確な答え:D –

0

最後にDockerfileなしで実行してください。デフォルトでは、指定したフォルダ内の "Dockerfile"というファイルを使用する必要があります。

+0

私は同じ結果を試みました;( –

関連する問題