質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.49%
bash

bash(Bourne-again-Shell)は sh(Bourne Shell)のインプリメンテーションに様々な機能が追加されたシェルです。LinuxやMac OS XではBashはデフォルトで導入されています。

docker-compose

docker-composeとは、複数のコンテナで構成されるサービスを提供する手順を自動的し管理を簡単にするツール。composeファイルを使用しコマンド1回で設定した全サービスを作成・起動することが可能です。

sh

shは、UNIX系OSのシェル操作の1つであり、最も基本的なシェルのことです。

Debian

Debianは、Debian GNU/Linux などのOS(オペレーティングシステム)です。

Docker

Dockerは、Docker社が開発したオープンソースのコンテナー管理ソフトウェアの1つです

Q&A

解決済

2回答

6097閲覧

docker-entrypoint.shの実行→反映のタイミング

ruuusaamarki

総合スコア468

bash

bash(Bourne-again-Shell)は sh(Bourne Shell)のインプリメンテーションに様々な機能が追加されたシェルです。LinuxやMac OS XではBashはデフォルトで導入されています。

docker-compose

docker-composeとは、複数のコンテナで構成されるサービスを提供する手順を自動的し管理を簡単にするツール。composeファイルを使用しコマンド1回で設定した全サービスを作成・起動することが可能です。

sh

shは、UNIX系OSのシェル操作の1つであり、最も基本的なシェルのことです。

Debian

Debianは、Debian GNU/Linux などのOS(オペレーティングシステム)です。

Docker

Dockerは、Docker社が開発したオープンソースのコンテナー管理ソフトウェアの1つです

0グッド

0クリップ

投稿2019/08/11 05:08

編集2019/08/11 10:38

#前提

wordpress公式のコンテナイメージから
dockerfileとdocker-entrypoint.shをダウンロードして
独自にシェルスクリプトで処理を加えている状況です。
https://github.com/docker-library/wordpress/tree/c9f1ca12b6fa8181dee161dfc5ce1692eeaef1d1/php7.3/apache

そのなかでwp-cliを使用して
プラグインを自動インストールしたところ
プラグインファイルの権限がroot:rootになってしまったため
docker-entrypoint.shに追記をしました。

docker

1 2chown -R www-data:www-data /var/www/html/wp-content/ 3

#立ち上げ方法
docker-compose.yml → dockerfile → docker-entrypoint.sh
という形で呼び出しており、以下の手順で立ち上げました。

dockerup.sh

1 2$ docker-compose build --no-cache 3$ docker-compose up -d --build 4

#起こった現象

コンテナを立ち上げてから約1分以内、コンテナ内のwp-cliを利用して
インストールした部分のファイル権限がルートになっていました。

docker.sh

1 2$ docker-compose up -d --build 3$ docker exec -it example-container bash 4 5#ここでコンテナ内に入って権限を確認 6 7insidecontainer# ls -la /var/www/html/wp-content 8drwxrwxrwx 2 root root 4096 Aug 11 03:00 upgrade 9drwxr-xr-x 3 root root 4096 Aug 11 02:59 uploads 10

そのまま5分ほど待ち以下を実行。

one

1 2insidecontainer# ls -la /var/www/html/wp-content 3drwxrwxrwx 2 www-data www-data 4096 Aug 11 03:01 upgrade 4drwxr-xr-x 3 www-data www-data 4096 Aug 11 02:59 uploads 5

docker-entrypoint.shにて実行した内容が反映されている状況です。

#質問
chownコマンドの反映されるタイムラグの原因が知りたいです。
弊害や懸念点、調査方法、確認すべきポイントなどご教授いただけたら嬉しいです。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答2

0

ベストアンサー

chown -Rで所有者を再帰的に変更してるぽいんで、単にファイル数が多くて時間がかかってる、とかそういうオチでは?
どれぐらいのファイルを対象にしてるかわからないですが、試しに2,3個ぐらいのファイルしかない状態でやって比較してみれば良いかと。

投稿2019/08/11 10:50

gentaro

総合スコア8949

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

ruuusaamarki

2019/08/12 04:36

ご回答ありがとうございます! 対象ファイルを変えるというテストが思いつきませんでした。 ありがとうございます!早速テストをしてみたのですが おっしゃる通りのオチでした(苦笑 行った作業として コンテナ立ち上げ直後にdocker execコマンドでコンテナ内に入り chown以前のwp-cliでプラグインをインストールしているフォルダを観察したところ 少しずつプラグインがインストールされていく様子が確認できました。 docker-compose upでdoneと出た後も docker-entrypoint.shで指定したシェルが順次実行されているということが確認できました。 加えてファイル数の少ないディレクトリにchownを実行したところ こちらも短時間で処理が完了したことを確認できました。 非常に細かいことですが動きの詳細が確認できたことは大きな収穫でした。 ありがとうございました。
guest

0

entrypointの実行タイミングはコンテナ起動時です。

 chownコマンドの反映されるタイムラグの原因が知りたいです。

全文を読んでもタイムラグと思われる現象が見当たらなかったのですが、どれのことを指していますか?

投稿2019/08/11 07:36

退会済みユーザー

退会済みユーザー

総合スコア0

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

ruuusaamarki

2019/08/11 10:46 編集

ご回答ありがとうございます! すみません、マークダウンがおかしかったので修正いたしました。 タイムラグは「起こった現象」のところで発生しました。 コンテナが立ち上がる ↓ docker execコマンドでコンテナ内に入る ↓ ディレクトリ権限を確認するとrootになっている。 (docker-entrypoint.shで権限をwww-dataにしているはずなのに。。。) 5分くらい待ち 再度docker execコマンドでコンテナ内に入り確認すると 権限が反映されているという状況です。 わかりずらく恐縮です。またわかりにくいところがありましたらツッコミをお願い致します。
退会済みユーザー

退会済みユーザー

2019/08/11 13:32

なるほど。 コマンドは起動時に実行されますが、処理が完了するまで時間がかかる可能性はありますね。
ruuusaamarki

2019/08/12 04:28

そうなんですね! 時間がかかる可能性があることがわかったのは大きかったです! ありがとうございました!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.49%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問