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

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

新規登録して質問してみよう
ただいま回答率
85.46%
Docker

Dockerは、Docker社が開発したオープンソースのコンテナー管理ソフトウェアの1つです

AWS(Amazon Web Services)

Amazon Web Services (AWS)は、仮想空間を機軸とした、クラスター状のコンピュータ・ネットワーク・データベース・ストーレッジ・サポートツールをAWSというインフラから提供する商用サービスです。

Q&A

0回答

1175閲覧

CloudWatchのlogが見れません。

Taka2401

総合スコア8

Docker

Dockerは、Docker社が開発したオープンソースのコンテナー管理ソフトウェアの1つです

AWS(Amazon Web Services)

Amazon Web Services (AWS)は、仮想空間を機軸とした、クラスター状のコンピュータ・ネットワーク・データベース・ストーレッジ・サポートツールをAWSというインフラから提供する商用サービスです。

0グッド

0クリップ

投稿2021/07/31 12:26

編集2021/08/02 06:10

前提・実現したいこと

現在、Dockerを使用しフロントにNuxt.js、バックにRails(API)で開発しています。
ECS(Fargate)でデプロイするため、こちらを参考にまずフロント側をECRにpushしてブラウザに表示させたいです。

発生している問題・エラーメッセージ

タスク定義やクラスターを設定してデプロイしましたが表示されません。
具体的には、タスク定義でRUNNINGになってすぐに、STOOPEDにステータスが変わります。
停止理由には、

Essential container in task exited 終了コード0

とでており、調べた感じではDockerに原因があると考えています。
より詳細なログを見るためにClowdwatchwohを開いても、「現時点では古いイベントはありません」とでて詳細をみることができません。

試したこと

検索をして、IAMロールのecsTaskExecutionRolePolicyでCloudWatchLogsにログを記録するための権限が付与されていないことが原因と考えています。
参考記事通り入力するも、

ECSTaskExecutionRolePolicy

1{ 2 "Version": "2012-10-17", 3 "Statement": [ 4 { 5 "Effect": "Allow", 6 "Action": [ 7 "ecr:GetAuthorizationToken", 8 "ecr:BatchCheckLayerAvailability", 9 "ecr:GetDownloadUrlForLayer", 10 "ecr:BatchGetImage", 11 "logs:CreateLogStream", 12 "logs:PutLogEvents" 13 ], 14 "Resource": "*" 15 } 16 ] 17} 18 19

エラーが発生しました: Has prohibited field Resourceと表示されます。
エラーメッセージをもとに調べてみましたがどこを改善していいかわかりません。
どなたかご教授いただけますでしょうか。

#追記

Dockerfile

1FROM node:12.5.0-alpine 2 3ARG WORKDIR 4ARG CONTAINER_PORT 5ARG API_URL 6 7ENV HOME=/${WORKDIR} \ 8 LANG=C.UTF-8 \ 9 TZ=Asia/Tokyo \ 10 HOST=0.0.0.0 \ 11 API_URL=${API_URL} 12# ENV PATH ${HOME}/node_modules/.bin:$PATH 13 14WORKDIR ${HOME} 15# ADD . ${WORKDIR} 16 17COPY package.json . 18COPY . . 19 20RUN apk update && \ 21 apk upgrade && \ 22 apk add --no-cache \ 23 libtool \ 24 automake \ 25 autoconf \ 26 g++ \ 27 libc6-compat \ 28 libjpeg-turbo-dev \ 29 libpng-dev \ 30 make \ 31 nasm && \ 32 npm install -g n && \ 33 yarn install &&\ 34 rm -rf /var/cache/apk/* 35 36RUN yarn install 37RUN yarn run build 38 39EXPOSE ${CONTAINER_PORT} 40 41CMD ["yarn", "start"]

DockerCompose

1version: "3.3" 2 3services: 4 db: 5 image: mysql:5.7 6 environment: 7 MYSQL_ROOT_PASSWORD: $MYSQL_ROOT_PASSWORD 8 MYSQL_ALLOW_EMPTY_PASSWORD: $MYSQL_ALLOW_EMPTY_PASSWORD 9 restart: always 10 volumes: 11 - db-data:/var/lib/mysql:cached 12 13 back: 14 build: 15 context: ./back 16 args: 17 WORKDIR: $WORKDIR 18 CONTAINER_PORT: $CONTAINER_PORT 19 command: /bin/sh -c "rm -f tmp/pids/server.pid && bundle exec rails s -p 3000 -b '0.0.0.0'" 20 environment: 21 MYSQL_ROOT_PASSWORD: $MYSQL_ROOT_PASSWORD 22 MYSQL_ALLOW_EMPTY_PASSWORD: $MYSQL_ALLOW_EMPTY_PASSWORD 23 API_DOMAIN: "localhost:$FRONT_PORT" 24 volumes: 25 - ./back:/$WORKDIR:cached 26 stdin_open: true 27 tty: true 28 depends_on: 29 - db 30 # ホストコンピュータのポート:Docker内のポート 31 ports: 32 - "$API_PORT:$CONTAINER_PORT" 33 34 front: 35 build: 36 context: ./front 37 args: 38 WORKDIR: $WORKDIR 39 CONTAINER_PORT: $CONTAINER_PORT 40 API_URL: "http://localhost:$API_PORT" 41 command: npm run dev 42 volumes: 43 - ./front:/$WORKDIR:cached 44 # - front-node_modules:/$WORKDIR/node_modules 45 ports: 46 # ホストコンピュータのポート:Docker内のポート 47 - "$FRONT_PORT:$CONTAINER_PORT" 48 depends_on: 49 - back 50volumes: 51 db-data:

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

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

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

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

yu_1985

2021/08/01 16:21

タスクがちゃんと動いてないならタスクの起動の時点で何かしらエラーになっててログを出力するところまで行っていないのでは、という気がします。 タスクにはタスクロールとタスク実行ロールの2つを設定する必要がありますが、それらの区別はついていますか?
Taka2401

2021/08/02 06:17 編集

コメントいただきありがとうございます。 ・タスクロールはコンテナの中のアプリケーションから AWS サービスを利用するときに設定する ・タスク実行ロールはタスクを実行するために必要なルール(ECRからDockerイメージをプルしたり、コンテナログをCloudwatchに格納するために必要な権限)の設定という認識です。 質問した時とずれて解釈しておりました。 タスクロールのアクセス権限にCloudWatchAgentServerPolicyを追加することで、CloudWatchのログが表示できるようになりました。 また、Runningからすぐstoopedになる問題も解決いたしました。 原因としてDockerfileにCMDコマンドが記載されておらず、(ローカル上ではComposeで起動させていました)追記した後に再度ECRにpushすると無事にRunningになりました。 Dockerfileなどの記載もなくご不便おかけしました。(追記させていただきます。)
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

会員登録して回答してみよう

アカウントをお持ちの方は

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

ただいまの回答率
85.46%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問