LoginSignup
3
6

More than 5 years have passed since last update.

Laradock使わないでdocker-composeでnginx,laravel(php-fpm),mysql,redis,swaggerの開発環境を整える

Posted at

何度目の車輪の再発明かわからないけど、laravelの開発環境、及び本番環境もコンテナ運用する想定でのファイル構成を作った。

要件

  • 開発環境はdocker-composeで一発で立ち上がるようにしたい
  • 本番環境(production build)もコンテナを作れる様に。
  • laravelは基本APIサーバになるので、swagger(Open API)に対応して、swagger-uiも使えるようにしたい

作ったやつ

/
├ docker ... 本番用docker構成ファイル群
├ docker_local ... 開発用docker構成ファイル群
├ laravel ... app本体
├ openapi.php ... openapi.ymlを更新するためのスクリプト
└ openapi.yml ... swagger-uiで使われる

解説

開発する時

  • READMEどおりにsetup
  • docker_localディレクトリで$ docker-compose upすると、5コンテナが立ち上がり開発スタート出来る
  • laravelディレクトリのファイル編集したらhttp://localhostで確認できる
  • mysqlはホストから、$ mysql -uroot -p -h127.0.0.1 -P3306でアクセス可能

コンテナ間通信はコンテナ名で行われる app, mysql, redis
ホストからコンテナへのアクセスはポート番号。http://localhost(80), mysqlは3306等

OpenAPI(swagger)について

  • http://localhost:8080でswagger-uiにアクセス可能
  • プロジェクトルートで、$ php openapi.phpするとymlが更新され上記ui画面もリロードで確認可能

SwaggerがOpenAPIになったので、名称等もろもろ変わる過渡期

本番用コンテナビルド

  • dockerディレクトリのdocker-compose.ymlを使う
  • 多分動かない。要調整
3
6
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
6