PHP
Laravel
Docker
VSCode
code-server

PHP x Laravel x VSCode を Docker 上に構築 (1)

PHP と Laravel の開発環境も Docker で整えてしまうと楽です。今回の記事では、VSCodeもDockerに含めてみました。開発環境をまるごとDockerで管理できるので、管理がしやすいのでオススメです。


登場人物


Dockerとは

Linux上でコンテナーでアプリを動作させる環境です。アプリケーションとライブラリーを同一のコンテナーで固めて、使い回すことができます。

https://ja.wikipedia.org/wiki/Docker


VSCode

https://ja.wikipedia.org/wiki/Visual_Studio_Code

Microsoft製のEditorです。Dart Pluginを入れると、補間機能などが使えて便利です。


Code-Server

VSCodeをWebサービスとして動作させることができる凄いやつです。

https://github.com/cdr/code-server


環境を作ってみる

https://github.com/kyorohiro/my-code-server/tree/master/php_laravel


(1) dockerfile を書く

FROM php:7

RUN apt-get update -y && apt-get install -y openssl zip unzip git
RUN apt-get install -y curl wget gnupg less lsof net-tools git apt-utils
RUN apt-get install -y emacs
RUN curl -sS https://getcomposer.org/installer | php -- --install-dir=/usr/local/bin --filename=composer
RUN docker-php-ext-install pdo mbstring
WORKDIR /app
COPY . /app
#RUN composer install

#CMD php artisan serve --host=0.0.0.0 --port=8181

#
# CODE-SERVER
RUN wget https://github.com/cdr/code-server/releases/download/1.939-vsc1.33.1/code-server1.939-vsc1.33.1-linux-x64.tar.gz
RUN tar xzf code-server1.939-vsc1.33.1-linux-x64.tar.gz -C ./ --strip-components 1


(2) docker image を走らせる

docker build -t php_laravel_vscode .

docker run -p 8443:8443 -p 8080:8080 -it php_laravel_vscode bash
# docke の中で
mkdir /app/w
/app/code-server /app/w --allow-http --no-auth


(3) and 'http://127.0.0.1:8443/' を ブラウザーで開く

root_page.jpg


試しに何か作ってみる


(1) Terminal -> New Terminal on VSCODE


(2) Terminal 上で以下を入力

root@8e5699b9caa4:/works/w# composer create-project --prefer-dist laravel/laravel blog

root@8e5699b9caa4:/works/w# cd blog
root@8e5699b9caa4:/works/w# php artisan serve --host 0.0.0.0 --port 8080


(3) 'http://127.0.0.1:8080/' を ブラウザーで開く

welcome.jpg

以上です。

Code-Serverがとても便利でしたね。

https://github.com/cdr/code-server

終わり。

今回のコードは以下にまとめました。

https://github.com/kyorohiro/my-code-server/tree/master/php_laravel


PS

[a] 再開したい場合

$ docker ps -a

check id and
$ docker start < id >
$ docker exec -it < id > bash

[b] 設定を変更したい場合

$ docker commit < id > php_laravel_vscode_xxx

$ docker run -p 8443:8443 -p 8080:8080 -it php_laravel_vscode_xxx bash

[c] マウント

$ docker run -p 8443:8443 -p 8080:8080 -v /Users/kyorohiro/w/xxx:/app/w -it php_laravel_vscode_xxx bash