私のWebアプリケーションはNode.jsとMongoDBを使用しています。私はからmongoイメージを引っ張っています。ノード・アプリケーションのイメージを構築すると、それだけでうまく動作します。しかし、コンポを使用してコンテナを起動すると、次のエラーが発生します。画像がDockerfileから構築されているときにパッケージをインストールするはずですか?ドッカーを使用してパッケージをインストールできない
web_1 | module.js:457 web_1 | throw err;
web_1 | ^
web_1 |
web_1 | Error: Cannot find module 'mongoose'
web_1 | at Function.Module._resolveFilename (module.js:455:15)
web_1 | at Function.Module._load (module.js:403:25)
web_1 | at Module.require (module.js:483:17)
web_1 | at require (internal/module.js:20:19)
web_1 | at Object. (/worklog/worklog.js:7:14)
web_1 | at Module._compile (module.js:556:32)
web_1 | at Object.Module._extensions..js (module.js:565:10)
web_1 | at Module.load (module.js:473:32)
web_1 | at tryModuleLoad (module.js:432:12)
web_1 | at Function.Module._load (module.js:424:3)
Dockerfile
FROM node
RUN mkdir -p /worklog
WORKDIR /worklog
RUN npm install mongoose \
express \
body-parser \
express-session \
method-override \
connect-mongo \
mongodb
COPY login.html worklog.html workloglist.html worklog.js /worklog/
ENV NODE_VERSION 6.3.1
EXPOSE 4000
CMD npm, start
ドッキングウィンドウ-compose.yml
db:
image: mongo
ports:
- "27017:27017"
command: "--smallfiles --logpath=/dev/null"
web:
build: .
command: node worklog.js
volumes:
- .:/worklog
ports:
- "4000:4000"
links:
- db
environment:
PORT: 4000
クリーンな環境から始めるには、 "ドッカーの作成rm web &&ドッカーの作成rm db &&ドッカーの作成ビルド&&ドッカーの作成"を試してください。あなたが "ドッカーps"の場合、db_1コンテナは動作していますか? – TopperH
私は同じ結果をもう一度試しました。私は 'docker-compose up'コマンドやあなたのコマンドを使用するとアーカイブからパッケージを引き出しないことを知りました。はい、db_1が動作しています。 – emre01
ビルドコマンドの前に "docker-compose pull"を追加してみてください。 – TopperH