前提・実現したいこと
Laravelで実装されたwebアプリケーションでECS(Fargate)経由でRDSと接続がしたい。
発生している問題・エラーメッセージ
php_network_getaddresses: getaddrinfo failed: Name does not resolve (SQL文)
試したこと
同一VPC内に構築した踏み台EC2にて、dockerコンテナを構築、そのコンテナ内からRDSの接続確認はできています。
そのため、ECSからRDSへの接続のみができていない状態です。
AWSのコンソールにて環境変数設定済み
(下記画像の右側にはvalue
が入っていますがセキュリティの都合上画像をカットさせていただいております)
(上記踏み台EC2と同じvalue
を設定できているかの確認いたしました。)
docker
1version: "3" 2services: 3 app: 4 build: 5 context: . 6 dockerfile: ./docker/php/Dockerfile 7 args: 8 - TZ=${TZ} 9 ports: 10 - ${APP_PORT}:9000 11 volumes: 12 - ./live:/work 13 - ./logs:/var/log/php 14 - ./docker/php/php.ini:/usr/local/etc/php/php.ini 15 working_dir: /work 16 environment: 17 # ここは要設定 18 - DB_CONNECTION={DB_CONNECTION} 19 - DB_HOST=${DB_HOST} 20 - DB_DATABASE=${DB_DATABASE} 21 - DB_USERNAME=${DB_USERNAME} 22 - DB_PASSWORD=${DB_PASSWORD} 23 - TZ=${TZ:-Asia/Tokyo} 24 25 web: 26 build: 27 context: . 28 dockerfile: ./docker/nginx/Dockerfile 29 depends_on: 30 - app 31 ports: 32 - ${WEB_PORT:-80}:80 33 volumes: 34 - ./live:/work 35 - ./logs:/var/log/nginx 36 - ./docker/nginx/default.conf:/etc/nginx/conf.d/default.conf 37 environment: 38 - TZ=${TZ:-Asia/Tokyo} 39 40volumes: 41 db-store: 42
Dockerfile
1FROM php:7.4-fpm-alpine 2 3ARG PSYSH_DIR=/usr/local/share/psysh 4ARG PHP_MANUAL_URL=http://psysh.org/manual/ja/php_manual.sqlite 5 6ARG TZ 7 8ENV COMPOSER_ALLOW_SUPERUSER 1 9ENV COMPOSER_HOME /composer 10 11RUN set -eux && \ 12 apk update && \ 13 apk add --update --no-cache --virtual=.build-dependencies \ 14 autoconf \ 15 gcc \ 16 g++ \ 17 make \ 18 tzdata && \ 19 apk add --update --no-cache \ 20 icu-dev \ 21 oniguruma-dev \ 22 libzip-dev && \ 23 cp /usr/share/zoneinfo/Asia/Tokyo /etc/localtime && \ 24 echo ${TZ} > /etc/timezone && \ 25 pecl install xdebug && \ 26 apk del .build-dependencies && \ 27 docker-php-ext-install intl pdo_mysql mbstring zip bcmath && \ 28 docker-php-ext-enable xdebug && \ 29 mkdir $PSYSH_DIR && wget $PHP_MANUAL_URL -P $PSYSH_DIR && \ 30 curl -sS https://getcomposer.org/installer | php -- --install-dir=/usr/bin --filename=composer && \ 31 composer config -g repos.packagist composer https://packagist.jp && \ 32 composer global require hirak/prestissimo 33 34RUN apk add --no-cache freetype libpng libjpeg-turbo freetype-dev libpng-dev libjpeg-turbo-dev && \ 35 docker-php-ext-configure gd \ 36 --with-jpeg=/usr/include/ \ 37 --with-freetype=/usr/include/ && \ 38 NPROC=$(grep -c ^processor /proc/cpuinfo 2>/dev/null || 1) && \ 39 docker-php-ext-install -j${NPROC} gd && \ 40 apk del --no-cache freetype-dev libpng-dev libjpeg-turbo-dev 41 42ADD ./live /work 43 44WORKDIR /work 45 46RUN chmod -R 777 /work/storage \ 47 /work/bootstrap/cache 48 49ARG DB_CONNECTION 50ARG DB_HOST 51ARG DB_DATABASE 52ARG DB_USERNAME 53ARG DB_PASSWORD 54RUN composer install 55RUN php artisan key:generate 56RUN php artisan config:clear 57RUN php artisan config:cache 58RUN composer dump-autoload 59# RUN php artisan migrate 60# RUN php artisan db:seed 61 62EXPOSE 9000
何か、足りなければ公開できる範囲で公開させていただきますのでリクエスト投げてください。。
前提の質問として、
AWSのコンソールにて設定した環境変数は、プロジェクトの.envファイルに書き込まれるのかどうか??
というのをお伺いしたいです。
下記にファイル構成を記述させていただきます。。
| ├── docker | | │ ├── nginx | | ├── Dockerfile │ │ └── default.conf │ └── php │ ├── Dockerfile │ └── php.ini ├── docker-compose.yml | ├── .env | ├── .gitignore | └── live
回答1件
あなたの回答
tips
プレビュー