基本的に、メイン ディレクトリと Books ディレクトリがあります (一般的なファイル構造、他にもありますが、これらは重要な部分です)。そのため、main から booksServer へのリクエストを発行しても、ノード モジュールが見つからないため機能しません。
これは、ノード モジュールが特定のパス '/usr/src/app'の docker コンテナー内にあるためです。
ブック (サービス/コンテナー) がこの特定のパス内に適切なノード パッケージを持っていることを main.js に確認させるにはどうすればよいですか?
docker-compose は使えると思いますが、まずは docker-compose を使わずに個別にテストしたいと思いました。
**-Main Directory (Individual Service, has its own container)**
-Initiator (Fires commands)
-DockerFile
**-Books Directory (Individual Service, has its own container)**
-Stubs
-BooksStub.js (NEED THIS!, but it won't work because needs npm modules which is located in its container @/usr/src/app. How can I access the nodemodules that it's using?)
-booksServer.js
-Package*.json (lock and package.json)
-DockerFile
内部
エラー:
internal/modules/cjs/loader.js:800
throw err;
^
Error: Cannot find module 'grpc'
書籍の Dockerfile
FROM node:12.14.0
WORKDIR /usr/src/app
COPY package*.json ./
COPY . /usr/src/app
RUN npm install
EXPOSE 30043
CMD ["node", "booksServer.js"]
メイン DockerFile
FROM node:12.14.0
WORKDIR /usr/src/app
COPY package*.json ./
COPY . /usr/src/app
RUN npm install
EXPOSE 4555
CMD ["node", "main.js"]