LoginSignup
5
2

More than 5 years have passed since last update.

DockerイメージのAlpineでApacheをインストールした際のつまづきどころ

Posted at

前書き

多分 Apache + PHP-FPM 環境を一つのコンテナに入れるのがかっこよくない気はするのだが、
実際に動いているスクリプトは、
「MVCなんて知るか。PHPは PHP: Hypertext Preprocessor だろ」
と言わんばかりに、ロジックと出力HTMLの入り混じったソースコードなので、
そういうスクリプトが現状動いているサーバーの環境を再現した方が早いなと思った次第で
効率的に安全な Dockerfile を作るにはをみながらやり始めました。

つまづき1: /run/apache2 ディレクトリを手動で作る力技

tl; dr

apk add --no-cache apache2 で、全部よろしくやれてると思ったのですが、 httpd -D FOREGROUND と実行しても、すぐ終了してしまう。

そこでコンテナ内の /var/log/apache2/error.log の中身を眺めたら、こんなログが。

[Thu Mar 29 07:25:47.233959 2018] [core:error] [pid 54] (2)No such file or directory: AH00099: could not create /run/apache2/httpd.pid
[Thu Mar 29 07:25:47.233971 2018] [core:error] [pid 54] AH00100: httpd: could not log pid to file /run/apache2/httpd.pid

試しに ls /run/apache2 で確かめると、ディレクトリが存在しない。
ということで、 mkdir /run/apache2 を実行。

そして無事Apache2は立ち上がりました。

これを Dockerfile にもちゃんと追記してビルドしたイメージを実行したところ、ビルドしたイメージでもApache2の動作を確認できました。

まとめ

  • ログ見るのはやっぱり基本

もしかしたら追記するかもしれません

5
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
5
2