Dockerを使えるようになって、調子に乗ってます。
nodejs -> python -> php と、色々な環境構築作りを試してます。
次は、phpの最強フレームワーク Laravel環境です。
Dockerは、コマンドで使うのも良いんですが、VSCodeを使うことでより一層、使いやすくなります。
VSCodeは、マルチプラットフォームなので、さまざま環境で使用出来ますし、Dockerも同様ですね。
なので、相性も良いんじゃないでしょうか。
というか、最近は、VSCode一択のような感じです
まーとりあえず、やってみましょう。
Dockerfile
FROM ubuntu
RUN apt -y update
ENV DEBIAN_FRONTEND=noninteractive
ENV TZ=Asia/Tokyo
RUN apt install -y tzdata
RUN apt install -y curl sudo unzip
RUN apt install -y php php-curl php-mbstring php-dom php-xdebug
WORKDIR /project
RUN curl -s https://getcomposer.org/installer | php
RUN mv composer.phar /usr/local/bin/composer
docker-compose.yml
version: "3"
services:
pc1:
build:
context: .
volumes:
- ./project:/project
tty: true
working_dir: /project
command: bash init.sh
init.sh
#!/bin/sh
phpinipath=`php --ini | head -n 1 | cut -f 2 -d ':' | tr -d ' '`'/conf.d/99-app.ini'
if [ ! -e ${phpinipath} ]; then
cp php.ini ${phpinipath}
fi
if [ ! -e lalatest1 ]; then
composer create-project --prefer-dist laravel/laravel lalatest1
fi
bash
php.ini
[Date]
date.timezone = "Asia/Tokyo"
[mbstring]
mbstring.internal_encoding = "UTF-8"
mbstring.language = "Japanese"
xdebug.remote_enable=1
xdebug.remote_autostart=1
xdebug.remote_port=9003
フォルダ構成
project
├Dockerfile
├docker-compose.yml
└project
├init.sh
└php.ini
以上です
使い方は、簡単です。
起動
docker-compose up -d
シェルアタッチ
docker exec -it lalatest1_pc1_1 bash
デバッグ
VSCodeで、lalatest1_pc1_1コンテナをアタッチして、
php artisan serve
で、サーバーを起動します。
デバッグは、phpのlaunch.jsonを自動作成してから、xdebug リモートポート 9003番をリスナーさせておけば、勝手にphpが繋いでくれます。
後は、適当なソースにブレークポイントを設置すれば、キャッチしてくれますよ。