Qiita Teams that are logged in
You are not logged in to any team

Log in to Qiita Team
Community
OrganizationAdvent CalendarQiitadon (β)
Service
Qiita JobsQiita ZineQiita Blog
Help us understand the problem. What is going on with this article?

ECSのタスク定義で、コンテナ間接続のエラーが起きた時の対処法

ECRにプッシュしたDockerのコンテナをECSでタスク定義を行い、いざタスクの実行を行うとステータスがSTOPPEDとなる。

何十回やっても以下のようなエラーが起きる。

Cannot link to a non running container

ちなみにコンテナの設定は以下のようになっている。

docker-compose.yml
version: "3.8"
services:
  app:
    build:
      context: .
      dockerfile: ./docker/php/Dockerfile
      args:
        - TZ=${TZ:-Asia/Tokyo}
    ports:
      - ${APP_PORT:-8000}:8000
    volumes:
      - ./backend:/work
      - ./logs:/var/log/php
      - ./docker/php/php.ini:/usr/local/etc/php/php.ini
    working_dir: /work
    environment:
      - DB_CONNECTION=mysql
      - DB_HOST=db
      - DB_DATABASE=${DB_NAME:-***}
      - DB_USERNAME=${DB_USER:-***}
      - DB_PASSWORD=${DB_PASS:-***}
      - TZ=${TZ:-Asia/Tokyo}
  web:
    build:
      context: .
      dockerfile: ./docker/nginx/Dockerfile
    depends_on:
      - app
    ports:
      - ${WEB_PORT:-80}:80
    volumes:
      - ./backend:/work
      - ./logs:/var/log/nginx
      - ./docker/nginx/default.conf:/etc/nginx/conf.d/default.conf
    environment:
      - TZ=${TZ:-Asia/Tokyo}
  db:
    image: mysql:8.0
    volumes:
      - db-store:/var/lib/mysql
      - ./logs:/var/log/mysql
      - ./docker/mysql/my.cnf:/etc/mysql/conf.d/my.cnf
    environment:
      - MYSQL_DATABASE=${DB_NAME:-***}
      - MYSQL_USER=${DB_USER:-***}
      - MYSQL_PASSWORD=${DB_PASS:-***}
      - MYSQL_ROOT_PASSWORD=${DB_PASS:-***}
      - TZ=${TZ:-Asia/Tokyo}
    ports:
      - ${DB_PORT:-13306}:3306
volumes:
  db-store:
├─backend
│  ├─laravel
├─docker
│  ├─mysql
│  ├─nginx
│  └─php
│─docker-compose.yml

appコンテナとwebコンテナを接続するという内容です。

backend\laravelにはLaravelのプロジェクトが入っています。

タスク定義の設定を変更したり、クラスターの設定をいくら変更してもこのエラーが吐かれる!!!

こうゆうエラーが一番厄介。。。

ただ、およそ2日間かけてこのエラーの解消法が分かった。

原因は「タスク定義」の際に行う「コンテナの追加」。

appコンテナを追加するするときに「環境」で以下のコマンドを追加する。

chmod 777 -R && php-fpm

image.png

たった一行のコマンドのせいで2日間時間を費やした。。。

くれぐれも皆さん気を付けください!!

以上、「ECSのタスク定義で、コンテナ間接続のエラーが起きた時の対処法」でした!

良ければ、LGTM、コメントお願いします。

また、何か間違っていることがあればご指摘頂けると幸いです。

他にも初心者さん向けに記事を投稿しているので、時間があれば他の記事も見て下さい!!

Thank you for reading

akki-memo
大学2年生(理工学部所属)で、主にVue、Laravelを使ってWeb制作を行っています。 最近AWS、Dockerにハマってます。 ココナラで環境構築のサポートを始めたので、興味のある方、環境構築でお困りの方はぜひ一度ご相談ください。
https://coconala.com/users/2303154
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away