Skip to content

Instantly share code, notes, and snippets.

@matsubo
Created June 6, 2025 08:34
Show Gist options
  • Select an option

  • Save matsubo/cfaa37606f1a54327ea65610c9d3e1fb to your computer and use it in GitHub Desktop.

Select an option

Save matsubo/cfaa37606f1a54327ea65610c9d3e1fb to your computer and use it in GitHub Desktop.

Revisions

  1. matsubo created this gist Jun 6, 2025.
    121 changes: 121 additions & 0 deletions Makefile
    Original file line number Diff line number Diff line change
    @@ -0,0 +1,121 @@
    .PHONY: setup up down restart logs shell fix-permissions clean status info help

    # デフォルトターゲット
    help:
    @echo "WordPress開発環境 - 利用可能なコマンド:"
    @echo ""
    @echo "基本操作:"
    @echo " make up - セットアップ + 起動"
    @echo " make down - 停止"
    @echo " make restart - 再起動"
    @echo " make logs - ログを表示"
    @echo ""
    @echo "開発用:"
    @echo " make shell - WordPressコンテナ内でシェル実行"
    @echo " make db-shell - MySQLコンテナ内でシェル実行"
    @echo " make fix-permissions - 権限を再設定"
    @echo ""
    @echo "管理用:"
    @echo " make setup - セットアップのみ(起動しない)"
    @echo " make clean - 環境をクリーンアップ"
    @echo " make status - ステータス確認"
    @echo " make info - 設定情報を表示"
    @echo ""

    # 初期セットアップ
    setup:
    @if [ ! -f .env ]; then \
    HOST=http://localhost:8080; \
    echo "🔧 環境をセットアップ中..."; \
    echo "UID=$$(id -u)" > .env; \
    echo "GID=$$(id -g)" >> .env; \
    echo "WP_HOME=\"$$HOST\"" >> .env; \
    echo "WP_SITEURL=\"$$HOST\"" >> .env; \
    mkdir -p themes plugins uploads database ai1wm-backups; \
    if [ "$$(uname)" = "Darwin" ]; then \
    sudo chown -R $$(id -u):$$(id -g) ./themes ./plugins ./uploads ./database ./ai1wm-backups 2>/dev/null || \
    chown -R $$(id -u):$$(id -g) ./themes ./plugins ./uploads ./database ./ai1wm-backups; \
    else \
    sudo chown -R $$(id -u):$$(id -g) ./themes ./plugins ./uploads ./database ./ai1wm-backups; \
    fi; \
    chmod -R 755 ./themes ./plugins ./uploads ./database ./ai1wm-backups; \
    echo "✅ セットアップ完了!"; \
    echo " 設定値: UID=$$(id -u), GID=$$(id -g)"; \
    echo " WP_HOME: $$HOST"; \
    echo " WordPressセキュリティキーを自動生成しました"; \
    else \
    echo "⚠️ .envファイルは既に存在します。セットアップをスキップします。"; \
    fi
    up: setup
    @echo "🚀 WordPressを起動中..."
    @docker-compose up -d
    @echo ""
    @echo "✅ WordPress起動完了!"
    @echo " 🌐 ブラウザで $$(grep WP_HOME .env | cut -d '=' -f2 | tr -d '\"')" にアクセスしてください
    @echo ""

    # 停止
    down:
    @echo "⏹️ WordPressを停止中..."
    @docker-compose down
    @echo "✅ 停止完了!"

    # 再起動
    restart: down up

    # ログを表示
    logs:
    @docker-compose logs -f

    # WordPressコンテナでシェル実行
    shell:
    @echo "🐚 WordPressコンテナに接続中..."
    @docker-compose exec wordpress bash

    # MySQLコンテナでシェル実行
    db-shell:
    @echo "🗄️ MySQLコンテナに接続中..."
    @docker-compose exec db mysql -u wordpress -pwordpress wordpress

    # 権限を修正
    fix-permissions:
    @echo "🔐 ファイル権限を修正中..."
    @if [ "$$(uname)" = "Darwin" ]; then \
    sudo chown -R $$(id -u):$$(id -g) ./themes ./plugins ./uploads ./database ./ai1wm-backups 2>/dev/null || \
    chown -R $$(id -u):$$(id -g) ./themes ./plugins ./uploads ./database ./ai1wm-backups; \
    else \
    sudo chown -R $$(id -u):$$(id -g) ./themes ./plugins ./uploads ./database ./ai1wm-backups; \
    fi
    @chmod -R 755 ./themes ./plugins ./uploads ./database ./ai1wm-backups
    @echo "✅ 権限を修正しました"
    @echo " 現在の値: UID=$$(id -u), GID=$$(id -g)"

    # 環境をクリーンアップ
    clean:
    @echo "🧹 環境をクリーンアップ中..."
    @docker-compose down -v --remove-orphans 2>/dev/null || true
    @docker-compose rm -f 2>/dev/null || true
    @rm -f .env
    @echo "✅ クリーンアップ完了!"

    # ステータス確認
    status:
    @echo "📊 現在の状態:"
    @docker-compose ps

    # 設定情報を表示
    info:
    @echo "ℹ️ 環境情報:"
    @echo " Current UID: `id -u`"
    @echo " Current GID: `id -g`"
    @echo " OS: $$(uname)"
    @echo ""
    @echo "📋 Docker Compose サービス:"
    @docker-compose config --services 2>/dev/null || echo " docker-compose.ymlが見つかりません"
    @echo ""
    @if [ -f .env ]; then \
    echo "🔧 環境変数 (.env):"; \
    cat .env | sed 's/^/ /'; \
    else \
    echo "⚠️ .envファイルが見つかりません(make setupを実行してください)"; \
    fi