IMUZA.com

<<WordPress(ConoHa)<<はてなブログ

ホーム / Docker / WordPress:docker-composeでコンテナを一般ユーザーで起動する

WordPress:docker-composeでコンテナを一般ユーザーで起動する

2022/02/21 Docker, Wordpress

Docker 公式の WordPress イメージで WordPress を立ち上げますと、WordPress や Mysql が root や www-data で稼働します。これですと新しくサイトを開発しようにもいちいち root に入らなくてはならなくなります。これをホストの一般ユーザーで稼働させられないかということです。

  • 現在うまくいっている方法
    • コンテナを一般ユーザーで稼働させる
  • docker-compose.yml
  • 実際にやってみる
    • コンテナを立ち上げる
    • WordPress をインストールする
    • ディレクトリの所有者を一般ユーザーに変更する
    • 一般ユーザーで稼働しているか確認する

現在うまくいっている方法

現時点では、Docker そのものもあまり理解していない状態で、Docker ドキュメントのクイックスタートで WordPress を立ち上げてなんとかしようとしているという段階です。

  • クィックスタート: Compose と WordPress

コンテナを一般ユーザーで稼働させる

  • docker-compose.yml で WordPress と Mysql コンテナを立ち上げる
  • 通常通り、WordPress をインストールする
  • いったんコンテナを停止する
  • WordPress と Mysql インストールディレクトリの uid と gid をホストと同じ一般ユーザーに書き換える
  • docker-compose.yml に user: 指定を追加し WordPress と Mysql を立ち上げる

現在のところこれでうまくいっています。

docker-compose.yml

version: '3'


services:
   db:
     image: mysql:5.7
     volumes:
       - ~/Dropbox/Docker/****/mysql:/var/lib/mysql
     restart: always
     environment:
       MYSQL_ROOT_PASSWORD: somewordpress
       MYSQL_DATABASE: wordpress
       MYSQL_USER: wordpress
       MYSQL_PASSWORD: wordpress
     user: "1000:1000"


   wordpress:
     depends_on:
       - db
     image: wordpress:latest
     ports:
       - "8000:80"
     restart: always
     environment:
       WORDPRESS_DB_HOST: db:3306
       WORDPRESS_DB_USER: wordpress
       WORDPRESS_DB_PASSWORD: wordpress
     volumes:
       - ~/Dropbox/Docker/****/html:/var/www/html
     user: "1000:1000"

docker-compose.yml ファイルはクイックスタートのものから、wordpress と mysql のマウントを Dropbox 内のディレクトリに変えています。これは、作業する場所が複数ですのでデータを共用するためです。

uid と gid はデフォルトで作成されるユーザーを指定しています。id コマンドで調べられます。または、プロジェクトディレクトリに .env ファイルを作成して docker-compose.yml には ${UID}:${GID} を指定しておいても同じことです。

.env ファイル

UID=1000
GID=1000

docker-compose.yml ファイル

user: "${UID}:${GID}"

実際にやってみる

コンテナを立ち上げる

プロジェクトディレクトリの docker-compose.yml からコンテナを立ち上げます。

php.ini と phpmyadmin-misc.ini は今回は関係ありません。WordPress サイトや Mysql ディレクトリの所有者が www-data や systemd-coredump になっています。

WordPress をインストールする

ブラウザで http://localhost:8000 にアクセスしますと WordPress のインストールページになりますのでインストールします。

ディレクトリの所有者を一般ユーザーに変更する

WordPress と Mysql をいったん停止、マウントしたディレクトリの所有者とグループを一般ユーザーに変更します。そして、docker-compose.yml の user に一般ユーザーを指定して、再度コンテナを立ち上げます。

一般ユーザーで稼働しているか確認する

問題なく立ち上がりました。WordPress の更新がありますので更新してみます。

更新できました。

プラグインの更新もしてみます。

テーマも更新してみます。

これでホストのログインユーザーのままでファイルの変更もできています。

Docker実践ガイド 第2版 impress top gearシリーズ

Docker実践ガイド 第2版 impress top gearシリーズ

  • 作者:古賀 政純
  • インプレス

Amazon

Conoha Wing 障害発生、問い合わせするも無視される
WordPress:ローカル開発環境共有 Ubuntu + WSL2 + Docker + Dropbox
Twitter
Facebook
ブックマーク
LINEで送る

最初のサイドバー

最新記事

2022/08/13

はてなブログProを解約したらエェ〜?!

2022/08/10

WordPress にプラグインなしで fancybox4 導入

2022/07/29

WordPressでiframeが表示されない(解決)

2022/07/14

WordPressのデータベースを入れ替える

2022/07/7

WordPress:テーマをゼロから作ってみる(3)

最新記事を一覧で見る

よく読まれている記事

よく読まれている記事を一覧で見る

カテゴリー

  • はてなブログ214
  • WebTips108
  • javascript96
  • Joomla!88
  • Windows68
  • CSS62
  • Joomla!更新53
  • Linux49
  • はてなテーマ45
  • Wordpress38
  • Plamo33
  • Google32
  • はてなプラグイン25
  • php19
  • Node.js18
  • SASS16
  • Ubuntu16
  • laravel415
  • Chrome10
  • cms-style10
  • iPhone9
  • genesis6
  • Git入門6
  • ConoHa WING5
  • Python4
  • Android4
  • SSD3
  • Docker3
  • スマートフォン3
  • Facebook3
  • Firefox3
  • 静的サイトジェネレーター3
  • Blankslate3
  • Mactype2
  • GitHub2
  • rails入門1
  • はてなブクマ1
  • Twitter1
  • 映画1
  • youtube1

Footer

My Web Sites

  • @半径とことこ60分
  • そんなには褒めないよ。映画評
  • IMUZA.com
  • GitHub

Another Sites

  • WordPress公式
  • WordPress関数リファレンス
  • PHPマニュアル

Contact Us

  • お問い合わせフォーム
  • Twitter
  • Facebook
  • Feedly

Copyright © 2022 · IMUZA.com