2017-05-17 14 views
1

DockerでNodeJSアプリケーションを開発するための環境を設定しようとしています。&開発環境では、nodemonを使ってアプリケーションを実行しようとしています(これはファイルの変更を監視するためです)。私はdocker-compose upでそれを実行しようとする。しかし、私は次のエラーを取得する:Dockerがうまく動作するところで `docker-compose up`エラーが発生する

ERROR:OCIランタイムエラー:container_linux.go:247:Web用サービスのWebを起動できないコンテナプロセスを開始するには "のexec:\" 発生しnodemon \「:$ PATHに見つからない実行ファイル」

私は実行するとdocker run web-app(ウェブアプリの画像は、私は全く問題がないdocker build -t web-app .で生成された私は、この異なる現象が発生したか知りたいのですが、どのように。その問題をより簡単に理解するために、私が得たファイルを以下に示します。


Dockerfile

FROM node:latest 

# Install nodemon globally 
RUN npm i nodemon -g 

# Add local directory to /node/web-app 
ADD . /node/web-app 
# Switch to /node/web-app 
WORKDIR /node/web-app 

# Install NPM dependencies 
RUN npm install 

# Run nodemon 
CMD ["nodemon", "."] 

ドッキングウィンドウ-compose.yml

version: '2' 
services: 
web: 
    build: 
     context: . 
     dockerfile: Dockerfile 
    command: 
    - nodemon . 
+0

私にとってはあまりにも変わったようです。私は例を試して、うまくいった。どちらの場合も同じイメージを実行していますか? – Robert

+0

こんにちは@Robert私は問題を発見した、私は私の元の記事を更新しました。私のドッカー作成ファイルには、 "command: - nodemon"という文字列があります。その行にエラーがスローされ、その行を削除すると問題が解決されます。私はまだ違いが何かを理解していない。 = / – user007

答えて

0

だから、あなたのコメントを見て。私は何が問題なのか理解しています。 docker-compose.ymlのcommandディレクティブはリストであってはなりません。

command: nodemon . 

しかし、同じコマンドがすでにDockerfileに宣言されているように、ドッキングウィンドウ-compose.yml


にそれを置くために、すべての必要はありません。

は、文字列としてそれを書きます編集:リストとしてコマンドを書くことは可能ですが、各パラメータを分離する必要があります:

command: 
    - nodemon 
    - . 
関連する問題