2016-07-06 14 views
2

私はDocker Containerを再起動するたびにnpm installが実行される何らかの "開発ドッカーイメージ"を持っていたいと思います。ビルドしたくないので私のローカルマシンから私たちのDockerサーバーへの毎日の新しいdevイメージ)。 だから、私はsthをすることができると思った。docker:nock install on docker start

CMD npm install git+ssh://[email protected]/my/project.git#develop && npm start 

悲しいことに、これはうまくいきません。コンテナはdocker start直後に停止し、これが動作するため、私は、なぜ知らない:

RUN npm install git+ssh://[email protected]/my/project.git#develop 
CMD npm start 

(ただ、テストのために、それは私が持っているしたいものはもちろんありません)。しかし、おそらく私はCMDの間違った認識を持ち、誰かが私を啓発することができたでしょうか?

+2

'CMD sh -c 'npm install ... && npm start''を試すことができますか? – VonC

+0

ジェンキンスのようなものを使って建物を自動的に行うことができるので、プッシュするだけです。または、更新するたびにcontockerのdocker exec npm updateを実行してください。 – Nauraushaun

答えて

3

CMDをシェルスクリプトに設定します。

#!/bin/bash 
npm install git+ssh://[email protected]/my/project.git#develop 
npm start 
# whatever else 

は、私はいくつかの理由のためにこれを簡単に見つける:そのスクリプトされた状態で

CMD ["/my/path/to/entrypoint.sh"] 

  1. は、必然的にこれらのコマンドを伴って増加より多くのそれはそれをずっと作る
  2. を行われていますdocker run mycontainer /bin/bashでコンテナを実行してから、コンテナを対話的に実行する方が簡単です手動でシェルスクリプトを実行してください。これはデバッグに役立ちます