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

開発環境

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

PC乗り換えたり、新規案件を受注するたび、
環境が古かったり、最新の設定ファイルがどれかわからないとか、そもそも行方不明になったとか

自分

何度も何度もゼロから作り直して…アホなのか?

と思い出したので、ここに自分的最適解を記録します。

何かしらある度に、更新していこうと思う。
そもそもDocker技術が廃れて、そこから乗り換えることもあるかもしれんけども

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.3-apache

RUN a2enmod headers
RUN a2enmod rewrite

# 1. 依存ライブラリのインストール
RUN apt-get update && apt-get install -y \
    libsqlite3-dev \
    libpng-dev \
    libjpeg-dev \
    libfreetype6-dev \
    libmagickwand-dev \
    libzip-dev \
    libicu-dev \
    zlib1g-dev \
    && rm -rf /var/lib/apt/lists/*

# 2. GDの構成(ここが重要)
RUN docker-php-ext-configure gd --with-freetype --with-jpeg

# 3. PHP拡張のインストール(-yは不要だ!)
RUN docker-php-ext-install \
    pdo_sqlite \
    mysqli \
    gd \
    exif \
    zip \
    intl

# 4. Imagickのインストール
RUN pecl install imagick \
    && docker-php-ext-enable imagick

# 5. クリーンアップ
RUN apt-get clean

# セッション保存用ディレクトリの作成と権限付与
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

よもやま話

プリインストールされるテーマが憎すぎて、サーバUP時に消したいなら

# インストール後にデフォルトテーマを(最新の1つ以外)一掃する
RUN rm -rf /var/www/html/wp-content/themes/twentytwentytwo \
    && rm -rf /var/www/html/wp-content/themes/twentytwentythree

て追記すればいいそうだよ。
教えてもらっておいて「そこまで必要ないな」と試してはいないけど。

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をコピーしました