IMUZA.com

Xserver<<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で送る

最初のサイドバー

最新記事

2023/03/21

WordPress:メール送信にGmailのSMTPを使う(プラグインなし)

2023/03/10

WordPress:サムネイル付き次の記事/前の記事

2023/02/28

Twitterシェアリンクはintent/tweetを使おう

2023/02/21

GoogleタグマネージャーとアナリティクスGA4

2023/02/8

WordPress:人気記事を直近の期間指定で表示する

最新記事を一覧で見る

よく読まれている記事

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

カテゴリー

  • はてなブログ214
  • WebTips109
  • javascript98
  • Joomla!88
  • Windows68
  • Wordpress65
  • CSS63
  • Joomla!更新53
  • Linux49
  • はてなテーマ45
  • Google34
  • Plamo33
  • はてなプラグイン25
  • php22
  • Node.js18
  • Ubuntu16
  • SASS16
  • laravel415
  • Chrome11
  • cms-style10
  • iPhone9
  • ConoHa WING6
  • Git入門6
  • genesis6
  • Python5
  • Android5
  • PC全般4
  • Facebook4
  • スマートフォン4
  • 静的サイトジェネレーター3
  • Firefox3
  • SSD3
  • Blankslate3
  • Docker3
  • Twitter2
  • GitHub2
  • Mactype2
  • はてなブクマ1
  • 映画1
  • youtube1
  • rails入門1
  • Xserver1

Footer

My Web Sites

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

Related Sites

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

Contact Us

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

Copyright © 2023 · IMUZA.com