WordPress✕SQLiteの環境をDockerで作るための最低限セット

開発環境

WordPress✕SQLite✕Docker開発環境セット

PC乗り換えたり、新規案件を受注するたび、
環境が古かったり、設定ファイル行方不明にてまた作り直して…アホなのか?
と思いだしたので、ここに最適解を記録しては更新していこうと思う。

Dockerのサーバの起動方法

GUI:直感的に操作

めんどくさがりは『Docker Desctop』一択!

今すぐ始める | Docker
Docker Desktop を使い始め、何百万人もの開発者と一緒に、コンテナーを始めとするツールを活用して、より速く、より安全なアプリ開発をしましょう。

下記の設定で一度サーバを設定したならば、あとは『Docker Desctop』を起動するだけで動くから割愛。
サインインも要らない。

CUI:コマンドで操作

『Power Shell』あたりで作業。

Dockerサーバ用ディレクトリ移動

まず最初にdocker-compose.ymlがある場所に移動しておく。

例えば『C:\www\server』以下にあるなら

C:\www\server
起動するだけ

シンプルに起動する。

docker compose up -d

設定ファイル書き換え後の起動

docker-compose.ymlやDockerfileなど、Dockerサーバ用ディレクトリ内を書き換えたら

docker-compose up -d --build

または

docker compose build --no-cache

サーバを作り直すから、ちょっと時間かかる

docker-compose.yml

server用のディレクトリを作って置く。

services:
  web:
    build: .
    ports:
      - "80:80"
    volumes:
      - "C:/www/public:/var/www/html"
      - "./vhosts:/etc/apache2/sites-enabled"
      - "./logs:/var/log/apache2"
    container_name: php-web
    restart: always

Dockerfile

docker-compose.ymlと同じ階層に置く

FROM php:8.2-apache

RUN a2enmod headers
RUN a2enmod rewrite

# 1. パッケージリストを更新し、SQLiteのビルドに必要なライブラリをインストール
# 2. PHP拡張をインストール
# 3. 使い終わったパッケージリストを消してイメージを軽量化
RUN apt-get update && apt-get install -y \
    libsqlite3-dev \
    && docker-php-ext-install pdo_sqlite mysqli \
    && apt-get clean && rm -rf /var/lib/apt/lists/*

# セッション保存用ディレクトリの作成と権限付与
RUN mkdir -p /tmp/php_sessions && chmod 777 /tmp/php_sessions

# PHPの設定をカスタムファイルとして追加
# session.save_path を明示的に指定する
RUN echo 'session.save_path = "/tmp/php_sessions"' >> /usr/local/etc/php/conf.d/docker-php-session.ini

local.conf

バーチャルホスト追加するなら、編集する必要がある。
『【docker-compose.ymlが置いてる場所】\vhosts』に置く。
先の起動に合わせるならC:\www\server\vhosts
一度起動してたらあるから、書き換えればいいだけなので、1回起動後をオススメする。

⇩local.baseを追加する例

<VirtualHost *:80>
    ServerName localhost
    DocumentRoot /var/www/html
</VirtualHost>
<VirtualHost *:80>
    ServerName local.base
    DocumentRoot /var/www/html
</VirtualHost>

hostsも編集する

C:\Windows\System32\drivers\etc\hosts
ここは別のとこで書き換える必要がある。
コピーした先で更新して、etc以下に貼り付けて上書きする。
⇩local.baseを追加する場合、こう追加する。

127.0.0.1			local.base
::1        local.base

設定変更後はサーバ再起動を忘れずに

一番最初に書いたやつね
忘れていたら思うように動かないよ

コメント

タイトルとURLをコピーしました