2017-08-17 14 views
0

開発中にNodeJSプロジェクトをホストしているドッカーイメージを作成しようとしています。 nodemonでNodeJSアプリケーションを実行するだけで、変更を行うたびに再起動します。docker&dockerを使用しているときにtypescriptのノードモジュールにアクセスします。

また、TypeScriptを使用してアプリケーションを開発します。 TypeScriptは、インストールされた@typesモジュールにアクセスできる必要があります。ただし、node_modulesフォルダを表示するマウントされたボリュームは空です。したがって、TypeScriptはモジュールを見つけることができず、コンパイルできません。私のIDEも(明らかに)不平を言っています

node_modulesをTypeScriptで表示する方法はありますか?

これは私のDockerfileです:

FROM node:alpine 

# Create app directory 
WORKDIR /usr/src/app 

# Install app dependencies 
COPY package.json . 

RUN npm install 

# Bundle app source 
COPY . . 

# Run app 
CMD [ "npm", "start" ] 

これは私のドッキングウィンドウ-compose.ymlです:

version: "3" 

services: 
    server: 
    build: . 
    environment: 
     - NODE_ENV=development 
    command: npm run debug 
    volumes: 
     - .:/usr/src/app 
     - /usr/src/app/node_modules 
    ports: 
     - "8080:8080" 
     - "9229:9229" 

答えて

0

あなたのnode_modulesのための別のフォルダを使用して、NODE_PATH環境

でそのフォルダを設定する必要があります
FROM node:alpine 

# Create app directory 
ENV NODE_PATH /usr/node_modules 
WORKDIR /usr/node_modules 

# Install app dependencies 
COPY package.json . 

RUN npm install 

WORKDIR /usr/src/app 

# Bundle app source 
COPY . . 

# Run app 
CMD [ "npm", "start" ] 

このようにしてコードが分離されます画像自体にnode_modulesが存在します。新しいモジュールを追加するたびに、イメージを再構築します。それ以外の場合は、マウントされたボリュームに問題はありません。

関連する問題