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

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

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

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

Laravel

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

nginx

nginixは軽量で高性能なwebサーバーの1つです。BSD-likeライセンスのもとリリースされており、あわせてHTTPサーバ、リバースプロキシ、メールプロキシの機能も備えています。MacOSX、Windows、Linux、上で動作します。

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

Docker

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

Q&A

1回答

1193閲覧

dockerファイル、docker-compose.ymlをプロジェクトファイル内に入れたい

maxmm

総合スコア54

docker-compose

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

Laravel

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

nginx

nginixは軽量で高性能なwebサーバーの1つです。BSD-likeライセンスのもとリリースされており、あわせてHTTPサーバ、リバースプロキシ、メールプロキシの機能も備えています。MacOSX、Windows、Linux、上で動作します。

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

Docker

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

0グッド

0クリップ

投稿2020/10/04 08:05

ファイル構成
project
├ docker-compose.yml
├ docker
│  ├ php
│  └ nginx

ここの直下で

$ docker-compose up -d

を叩き、コンテナを立ち上げ後、

$ docker-compose exec php bash $ composer create-project laravel/laravel プロジェクト名

Laravelプロジェクトを生成。exitで抜けたあと、ローカルでも生成されていることを確認しました。

このときできたLaravelプロジェクト内に、dockerファイルとdocker-compose.ymlを入れてまとめたいのですが設定の仕方がわかりません。
調べてもわからず限界だったので質問します。よろしくおねがいします。

構成ファイル

//docker-compose version: '3' services: php: container_name: php build: ./docker/php volumes: - ./:/var/www nginx: image: nginx container_name: nginx ports: - 80:80 volumes: - ./:/var/www - ./docker/nginx/default.conf:/etc/nginx/conf.d/default.conf depends_on: - php db: image: mysql:5.7 container_name: xxx environment: MYSQL_ROOT_PASSWORD: root MYSQL_DATABASE: database MYSQL_USER: docker MYSQL_PASSWORD: docker TZ: 'Asia/Tokyo' command: mysqld --character-set-server=utf8mb4 --collation-server=utf8mb4_unicode_ci volumes: - ./docker/db/data:/var/lib/mysql - ./docker/db/my.cnf:/etc/mysql/conf.d/my.cnf - ./docker/db/sql:/docker-entrypoint-initdb.d ports: - 3306:3306
//default.conf server { listen 80; index index.php index.html; root /var/www/xxx/public; location / { root /var/www/xxx/public; index index.html index.php; try_files $uri $uri/ /index.php$query_string; } location ~ .php$ { try_files $uri =404; fastcgi_split_path_info ^(.+.php)(/.+)$; fastcgi_pass php:9000; fastcgi_index index.php; include fastcgi_params; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; fastcgi_param PATH_INFO $fastcgi_path_info; } }

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

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

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

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

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

guest

回答1

0

次のディレクトリー構成を検討してみてください:

text

1project 2+---docker-compose.yml 3+---php 4| +---Dockerfile 5| +---app 6| +---bootstrap 7| +---config 8| ... 9+---nginx 10|

つまり、生成された Larabel のファイルを PHP の Dockerfile と同じディレクトリーで管理します
Docker 公式の、Python の Django や Ruby on Rails の Quickstart でも
同様の構成となっています

docker-compose.yml を外に出したままにしているのは、
Nginx の設定が複雑化した場合のことを想定しています
この場合は、PHP のディレクトリーと、親の Compose ディレクトリーを
別の Git リポジトリーとして管理するか、
CI で Docker イメージをビルドするときにコンテキストのパスを指定することになります

もし Nginx の設定が複雑化しないのであれば、
次のような構成にしてもさほど問題ありません:

text

1project 2+---docker-compose.yml 3+---Dockerfile 4+---app 5+---bootstrap 6+---config 7... 8+---nginx 9|

あと、ご存知かもしれませんが、
Larabel であれば、Laradock を使うという選択肢もあります

投稿2020/10/07 03:17

編集2020/10/07 03:23
y_shinoda

総合スコア3272

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

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

ただいまの回答率
85.35%

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

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

質問する

関連した質問