質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.47%
docker-compose

docker-composeとは、複数のコンテナで構成されるサービスを提供する手順を自動的し管理を簡単にするツール。composeファイルを使用しコマンド1回で設定した全サービスを作成・起動することが可能です。

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

Docker

Dockerは、Docker社が開発したオープンソースのコンテナー管理ソフトウェアの1つです

Q&A

解決済

1回答

1720閲覧

dockerにてPHPの開発環境を構築したい「docker-compose up -dでコンテナの起動をする際のnginxに関するエラーを修正したい」

t_shirakihara

総合スコア4

docker-compose

docker-composeとは、複数のコンテナで構成されるサービスを提供する手順を自動的し管理を簡単にするツール。composeファイルを使用しコマンド1回で設定した全サービスを作成・起動することが可能です。

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

Docker

Dockerは、Docker社が開発したオープンソースのコンテナー管理ソフトウェアの1つです

0グッド

0クリップ

投稿2021/06/26 07:34

前提・実現したいこと

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

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

自己解決

自己解決いたしました。ディレクトリ・ファイルの中身の確認やエラーの見直しなどをした結果、nginx.confの誤字でした。誤字のミスが多いので、しっかりと気をつけて取り組んでまいります。

今後の精進いたします。

投稿2021/06/26 07:54

t_shirakihara

総合スコア4

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.47%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問