2016-07-19 7 views
1

私はDockerの周りを頭で囲み、開発目的で使用する方法を検討しています。私はWindows 10環境で開発しています。基本的な質問があります.Nodejで開発を行うときに、.jsファイルを変更すると言うことができます。あなたはそれをホストマシン(Windowsマシン)上で変更してから、ドッカーコンテナにプッシュしますか、またはDockerコンテナ自体のファイルを変更しますか? Dockerコンテナのファイルを変更したらどうすればいいですか?Windows 10でのDockerでのNodejs開発

+0

編集:Windows 10固有の回答が必要なようです。 DockerはLinux指向の技術です。 'docker run'には' -v/path/to/host/file:/ path/in/container'というコマンドラインスイッチがあり、ホスト上のディレクトリをそれらのパスのコンテナに表示することができます。しかし、許される技術的な魔法は、WindowsではなくLinuxで起こっているようです。したがって、WindowsでDockerを実行する場合、通常、実際のdockerサーバーとコンテナを実行するLinux VMを設定する必要があります。そして、より新しいデベロップメントを避けて、 '-v'を使うときにファイルが必要と思われる場所です。 – Paul

+0

@Paul - 彼の質問には何が関係しているのか分かりません。これはNode.js-Docker固有のものであり、Windowsではないものです。それは関連する場合にOPに言及するのは良いことですが、それは実際にプライマリではない接線の問題です。 – ldg

+0

開発のためのこの非常に奇妙なセットアップ(ホストで開発するのではなく、ドッカーでテストする)があれば、どこでも変更して好きな場所にプッシュすることができます。特定の目標を念頭に置いてください。これらの設定では、実際にコンテナを単独の開発プラットフォームとして実行していますが、コンテナ内でのプッシュの仕方がわからないため、これはおそらく設定ではありません。それ以外の場合は、ホストの変更、コンテナのデプロイ、テスト、繰り返し、ホストのプッシュなどです。 –

答えて

1

ホスト環境の快適さ(Windows 10または好きなもの)からソースコードを変更してから、COPYをDockerfileでコンテナに送信します。特に、nodejsであなたは次のように使用することができます。

Dockerfile

FROM node:6 

RUN mkdir -p /usr/src/app 
WORKDIR /usr/src/app 

COPY package.json /usr/src/app/ 
RUN npm install 
COPY . /usr/src/app 

# replace this with your application's default port 
EXPOSE 8888 

CMD [ "npm", "start" ] 

をこの画像は、アプリケーションがその依存関係をリストアップし、そのstart scriptを定義するpackage.jsonという名前のファイルを持っていることを前提としています。最後に、あなたがドッカーイメージをビルドして実行することができます

+ my-nodejs-app 
| -Dockerfile 
| -package.json 
| -server.js 
| ... 

$ cd my-nodejs-app 
$ docker build -t my-nodejs-app . 

$ docker run -it --rm --name my-running-app -p 8888:8888 my-nodejs-app 

また、あなたがボリュームとしてあなたのソースディレクトリをマウントし、1つのCOMANDにすべてを減らすことができます(開発中に便利ステージ):

$ cd my-nodejs-app 
$ docker run -it --rm --name my-running-script \ 
    -v "$PWD":/usr/src/app -w /usr/src/app \ 
    -p 8888:8888 node:6 npm install && node server.js 
+0

私の懸念は、開発中に非常に頻繁に起こるソースコードを変更するたびに、プロセス全体を再実行する必要があることです。これは扱いにくいようですが、簡単な方法はありませんか? – user3547774

+0

ソースコードディレクトリをマウントしている一時的なコンテナを再起動するほうがずっと簡単です。上記の答えで詳細を見てください –

0

コードを使用してボリュームをマウントすると、処理が最適なので、procを実行しないでくださいエッセイ。

関連する問題