出来るだけ最小限でdocker-compose、nginx、phpの環境を作成してみた


私は初心者です。間違っていたりもっと良いやり方がありましたら教えていただけるとありがたいです

参考

こちらのリンクにコードを置きました

docker-compose.yml
version: "3"

services:
  web:
    image: nginx
    ports:
      - "8080:80"
    volumes:
      - ./default.conf:/etc/nginx/conf.d/default.conf
      - ./myapp:/var/www/html
    depends_on:
      - php

  php:
    image: php:7-fpm
    volumes:
      - ./myapp:/var/www/html

phpのサービスだけで、/var/www/html にファイルをマウントしたら良いかと思ったのですが、htmlが表示されず(ファイルがなくて404になる)webのサービスの方でも/var/www/htmlマウントしました

default.conf
server {
    listen       80;
    listen  [::]:80;
    server_name  localhost;
    root /var/www/html;

    location / {
        index  index.php index.html;
    }

    location ~ \.php$ {
       fastcgi_pass   php:9000;
       fastcgi_index  index.php;
       fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;
       include        fastcgi_params;
    }
}
myapp/index.php
<?php
phpinfo();
docker compose up -d

以上です。m(_ _)m