前提・実現したいこと
dockerを使って、PHPの開発環境を構築したいです。具体的には[docker-compose up -d]を入力して、コンテナに起動をしたいです。コンテナを起動する際にnginxの部分でエラーが出ている状況です。以下に、私の書ける限りの詳細を書いてみます。説明不足な部分が多いと思いますが、みていただけると助かります。よろしくお願いいたします。
リンク内容
こちらのサイトを見ながら開発環境の構築を行なっています。
. ├── docker-compose.yml ├── mysql │ └── data ├── nginx │ └── nignx.conf ├── php │ ├── Dockerfile │ └── php.ini └── www └── html └── index.php
このようなディレクトリ・ファイルを作成いたしました。ファイルの中身に関しては、参考サイトを全てコピーしています。コンテナ起動の際に
docker-compose up -d
こちらのコマンドをターミナルに入力して起動を試みたところ、下記記載のエラーメッセージが発生しました。
Starting php-test-2_db_1 ... done Starting php-test-2_php_1 ... done Starting php-test-2_phpmyadmin_1 ... done Creating php-test-2_nginx_1 ... error ERROR: for php-test-2_nginx_1 Cannot start service nginx: OCI runtime create failed: container_linux.go:380: starting container process caused: process_linux.go:545: container init caused: rootfs_linux.go:76: mounting "/Users/takashi/php-test-2/nginx/nginx.conf" to rootfs at "/etc/nginx/conf.d/default.conf" caused: mount through procfd: not a directory: unknown: Are you trying to mount a directory onto a file (or vice-versa)? Check if the specified host path exists and is the expected type ERROR: for nginx Cannot start service nginx: OCI runtime create failed: container_linux.go:380: starting container process caused: process_linux.go:545: container init caused: rootfs_linux.go:76: mounting "/Users/takashi/php-test-2/nginx/nginx.conf" to rootfs at "/etc/nginx/conf.d/default.conf" caused: mount through procfd: not a directory: unknown: Are you trying to mount a directory onto a file (or vice-versa)? Check if the specified host path exists and is the expected type
また、コンテナ起動後のディレクトリファイルにも変化がありまして、
. ├── docker-compose.yml ├── mysql │ └── data ├── nginx │ ├── nginx.conf │ └── nignx.conf ├── php │ ├── Dockerfile │ └── php.ini └── www └── html └── index.php
このように、nginx.confが1つだったのに対して、nginx.confのファイルが作成されていました。
該当しそうなファイルの中身を以下に記載いたします。
docker-compose.yml
version: '3' services: nginx: image: nginx:latest ports: - 8080:80 volumes: - ./nginx/nginx.conf:/etc/nginx/conf.d/default.conf - ./www/html:/var/www/html depends_on: - php php: build: ./php volumes: - ./www/html:/var/www/html depends_on: - db db: image: mysql:5.7 ports: - 13306:3306 volumes: - ./mysql:/var/lib/mysql environment: MYSQL_ROOT_PASSWORD: secret phpmyadmin: image: phpmyadmin/phpmyadmin:latest ports: - 8888:80 depends_on: - db
###nginx.xonf
server{ listen 80; server_name_; root /var/www/html; index index.php index.html; access_log /var/log/nginx/access.log; error_log /var/log/nginx/error/log; location /{ try_files $uri $uri/ /index.php$is_args$args; } location ~ .php${ fastcgi_pass php:9000; fastcgi_index index.php; fasrcgi_params SCRIPT_FILENAME $document_root$fastcgi_script_name; include fastcgi_params; } }
試したこと
ターミナルのエラーに記載されていた部分「おそらくnginxのvolumes部分?」のパスを多少変更してみましたが、何も変わらず,,,
調べてはいますが、お手上げの状態です。
補足情報
macOS BigSur
MacBook Pro (13-inch, 2016, Four Thunderbolt 3 Ports)
Docker version 20.10.7, build f0df350
ターミナル version 2.11
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。