Dockerの勉強始めた経緯
で、色んなプロジェクトをやってると、
同じ言語やツールでもバージョンが違うとかで、
環境変数を変えたりツールを複数インストールしたりなどで、
PC内がゴチャゴチャしちゃうときってあるよね。
※片付けられない大人なので
とりあえずPHP環境をDocker化してみる
これまでXAMPP入れてとりあえずで作業してたけど、プロジェクト毎にPHPのバージョンが違ったり、confの設定が違ったり、そもそも本番環境はLinuxなことが多かったりで、Windowsで開発してたりするとなんか違う部分が多いので、当初Hyper-Vで仮想環境作ってとかやってたんだけどISOファイル落として設定してとかっていうのがめんどくさくなったので、Docker流行ってるみたいだし使ってみるかってなったのが経緯。
とりあえずcompose.yamlを作ってみる
フォルダ構成
root/
├compose.yaml
├docker/(他にもNodeとかDBとか入れることを考慮して分けるため)
│ ├server/
│ │ ├Dockerfile
│ │ ├conf/(php.iniやhttpd.confとか入れる用)
│ │ ├src/
│ │ │ ├html/(ここに画面系src)
│ │ │ ├logic/(ここにロジック系src)
│ │ │ │ ├composer.json
設定ファイル
services:
apache-php:
build:
context: ./docker/server
ports:
- "80:80"
volumes:
- ./docker/server/src/html:/var/www/html
- ./docker/server/src/logic:/var/www/logic
- app_vendor:/var/www/logic/vendor(composerのフォルダはvolumeに保持)
networks:
- default
volumes:
app_vendor:
FROM php:8.1.14-apache
WORKDIR /var/www/html
RUN echo "ServerName localhost" | tee /etc/apache2/conf-available/fqdn.conf
RUN a2enconf fqdn
# apt-get
RUN apt-get update
RUN apt-get install -y unzip # 入れたいものがあったらここに書く
# ミドルウェアのインストール
ADD https://github.com/mlocati/docker-php-extension-installer/releases/latest/download/install-php-extensions /usr/local/bin/
RUN chmod +x /usr/local/bin/install-php-extensions
RUN install-php-extensions zip # 入れたいものがあったらここに書く
# composerのインストール(multi-stage builds)
COPY --from=composer:2.7.1 /usr/bin/composer /usr/bin/composer
# コンポーザーでライブラリを導入
# Rootでcomposer installできるように、ここでこの設定を入れておく
ENV COMPOSER_ALLOW_SUPERUSER 1
ENV COMPOSER_NO_INTERACTION 1
RUN cd /var/www/logic && \
composer install
まとめ
phpに関してはバブちゃんで構成とかわからんので、
とりあえず業務ロジック系をapacheの公開ディレクトリ以外に配置してみた。
ホントは画面をNode(ReactやVueとか)で作って、PHPはAPI用途で使おうかと考えてたけど、1回で全部書くとネタが尽きそうなので、一旦コレでおしまい。
定期更新を頑張る!
アカウント作った当初(2021年1月1日)「一年の計は元旦にあり」と毎日更新しようとした矢先に、安定の正月の暴飲暴食で更新が滞り、そこからやる気スイッチが入ることなく今日(2024年3月1日)まで放置しすぎてた。。。
そんな中、会社の方から「定期的に記事書いてみない?(ニッコリ」って御達しがきたので、頑張ってちょくちょく更新していこうかと言う意思表明