これは「https://stackoverflow.com/questions/36477636/how-do-i-implement-a-shared-hosting-like-service-with-docker」に関連しています。
docroot に接続できるはずの apache-php コンテナーの束と、同じディレクトリにrw
接続できる 1 つの sftp コンテナーをセットアップしようとしています。rw
したがって、共有ボリュームを作成し、両方のコンテナー内にマウントする計画です (sftp コンテナーに関しては、明らかに別の場所にあります)。公式の php:7-apache 起動スクリプトを次のように変更しました。
#!/bin/bash
set -e
### > My stuff
chmod g+s /var/www/html
chown -R :2048 /var/www/html
umask
umask 0002
umask
### < My stuff
# Apache gets grumpy about PID files pre-existing
rm -f /var/run/apache2/apache2.pid
exec apache2 -DFOREGROUND
実際、2 つのumask
行は、サンドイッチumask 0002
が正しく実行されていることを確認します。ただし、bash
コンテナに入ってこれを自分でテストすると、umask
が返さ022
れ、ファイルを作成すると、実際には権限が付与され644
ます。その後、手動umask 0002
で新しいファイルが作成され、アクセス許可664
(および775
ディレクトリ) が作成されます。
この使用例では、両方のコンテナー (sftp と apache) が共有ボリュームで読み書きできることが重要です。それで、どうすればいいですか?