質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

ただいまの
回答率

87.59%

Docker-Compose | コンテナにコード更新が反映されない場合の対応

受付中

回答 1

投稿 編集

  • 評価
  • クリップ 0
  • VIEW 6,192
退会済みユーザー

退会済みユーザー

困ってること

docker-composeで開発をしています。
ファイル更新時、コンテナに反映されないことがあります。

  • ファイル更新が反映される時と反映されない時の差および原因
  • ファイル反映がされなかった場合の対応

とりわけ後者について考えており、助言をいただきたく考えています。

backend-api_1        | [nodemon] restarting due to changes...
backend-vrn_1        | [nodemon] restarting due to changes...
backend-api_1        | [nodemon] starting `npm run inspect-api`
backend-vrn_1        | [nodemon] starting `npm run inspect-vrn`
backend-web_1        | [nodemon] restarting due to changes...
backend-web_1        | [nodemon] starting `npm run inspect-web`
backend-vrn_1        | > backend@0.0.1 inspect-vrn /docker/backend
backend-vrn_1        | > kill-port 53002 && node --inspect=0.0.0.0:53002 ./app.js
backend-api_1        | > backend@0.0.1 inspect-api /docker/backend
backend-api_1        | > kill-port 53000 && node --inspect=0.0.0.0:53000 ./app.js
backend-api_1        | Process on port 53000 killed
backend-vrn_1        | Process on port 53002 killed
backend-vrn_1        | Starting inspector on 0.0.0.0:53002 failed: address already in use
backend-api_1        | Starting inspector on 0.0.0.0:53000 failed: address already in use
backend-vrn_1        | npm ERR! code ELIFECYCLE
backend-vrn_1        | npm ERR! errno 12
backend-vrn_1        | npm ERR! backend@0.0.1 inspect-vrn: `kill-port 53002 && node --inspect=0.0.0.0:53002 ./app.js`
backend-vrn_1        | npm ERR! Exit status 12
backend-vrn_1        | npm ERR!
backend-vrn_1        | npm ERR! Failed at the backend@0.0.1 inspect-vrn script.
backend-vrn_1        | npm ERR! This is probably not a problem with npm. There is likely additional logging output above.
backend-api_1        | npm ERR! code ELIFECYCLE
backend-api_1        | npm ERR! errno 12
backend-api_1        | npm ERR! backend@0.0.1 inspect-api: `kill-port 53000 && node --inspect=0.0.0.0:53000 ./app.js`
backend-api_1        | npm ERR! Exit status 12
backend-api_1        | npm ERR!
backend-api_1        | npm ERR! Failed at the backend@0.0.1 inspect-api script.
backend-api_1        | npm ERR! This is probably not a problem with npm. There is likely additional logging output above.
backend-vrn_1        |
backend-vrn_1        | npm ERR! A complete log of this run can be found in:
backend-vrn_1        | npm ERR!     /docker/backend/.npm/_logs/2019-03-01T09_35_12_134Z-debug.log
backend-api_1        |
backend-api_1        | npm ERR! A complete log of this run can be found in:
backend-api_1        | npm ERR!     /docker/backend/.npm/_logs/2019-03-01T09_35_12_141Z-debug.log
backend-api_1        | [nodemon] app crashed - waiting for file changes before starting...
backend-vrn_1        | [nodemon] app crashed - waiting for file changes before starting...

現状の解決策

今は全てのコンテナをビルドし、起動をしています。

$ docker-compose-build docker-compose-up ##: すべてのサービスをビルドして起動


全てビルドをしているので、かなり時間がかかってしまいます

お尋ねしたいこと (1)

しかしエラーが起きてそうなコンテナが backend-vrn_1backend-api_1なので、
これらのみビルドして起動する方法をお尋ねしたいです。

お尋ねしたいこと (2 - 任意)

(こちらは任意です)
上記エラーログ、とりわけ原因となってそうなことや、ELIFECYCLEなどの意味をご存知でしたらご教授をお願いします。

backend-vrn_1        | Starting inspector on 0.0.0.0:53002 failed: address already in use
backend-api_1        | Starting inspector on 0.0.0.0:53000 failed: address already in use
backend-api_1        | npm ERR! code ELIFECYCLE
backend-api_1        | npm ERR! errno 12
backend-api_1        | npm ERR! backend@0.0.1 inspect-api: `kill-port 53000 && node --inspect=0.0.0.0:53000 

補足

Mac/Nodejs

  • 気になる質問をクリップする

    クリップした質問は、後からいつでもマイページで確認できます。

    またクリップした質問に回答があった際、通知やメールを受け取ることができます。

    クリップを取り消します

  • 良い質問の評価を上げる

    以下のような質問は評価を上げましょう

    • 質問内容が明確
    • 自分も答えを知りたい
    • 質問者以外のユーザにも役立つ

    評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

    質問の評価を上げたことを取り消します

  • 評価を下げられる数の上限に達しました

    評価を下げることができません

    • 1日5回まで評価を下げられます
    • 1日に1ユーザに対して2回まで評価を下げられます

    質問の評価を下げる

    teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

    • プログラミングに関係のない質問
    • やってほしいことだけを記載した丸投げの質問
    • 問題・課題が含まれていない質問
    • 意図的に内容が抹消された質問
    • 過去に投稿した質問と同じ内容の質問
    • 広告と受け取られるような投稿

    評価が下がると、TOPページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

    質問の評価を下げたことを取り消します

    この機能は開放されていません

    評価を下げる条件を満たしてません

    評価を下げる理由を選択してください

    詳細な説明はこちら

    上記に当てはまらず、質問内容が明確になっていない質問には「情報の追加・修正依頼」機能からコメントをしてください。

    質問の評価を下げる機能の利用条件

    この機能を利用するためには、以下の事項を行う必要があります。

回答 1

0

コードが存在しないので、回答として成立しているか不安です。

部分ビルドの方法

次のようにコマンドを発行することで一部のコンテナのみをビルドすることが可能です。

docker-compose build backend-vrn

backend-vrn はdocker-compose.yml のサービス名(services直下のラベル)です。
複数を指定することも可能です。

反映されないときの対応

ファイルが反映さないということですが、
Dockerfile等で対象のファイルをADDまたはCOPYしているのでしょうか。
ビルドなしで、upを行うと、反映されないことがあります。
このとき、一度コンテナを削除してから実行する等の方法をとります。
※未確認ですがvolumeは保全されるはずです

docker-compose rm -v backend-vrn

高頻度で書き換えを行う場合はvolumesでローカルのディレクトリ等をmountしてしまうのが手っ取り早いかもしれません。

エラーログについて

nodejsは全く触れたことがないのですが、ポートがすでに使用されているというエラーが起きているようです。
これは致命的なエラーのように思うのですが、何か思い当たるところはありますでしょうか。

backend-vrn_1        | Starting inspector on 0.0.0.0:53002 failed: address already in use
backend-api_1        | Starting inspector on 0.0.0.0:53000 failed: address already in use

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

15分調べてもわからないことは、teratailで質問しよう!

  • ただいまの回答率 87.59%
  • 質問をまとめることで、思考を整理して素早く解決
  • テンプレート機能で、簡単に質問をまとめられる

関連した質問

同じタグがついた質問を見る