【 PHP 】PHP8に入門してみた 8日目 環境構築を進める ( Dockerのコンテナなど )
PHP8技術者認定初級試験 が始まるようなので 試験に向けて (できるだけ)勉強しようと思います! 使用する書籍は独習PHP 第4版(山田 祥寛)|翔泳社の本 (shoeisha.co.jp) となります。
環境構築を進める
Dockerのコンテナなど
Dockerの環境をつくらなければいけません。
といっても VS Code Remote – Containers用PHP開発環境を構築する (zenn.dev) のサイトを参考にさせてもらって手直しする程度です。
間違えている場合は都度修正していきます。
全体の構成
まずはファイルやフォルダを全部作成しました。
D:.
└─.devcontainer
│ .env
│ devcontainer.json
│ docker-compose.yml
│
└─docker
├─nginx
│ │ Dockerfile
│ │
│ └─config
│ default.conf
│
├─php
│ │ Dockerfile
│ │
│ └─config
│ php.ini
│ xdebug.ini
│
└─workspace
│ Dockerfile
│
└─config
php.ini
.devcontainer/devcontainer.json
次にdevcontainer.json
です。
extensionsにはVS Codeの拡張機能を指定できます。
ここで指定した拡張機能は、Remote Developmentを使用したDockerでの開発時に自動適用されます。
書籍には日本語化
とPHP Intelephense
についてインストールするように記述されているようでした。
日本語化はすでに完了しているのでここではPHP Intelephense
のみを指定しています。
{
"name": "PHP Development",
"dockerComposeFile": [
"docker-compose.yml"
],
"service": "workspace",
"workspaceFolder": "/var/www",
"remoteUser": "vscode",
"settings": {
"[php]": {
"editor.formatOnSave": true
},
"search.exclude": {
"**/node_modules": true,
"**/bower_components": true,
"**/*.code-search": true,
"**/vendor/*/**": true
}
},
"extensions": [
"bmewburn.vscode-intelephense-client",
]
}
.devcontainer/docker-compose.yml
docker-compose.yml
です。参考サイトで定義されていたサービスを削減しMySQL
を使用している部分をMariaDB
に変更しました。
MariaDB
はMySQL
のフォークプロダクトなのでMySQL
で使用していた環境変数を使用できます。(できるはず!)
version: "3.9"
services:
workspace:
build:
context: ./docker/workspace
args:
USERNAME: ${USERNAME-vscode}
USER_UID: ${USER_UID-1000}
USER_GID: ${USER_GID-1000}
TIME_ZONE: ${TIME_ZONE-UTC}
LOCALE: ${LOCALE-C}
tty: true
volumes:
- ../:/var/www
- ./docker/workspace/config/php.ini:/usr/local/etc/php/conf.d/99-php.ini
working_dir: /var/www
nginx:
build: ./docker/nginx
ports:
- "${IP_ADDRESS_SETTING}80:80"
- "${IP_ADDRESS_SETTING}443:443"
volumes:
- ./docker/nginx/config:/etc/nginx/conf.d
- ../.docker/nginx/log:/var/log/nginx
- ../:/var/www
environment:
TZ: ${TIME_ZONE-UTC}
php:
build:
context: ./docker/php
args:
USER_UID: ${USER_UID-1000}
USER_GID: ${USER_GID-1000}
volumes:
- ./docker/php/config/php.ini:/usr/local/etc/php/php.ini
- ./docker/php/config/xdebug.ini:/usr/local/etc/php/conf.d/xdebug.ini
- ../:/var/www
working_dir: /var/www
mysql:
image: mariadb:10.8.3
ports:
- "${IP_ADDRESS_SETTING}3306:3306"
volumes:
- ./mysql:/var/lib/mysql
environment:
MYSQL_ROOT_PASSWORD: ${DB_PASSWORD-docker}
MYSQL_USER: ${DB_USERNAME-docker}
MYSQL_PASSWORD: ${DB_PASSWORD-docker}
MYSQL_DATABASE: ${DB_DATABASE-docker}
TZ: ${TIME_ZONE-UTC}
command:
- mysqld
- --character-set-server=utf8mb4
- --collation-server=utf8mb4_ja_0900_as_cs_ks
メモ
環境構築しているときが一番楽しい!
ディスカッション
コメント一覧
まだ、コメントがありません