実現したいこと
AWSのEC2で、ローカルのdocker-compose上で開発したLaravelプロジェクトを、デプロイし、ブラウザで表示させたい
環境
- AWS Linux2
- EC2
- Docker 19.03.6-ce
- Docker-compose 1.26.2
- Laravel 6.18.40
- MacOS Catalina 10.15.6
問題
docker-compose up -dでコンテナを立ち上げ、パブリックIPにアクセスしても、
「このサイトにアクセスできません
"IPアドレス" で接続が拒否されました。」
という画面で接続ができない。
状況
- 同じサブネット上にapacheサーバーをインストールしブラウザにアクセスすると、テストページが正常に表示された
- ローカルでは正常にアプリケーションが動作しており、Github経由でプロジェクトをクローンした
- docker, docker-composeのバージョンはローカルと統一してインストールした
- startup.sh(下記)でcomposer installやアップキーの発行はしている
試したこと
- EC2インスタンス再起動
- sshでサーバーへの再ログイン
質問
どこに問題がありそうかアドバイスをいただければ幸いです。
また、無料の範囲内で行いたく、AWSへの理解も乏しいため、ECSを使え等は厳しいです。EC2の範囲内で解決したいと思っています。
よろしくお願い致します。
以下プロジェクトのディレクトリ構成と、参考になりそうなコードです。
他に欲しい情報があれば教えてくだされば幸いです。
プロジェクトのディレクトリ構成
book_memo_app/ ├ docker/(設定等のディレクトリ) ├ php-apache ├ php,apacheの設定ファイル/ ├ docker-file ├ docker-compose.yml ├ myapp/(Laravelプロジェクト) ├ mysql/
dockerfile
1FROM php:7.3-apache 2 3COPY --from=composer /usr/bin/composer /usr/bin/composer 4RUN apt-get update && apt-get install -y \ 5 unzip \ 6 libzip-dev \ 7 zlib1g-dev \ 8 && docker-php-ext-install \ 9 zip \ 10 pdo_mysql \ 11 && apt-get clean \ 12 && rm -rf /var/lib/apt/lists/* \ 13 && a2enmod rewrite 14 15# Node.jsをインストール 16RUN curl -sL https://deb.nodesource.com/setup_10.x | bash - 17RUN apt-get install -y nodejs 18 19COPY ./apache2.conf /etc/apache2/apache2.conf 20COPY ./000-default.conf /etc/apache2/sites-available/000-default.conf 21COPY ./php.ini /usr/local/etc/php/php.ini 22 23WORKDIR /var/www/myapp
docker-compose.yml
version: "3.8" services: mysql: image: mysql:5.7.31 container_name: mysql volumes: - ../mysql:/var/lib/mysql ports: - '3306:3306' environment: MYSQL_ROOT_PASSWORD: ***** MYSQL_DATABASE: ***** MYSQL_USER: ***** MYSQL_PASSWORD: ***** TZ: 'Asia/Tokyo' command: mysqld --character-set-server=utf8mb4 --collation-server=utf8mb4_unicode_ci phpmyadmin: depends_on: - mysql image: phpmyadmin/phpmyadmin ports: - '8888:80' environment: - PMA_ARBITRARY=1 - PMA_HOST=mysql - PMA_USER=***** - PMA_PASSWORD=***** container_name: "phpmyadmin" app: build: php-apache container_name: myapp ports: - '8000:80' volumes: - ../myapp:/var/www/myapp
回答1件
あなたの回答
tips
プレビュー