2016-06-21 5 views
1

私はFedora 23にいます。私はdocker-composeを使ってappとdbという2つのコンテナを作成しています。 私のdev envとしてそのドッカーを使用したいが、コードを変更するたびにドッカーの作成とビルドを実行しなければならない。だから私は探していたと "ボリューム"オプションを試してみましたが、私のコードはドッカーにコピーされません。Docker-composeボリュームはファイルをコピーしません

私はdocker-buildを実行すると、 "RUN ls"コマンドは "app"フォルダまたはそのファイルをリストしません。

OBS:ドッキングウィンドウ-compose.yml、.gitignore、アプリ(フォルダ)、DB(フォルダ)

Obs¹::私が持っているルートフォルダに。私は、ボリュームとWORKING_DIRを削除した場合オプションではなく、アプリケーションの中で "COPY。/ app"コマンドを使用する/ Dockerfileは動作し、アプリケーションは動作していますが、コードを同期させたいと思っています。

誰かがそれを動作させる方法を知っていますか?

マイドッキングウィンドウ-コンファイルは次のとおりです。

version: '2' 
services: 
    app: 
    build: ./app 
    ports: 
    - "3000:3000" 
    depends_on: 
    - db 
    environment: 
    - DATABASE_HOST=db 
    - DATABASE_USER=myuser 
    - DATABASE_PASSWORD=mypass 
    - DATABASE_NAME=dbusuarios 
    - PORT=3000 
    volumes: 
    - ./app:/app 
    working_dir: /app 
    db: 
    build: ./db 
    environment: 
    - MYSQL_ROOT_PASSWORD=123 
    - MYSQL_DATABASE=dbusuarios 
    - MYSQL_USER=myuser 
    - MYSQL_PASSWORD=mypass 
ここ

あなたが私のアプリのコンテナを見ることができますDockerfile: https://gist.github.com/jradesenv/d3b5c09f2fcf3a41f392d665e4ca0fb9

相続人Dockerfile内部RUNのlsコマンドの出力:

ビン ブート dev など home lib lib64 のメディア MNT オプト procの ルート 実行 sbinに SRV SYS tmpの USR VAR

+0

どのようにドッカーを実行していますか、それはローカル、VM、またはリモートですか? 'echo $ DOCKER_HOST' – BMitch

+0

echo $ DOCKER_HOSTは何も出力しませんが、私はローカルのdockerを実行しています –

答えて

1

ボリュームを容器に装着されています。 Dockerfileはイメージの作成に使用され、イメージはコンテナの作成に使用されます。つまり、Dockerfile内のRUN lsは、ボリュームがマウントされる前にファイルシステムを表示します。ビルドを完了するためにこれらのファイルをイメージの一部にする必要がある場合、それらはボリューム内にあるべきではなく、前述のようにCOPYコマンドでコピーする必要があります。あなたは、単にこれらのファイルが実行中のコンテナの内部に搭載されているという証拠をしたい場合は、$container_nameはあなたがdocker psに表示されます${folder_name}_app_1、のようなものになります

docker exec $container_name ls -l/

を実行します。

関連する問題