2015-10-23 18 views
6

ドッキングウィンドウ-構成し、これはここに私のYAMLファイルとのドッキングウィンドウにがぶ飲みをインストールするにはどのようにドッキングウィンドウのコンを使用しています

web: 
    dockerfile: Dockerfile-dev 
    build: . 
    command: gulp 
    volumes: 
    - .:/app 
    ports: 
    - '9001:9001' 

であるとすると、その後、私のドッキングウィンドウのファイル

FROM node:0.12.7 

RUN npm install -g bower gulp 

ADD . /app 
WORKDIR /app 

RUN bower install --allow-root 

である私は

を実行します
docker-compose -f docker-compose-dev.yml build 
docker-compose -f docker-compose-dev.yml up 

しかし、次のエラーが発生します。

Recreating web_web_1... 
Attaching to web_web_1 
web_1 | [07:39:08] Local gulp not found in /app 
web_1 | [07:39:08] Try running: npm install gulp 
web_web_1 exited with code 1 
Gracefully stopping... (press Ctrl+C again to force)**strong text** 

私はそれがローカルにインストールされ得るためにWORKDIR /app前と後行RUN npm install gulpを追加しようとしているが、私は同じエラーにその一口がインストールされているので、あなたは、WORKDIR /app AFTER 実行npm install gulpに必要

ヘルプ

+0

私は一口について何も知らないが、あなたのDockerfileは 'CMD'または' ENTRYPOINTで終わらなければなりません'私は、https://docs.docker.com/reference/builder/#cmdとhttps://docs.docker.com/reference/builder/#entrypointを参照してください。 – user2915097

答えて

7

を取得ローカルではnode_modules/gulp。しかし、あなたはすでにそれをして、同じエラーを持っています。 docker-compose-dev.ymlにはのホストディレクトリがドッキングコンテナ内に/appのボリュームとしてマウントされているためです。したがって、/ appディレクトリのローカル変更は、コンテナを実行しているときに失われます。

docker-compose-dev.ymlからボリュームを削除するか、ホストマシンでnpm install gulpを実行することができます。

+0

これは本当にありがとうございました。私は文字通りこの作業に1.5日を費やしました –

+0

これはそれです。 'volumes'セクションを削除すると、コンテナが実行されました。ありがとう。 – Francisco

0

あなたは、あなたのDockerfileは、起動スクリプトは、ディレクトリの後に実行されますstartup.sh

... 
CMD ["/startup.sh"] 

を実行する必要がありstartup.sh

npm install bower gulp 
bower install --allow-root 

(またはあなたがたときに、コンテナ火災実行するために必要なものは何でも)を作成することができますドッカーで作成します。

私もドッキングウィンドウ-compose.ymlに宣言する一時ファイルシステムにnode_modulesをマウントすることをお勧め:

volumes: 
- .:/app 
- /app/node_modules 
関連する問題