2016-06-13 6 views
3

プライベートnpmモジュールにnode_modulesを含めるにはどうすればよいですか、またはnpm login/authトークンを指定しますか?Google App Engineのプライベートノードモジュール

GAEでは、node_modulesフォルダがまったく含まれなくなりました(this issueを参照)。また、npmのログインやトークンの設定を許可するフックがないようです。

+0

あなたはどのように展開していますか? nodejsランタイムでは? –

+0

私はnodejsランタイムを使用していました。私はnpmのインストールを制御し、プライベートノードモジュール用のnpmトークンを設定できるGAEベースイメージを拡張するカスタムドッカーイメージを作成しました。私は誰にも良い答えがないなら、これを今夜の答えに変えるでしょう。 – mark

+0

これはまさに私があなたにお勧めするものです:-) –

答えて

4

展開するアプリケーションにローカルの.npmrcファイルを含めると、アプリケーションソースにコピーされ、npmのインストール中に使用されます。このファイルを作成するか、ホームディレクトリからコピーするビルドステップを持つことができます。 this npm articleを参照してください。

.npmrcファイルは次のようになります

//registry.npmjs.org/:_authToken=<token here> 

Dockerfile私はそうのようなルックスを使用:

# Use the base App Engine Docker image, based on debian jessie. 
FROM gcr.io/google_appengine/base 

# Install updates and dependencies 
RUN apt-get update -y && apt-get install --no-install-recommends -y -q curl python build-essential git ca-certificates libkrb5-dev && \ 
    apt-get clean && rm /var/lib/apt/lists/*_* 

# Install the latest release of nodejs 
RUN mkdir /nodejs && curl https://nodejs.org/dist/v6.2.1/node-v6.2.1-linux-x64.tar.gz | tar xvzf - -C /nodejs --strip-components=1 
ENV PATH $PATH:/nodejs/bin 

COPY . /app/ 

WORKDIR /app 

# NODE_ENV to production so npm only installs needed dependencies 
ENV NODE_ENV production 

RUN npm install --unsafe-perm || \ 
    ((if [ -f npm-debug.log ]; then \ 
     cat npm-debug.log; \ 
    fi) && false) 

# start 
CMD ["npm", "start"] 
+0

標準の 'FROM node:8'を使って同じことを達成しました.App Engineの柔軟なモードでは単にドッカー画像が必要で、すべてがうまくいくようです。 – nover