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

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

ただいまの
回答率

89.21%

ecs-cli compose up で package.json が読み込めない

受付中

回答 0

投稿 編集

  • 評価
  • クリップ 1
  • VIEW 407

zvub1123

score 173

実現したいこと

docker-compose upコマンドで正常に動作することが確認できているコンテナを、
ECSコンテナでも稼働するようにしたいですが、なにかとエラーが出て困っています。

問題

実行したコマンドは以下のような順序です。

# Docker build and push
docker build -t $IMAGE_NAME .
docker tag $IMAGE_NAME:latest $TAG_NAME:latest && docker push $TAG_NAME:latest

# ECS-CLI profile setting
ecs-cli configure profile --profile-name $PROFILE_NAME --access-key $ACCESS_KEY --secret-key $SECRET_KEY
# Cluster and Region setting
ecs-cli configure --cluster $CLUSTER_NAME --default-launch-type EC2 --region ap-northeast-1 --config-name $CONFIG_NAME

# Cluster Up
ecs-cli up --keypair $KEY_PAIR_NAME --instance-role $ROLE_NAME --instance-type m4.large
# deploy config file to cluster
ecs-cli compose up --create-log-groups --cluster $CLUSTER_NAME

上記の手順を実施した際、最後の ecs-cli compose up コマンドを実行した結果、以下のようなエラーがCloudWatchに出力されてしまいます。

npm ERR! path /usr/src/app/package.json
npm ERR! code ENOENT
npm ERR! errno -2
npm ERR! syscall open
npm ERR! enoent ENOENT: no such file or directory, open '/usr/src/app/package.json'
npm ERR! enoent This is related to npm not being able to find a file.
npm ERR! enoent
npm ERR! A complete log of this run can be found in:
npm ERR! /root/.npm/_logs/2019-08-01T04_54_49_065Z-debug.log

クラスタ内の mongo コンテナは正常に起動しているように見受けられるのですが、その後、webコンテナの起動中に何らかの原因で起動が失敗し、
タスクが停止してしまう状況です。

docker-compose.yml ファイル及び Dockerfile の記載内容は以下の通りです。

# docker-compose.yml

version: '3'
services:
  web:
    image: $TAG_NAME:latest
    command: npm run docker-dev
    ports:
      - "3000:3000"
    working_dir: /home/app
    volumes:
      - .:/home/app
      - /home/app/node_modules
    logging:
      driver: "awslogs"
      options:
        awslogs-group: "/ecs/vue"
        awslogs-region: "ap-northeast-1"
        awslogs-stream-prefix: "macroscope-test"
    links:
      - "mongo"
  mongo:
    image: "mongo"
    ports:
      - "27017:27017"
    logging:
      driver: awslogs
      options:
        awslogs-group: "/ecs/mongo"
        awslogs-region: "ap-northeast-1"
        awslogs-stream-prefix: "macroscope-test"
FROM node:10.16.0

# Create app directory
ADD . /home/app
WORKDIR /home/app

# Install app dependencies
ADD package.json .

RUN node -v && npm -v
RUN cd /home/app && npm install

# Bundle app source
ADD . /home/app

EXPOSE 3000

イメージをpullするためにECR Repositoryも作成済みです。

問題解消のためにどこを参照すれば良いのかも定まらず、苦戦しています。
docker-compose を ecs へ移植するために足りない設定などがあるのでしょうか。
ご助力いただけると幸いです。

よろしくお願いします。

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

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

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

    クリップを取り消します

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

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

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

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

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

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

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

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

    質問の評価を下げる

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

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

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

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

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

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

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

    詳細な説明はこちら

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

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

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

まだ回答がついていません

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

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