前提・実現したいこと
現在、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:
あなたの回答
tips
プレビュー