0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

Dockerでnginxを一から構築した際に気付かなかったこと

Last updated at Posted at 2020-06-09

dockerでlaravelの環境構築を行った際に、コンテナは立ち上がっているがどうもnginxと噛み合わないことがあったので書いてみました。

docker-compose.ymlの作成

docker-compose.yml
nginx:
    image: nginx:1.17-alpine
    container_name: web
    depends_on:
        - php-fpm
    ports:
        - 80:80
    volumes:
        - ./src:/work
        - ./docker/nginx/default.conf:/etc/nginx/default.conf

これはnginxのみの設定です。
php-fpmやmysqlなどその他の設定もありますが省略。そしてコンテナを立ち上げる。
laravelをインストールする流れは他と同じ。設定した全てのコンテナが立ち上げ、コンテナの中に入りcomposerでlaravelをインストール。

これで完了!!と思ったが、laravelが起動しない!!!!

このdocker-compose.ymlのnginxの記述をよく見ると、コンテナ側のnginxの設定ファイルのパスが間違っていますね。
- ./docker/nginx/default.conf:/etc/nginx/default.conf
ではなく、
- ./docker/nginx/default.conf:/etc/nginx/conf.d/default.conf
こうです。正しくはこのdocker-compose.ymlです!!

docker-compose.yml
nginx:
    image: nginx:1.17-alpine
    container_name: web
    depends_on:
        - php-fpm
    ports:
        - 80:80
    volumes:
        - ./src:/work
        - ./docker/nginx/default.conf:/etc/nginx/conf.d/default.conf

conf.dディレクトリが抜けていた!ケアレスミス!!!ではなく、nginxの設定ファイルの構成が理解出来ていませんでした。

なぜ、間違えたのか?

nginxの設定ファイルの構成を考えるとすぐ分かります。nginxの設定は、

 etc
  └─ nginx
       ├─ nginx.conf
       └─ conf.d
            ├─ defalut.conf
            ├─ *.conf
            :

nginx.confをまず読み込んでから、conf.dディレクトリの.confファイルをインクルードする流れです。つまり、このnginx.confとdefault.confがゴチャゴチャになっていました。私の場合、ホスト側の./docker/nginx/default.confではserverディレクティブの構成を記述していたので、これはコンテナ側のnginx/conf.d/default.confの内容ですね。

まとめ

初歩的なミス。nginxのファイル構成を調べればすぐ出て来ますが、原因がなかなか見つけられず時間がかかってしまいました...
そもそも、nginxをしっかり調べてからを立ち上げれば良かっただけです。

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

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?