8000 GitHub - ravenfoolish/docker-lamp: Build a simple LAMP (Laravel, Apache, MySQL, PHP) development environment with docker-compose.
[go: up one dir, main page]
More Web Proxy on the site http://driver.im/
Skip to content

ravenfoolish/docker-lamp

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

26 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

docker-lamp 🐳

概要

docker-compose を使用して、シンプルな LAMP (Laravel、Apache、MySQL、PHP) 開発環境を構築します。

Windows(WSL2)、macOS(M1)、Linuxに対応。

事前準備

事前準備として、以下のドキュメントを読み、必要なソフトウェア等をインストールしてください。

Docker開発環境の準備 / Windows

Docker開発環境の準備 / Mac

コンテナ構成

├── app
├── web
├── db
└── adminer

app コンテナ

web コンテナ

db コンテナ

adminer コンテナ

ディレクトリ構成

.
├── src # Laravelプロジェクトのルートディレクトリ
├── infra
│     └── docker
│          ├── mysql
│          │   ├── Dockerfile
│          │   └── my.cnf
│          └── apache
│          │   ├── Dockerfile
│          │   ├── httpd.conf
│          └── php
│               ├── Dockerfile
│               ├── entrypoint.sh
│               ├── php.deploy.ini
│               ├── php.development.ini
│               └── xdebug.ini
├── Makefile
└── compose.yaml

使い方

A. Laravelプロジェクトの新規作成

プロジェクトフォルダにGitクローンする

git clone https://xacro.backlog.jp/git/XACRO/docker-lamp.git .

以下のコマンドを実行

$ make create-project

# or...

$ mkdir -p src
$ docker compose build
$ docker compose up -d
$ docker compose exec app composer create-project --prefer-dist laravel/laravel .
$ docker compose exec app php artisan key:generate
$ docker compose exec app php artisan storage:link
$ docker compose exec app chmod -R 777 storage bootstrap/cache
$ docker compose exec app php artisan migrate:fresh

上記のコマンドがエラーなく終了したら http://localhost でアクセスできるようになるはず。

※最新のLaravelバージョンがインストールされます。

A'. Laravelプロジェクトをバージョン指定して新規作成

バージョンを指定したい場合の手順です。

プロジェクトフォルダにGitクローンする

git clone https://xacro.backlog.jp/git/XACRO/docker-lamp.git .

以下のコマンドを実行 ※php.8.2と互換性のないバージョンを指定するとエラーが発生する可能性があります。 https://readouble.com/laravel/11.x/ja/releases.html

$ mkdir -p src
$ docker compose build
$ make up
$ docker compose exec app gosu $(whoami) bash -c "\
    composer create-project --prefer-dist 'laravel/laravel=9.*' . && \
    php artisan key:generate && \
    php artisan storage:link && \
    chmod -R 777 storage bootstrap/cache && \
    php artisan migrate"

上記のコマンドがエラーなく終了したら http://localhost でアクセスできるようになるはず。

B. 既存のLaravelプロジェクトの環境を構築する

プロジェクトフォルダにGitクローンする

git clone https://xacro.backlog.jp/git/XACRO/docker-lamp.git .

src フォルダの配下に既存のLaravelプロジェクトを配置する

$ mkdir -p src
$ cp -r /path/to/your/laravel-project src

# or...

git clone https://github.com/[account name]/[repository name].git ./src

以下のコマンドを実行

$ make install

# or...

$ docker compose build
$ docker compose up -d
$ docker compose exec app composer install
$ docker compose exec app cp .env.example .env
$ docker compose exec app php artisan key:generate
$ docker compose exec app php artisan storage:link
$ docker compose exec app chmod -R 777 storage bootstrap/cache
$ docker compose exec app php artisan migrate:fresh

上記のコマンドがエラーなく終了したら http://localhost でアクセスできるようになるはず。

※プロジェクトの構成によっては、追加の設定が必要な場合があります。

コンテナの実行ユーザーとホストの実行ユーザーを同じにする

make コマンドを使用した場合のみ、ホストユーザーの UID、GID、および USERNAME をコンテナー実行ユーザーと同じにすることができます。

docker compose コマンドで直接実行した場合は、ホストユーザーとコンテナー実行ユーザーが異なるため、ファイルのパーミッションが正しく設定されない可能性があります。

基本コマンド

# コンテナを起動する
$ make up

# or...

$ docker compose up -d

# コンテナを終了する
$ make down

# or...

$ docker compose down

# コンテナ、イメージ、ボリュームを破棄する
$ make destroy

# or...

$ docker compose down --rmi all --volumes

# コンテナ、ボリュームを破棄する
$ make down-v

# or...

$ docker compose down --volumes

非root ユーザーとしてappコンテナにログイン

$ make app
docker compose exec app gosu username bash
username@a5a88db461e9:/var/www/html$

root ユーザーとしてappコンテナにログイン

$ docker compose exec app bash
root@a5a88db461e9:/var/www/html#

npm install / npm run dev

make app で app コンテナにログインした後、以下のコマンドを実行する。

username@a5a88db461e9:/var/www/html$ npm install

# or...

username@a5a88db461e9:/var/www/html$ npm run dev

dbコンテナのMySQLに接続する

$ make sql

# or...

$ docker compose exec db bash -c 'mysql -u $MYSQL_USER -p$MYSQL_PASSWORD $MYSQL_DATABASE'

Laravelのマイグレーションを実行する

# migrate
$ make migrate

# or...

docker compose exec app php artisan migrate

# all drop table & migrate & seeding
$ make fresh

# or...

docker compose exec app php artisan migrate:fresh --seed

# seeding
$ make seed

# or...

docker compose exec app php artisan db:seed

テストの実行

$ make test

# or...

docker compose exec app php artisan test

adminer

http://localhost:8888 でデータベース管理ツールadminerにアクセスできます。 ログイン情報は以下の通りです。

username: root
password: password
database: laravel

コードエディターの機能拡張

WSLのファイルをVSCodeで編集できるようにするために、拡張プラグインWSLを入れる。

その他

  • vagrantの環境を継続して使用したい場合は、Virtual Boxのバージョンをv6.1にアップデートしてください。

  • 上記ドキュメントの中で不明点や間違っている点などあれば、遠慮なくご指摘ください。

About

Build a simple LAMP (Laravel, Apache, MySQL, PHP) development environment with docker-compose.

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Contributors 2

  •  
  •  
0