LoginSignup
0
0

docker for macでwebサーバーが立ち上がらなかった話

Last updated at Posted at 2023-12-13

はじめに

新しい案件にアサインされた時に、dockerで環境構築中にwebサーバーが立ち上がらなくて困ったことがあった。
先輩にサポートもらいながら解決できたので備忘録。

事象

通常、git管理されているプロジェクトのソースたちをclone後に

docker compose up -d

するとすぐに環境ができてブラウザでlocalhostにアクセスできる。

今回、上記コマンドを実行すると、特にエラーは起きずdockerは起動する(実際にはしていない)のだが、localhostへアクセスと下記の画面が出る。

image-64.png

「ERR_EMPTY_RESPONSE」エラーはブラウザに関連する問題で、サイトへのアクセス要求に対してサーバーが応答しなかったことを意味する。

ちなみにdocker環境は

  • mysql
  • phpmyadmin
  • memcached
  • webサーバー
    で構成されていて、phpmyadminには無事にアクセスができた。

ポート番号が被ってるかも

よくある(自分だけかも)のがdockerで環境を複数立ち上げていてポート番号使ってるパターン。
(でもこれの場合はdocker起動時にエラー出る)
一応ポート番号を確認してみたが今回のものしか使っていなかった。

sudo lsof -P -i:8080
COMMAND     PID     USER   FD   TYPE             DEVICE SIZE/OFF NODE NAME
com.docke 76016 01054883  149u  IPv6 0xfb61021c3152318d      0t0  TCP *:8080 (LISTEN)

docker立ち上げ直す

dockerをキャッシュなしで立ち上げ直す

docker-compose build --no-cache

これも特に変わらずだった。

curlで直接入ってみる

curlコマンドで直接localhostへアクセスするがもちろんエラー。

curl http://localhost:8080/
curl: (7) Failed to connect to localhost port 80 after 9 ms: Connection refused

webサーバーを疑う

エラーはないが、webサーバーが立ち上がってないのかとなったので、dockerに入ってwebサーバーを起動してみると下記のエラーが出た。

systemctl start httpd
Failed to get D-Bus connection: No such file or directory

原因

このエラーで原因がわかった。

Failed to get D-Bus connection: No such file or directory

今回、Docker for macを使って環境構築を行なっていて、Docker for macで使用する「systemd」というコマンドはLinuxの起動処理やシステム管理を行うコマンドで、21年12月からsystemd247以上を使う必要があるらしい。

systemdのverを確認する。(docker内で)

rpm -q systemd
systemd-219-78.el7_9.7.x86_64

systemd219で古かった。

この場合、ダウングレードする必要があったそうだが、settings.jsonの設定を変えることで対応ができるらしい。
~/Library/Group Containers/group.com.docker/settings.json

{
  "deprecatedCgroupv1": false, // ← ここをtrueにする
}

これで再起動後に無事にアクセスすることができた!

こちら参考にさせていただきました:thumbsup_tone1:
https://qiita.com/NaoyaMiyagawa/items/22a870112377a91e1c99

0
0
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
0
0