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

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

新規登録して質問してみよう
ただいま回答率
85.48%
docker-compose

docker-composeとは、複数のコンテナで構成されるサービスを提供する手順を自動的し管理を簡単にするツール。composeファイルを使用しコマンド1回で設定した全サービスを作成・起動することが可能です。

Laravel

LaravelとはTaylor Otwellによって開発された、オープンソースなPHPフレームワークです。Laravelはシンプルで表現的なシンタックスを持ち合わせており、ウェブアプリケーション開発の手助けをしてくれます。

Docker

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

Amazon EC2

Amazon EC2は“Amazon Elastic Compute Cloud”の略称です。Amazon Web Services(AWS)の一部であり、仮想化されたWebサーバーのコンピュータリソースをレンタルできるサービスです。

AWS(Amazon Web Services)

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

Q&A

解決済

1回答

1086閲覧

AWSでdocker-compose上のLaravelプロジェクトをブラウザで確認したい

mintia191

総合スコア3

docker-compose

docker-composeとは、複数のコンテナで構成されるサービスを提供する手順を自動的し管理を簡単にするツール。composeファイルを使用しコマンド1回で設定した全サービスを作成・起動することが可能です。

Laravel

LaravelとはTaylor Otwellによって開発された、オープンソースなPHPフレームワークです。Laravelはシンプルで表現的なシンタックスを持ち合わせており、ウェブアプリケーション開発の手助けをしてくれます。

Docker

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

Amazon EC2

Amazon EC2は“Amazon Elastic Compute Cloud”の略称です。Amazon Web Services(AWS)の一部であり、仮想化されたWebサーバーのコンピュータリソースをレンタルできるサービスです。

AWS(Amazon Web Services)

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

0グッド

0クリップ

投稿2020/09/30 14:19

実現したいこと

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

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

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

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

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

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

yu_1985

2020/09/30 15:33

ちゃんと想定したポートでアクセスしてますか?
mintia191

2020/09/30 23:20

ご返答ありがとうございます。 80番ポートでmyappにアクセスをしました。「想定したポート」というのはdocker-compose,ymlに記載している、'8000:80'の部分のことという認識でよろしいでしょうか。
guest

回答1

0

ベストアンサー

とりあえず、docker-composeの設定でhost側の8000番ポートにmyappのポートをマッピングしてるので、まずは8000番ポートにアクセスしてください。

欲を言えばそれとは別にdockerを使わない環境でLaravelのアプリにアクセスした時にうまくアクセスできるかを見たいところですが…。

投稿2020/10/01 01:21

yu_1985

総合スコア7447

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

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

mintia191

2020/10/01 05:38

ご返答ありがとうございます! 8000番ポートで、Macのブラウザ上と、iphoneのsafari上で挙動を確認することができました。 これでデプロイは完了したと考えてよろしいのでしょうか? いまいちその辺りの理解がなく、教えていただければ幸いです。
yu_1985

2020/10/01 06:03

何をもってデプロイが完了したと判断するかはその時々ですが、指定したポートでとりあえず動くことを確認できたならひとまずは完了でしょう。
mintia191

2020/10/01 06:44

リンクでポートを指定すれば他のPCからもアクセスができるので、これで公開したいと思います。 迅速にご対応いただきありがとうございました!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問