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

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

新規登録して質問してみよう
ただいま回答率
85.35%
Laravel

LaravelとはTaylor Otwellによって開発された、オープンソースなPHPフレームワークです。Laravelはシンプルで表現的なシンタックスを持ち合わせており、ウェブアプリケーション開発の手助けをしてくれます。

Docker

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

Q&A

解決済

2回答

2269閲覧

Docker にLaravel8の環境構築。Jetstreamのインストールでエラー

mikeko0901

総合スコア227

Laravel

LaravelとはTaylor Otwellによって開発された、オープンソースなPHPフレームワークです。Laravelはシンプルで表現的なシンタックスを持ち合わせており、ウェブアプリケーション開発の手助けをしてくれます。

Docker

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

0グッド

0クリップ

投稿2021/05/06 14:19

Dockerを使う必要があり、開発環境を構築しております。
ユーザー認証機能が必要で、Jetstreamをインストールしたいのですが、

$ npm install && npm run dev

と打つと

npm: command not found

というエラーが出てしまいます。Dockerfileの書き方や他、環境構築方法でアドバイスをいただけますと幸いです。

###構築内容
Laravel8系
php7.4
mysql
Apache

###フォルダ構成

プロジェクトフォルダ  └docker   └app    └000-default.conf    └Dockerfile    └php.ini   └db    └data    └my.cnf  └src   └Laravelのプロジェクト名以下Laravel  └docker-compose.yml

###各種コード
■Dockerfile

# どんなdockerイメージを利用して構築をするか FROM php:7.4-apache # 設定ファイルをdockerコンテナ内のPHP、Apacheに読み込ませる ADD php.ini /usr/local/etc/php/ ADD 000-default.conf /etc/apache2/sites-enabled/ # Composerのインストール RUN cd /usr/bin && curl -s http://getcomposer.org/installer | php && ln -s /usr/bin/composer.phar /usr/bin/composer # ミドルウェアインストール RUN apt-get update \ && apt-get install -y \ git \ zip \ unzip \ vim \ libpng-dev \ libpq-dev \ && docker-php-ext-install pdo_mysql \ && curl -sL https://deb.nodesource.com/setup_12.x | bash - \ && apt-get install -y nodejs \ # Laravelで必要になるmodRewriteを有効化する RUN mv /etc/apache2/mods-available/rewrite.load /etc/apache2/mods-enabled RUN /bin/sh -c a2enmod rewrite

※以下のサイトを参考にしました。(DockerfileのNode.jsあたり)
Docker上のLaravelにJetstreamをインストールする。

■docker-compose.yml

# Compose fileのバージョン指定 version: '3' # どんなコンテナを立ち上げるか services: # laravelを動かすコンテナ app: # どのポートを開いて繋ぐか。下記はコンテナの80番ポートを開いて、ホストの8000番につなぐ ports: - "80:80" # 先ほど作ったDockerfileを使って、コンテナをビルドするという指定 build: ./docker/app # コンテナの名前を指定 container_name: altouch_app # コンテナとホスト側のディレクトリを同期する場所の指定。laravelのソースが入る予定の場所 volumes: - ./src/:/var/www/html # MySQLを動かすコンテナ db: # Docker HubからMySQL5.7の公式イメージをダウンロードしてくる指定 image: mysql:5.7 container_name: altouch_db # コンテナ内の環境変数を指定。環境変数を渡すとビルド時に設定してくれるDockerイメージがあるので、利用の際はDocker Hubのサイトで確認すると良い environment: MYSQL_ROOT_PASSWORD: root MYSQL_DATABASE: ***[省略]*** MYSQL_USER: ***[省略]*** MYSQL_PASSWORD: ***[省略]*** TZ: 'Asia/Tokyo' # 起動時のコマンド command: mysqld --character-set-server=utf8mb4 --collation-server=utf8mb4_unicode_ci # ディレクトリ同期。設定ファイルとMySQLのデータが保存される場所を同期している。コンテナは基本的に起動時に変更されてもコンテナ自体が止まるとデータが消えてしまうため、保存しておきたいものはホストマシンと同期しておく必要がある。 volumes: - ./docker/db/data:/var/lib/mysql - ./docker/db/my.cnf:/etc/mysql/conf.d/my.cnf ports: - 3306:3306

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

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

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

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

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

hentaiman

2021/05/06 14:42

nodejsインストールミスってるだけでは?
mikeko0901

2021/05/06 14:55

私もNode.jsのインストールができていないのかなと思いまして、、 Dockerfileの && curl -sL https://deb.nodesource.com/setup_12.x | bash - \ && apt-get install -y nodejs でインストールできていないのでしょうか・・・記述が誤っているのでしょうか・・
hentaiman

2021/05/07 04:42

dockerfileの最下部に以下を追加してみたら? RUN curl -sL https://deb.nodesource.com/setup_15.x | bash - \ && apt-get update -y \ && apt-get install -y nodejs \ && apt autoremove -y ちなみに自分ならnodeをphpコンテナにインストールするのではなくnpm用のコンテナ別で用意します
mikeko0901

2021/05/07 07:02

ありがとうございます。いただいたものをDockerfileの最下部に追加し、 docker-compose build docker-compose up まで進めました!!。しかし、その後、 ・docker exec -it [コンテナ名] bash でプロジェクトのコンテナ内に入る ・root@c7a256e6f42e:/var/www/html# cd [フォルダ名] (フォルダ移動) ・root@c7a256e6f42e:/var/www/html/[フォルダ名]# npm install && npm run dev で以下のエラーが出てしまいます… 『bash: npm: command not found』 …npm install && npm run devは、コンテナ内に入って実行するのですよね? 何度もすみません… npm用のコンテナを別に用意した方がうまく行くのでしたらそちらも試してみようと思いました…
guest

回答2

0

ベストアンサー

npm install && npm run devは、コンテナ内に入って実行するのですよね?

そうですね

nodeインストール出来てない理由が分かりませんけど、インストール自体はdockerfileに書かなくてもいいので、一旦コンテナに入ってから直接

curl -sL https://deb.nodesource.com/setup_15.x | bash - apt-get update apt-get install nodejs apt autoremove

してみてはどうでしょうか?
インストールミスってそうならエラーメッセージを元に対応しましょう

特にエラーが無く問題無ければdockerfileの見直しですね

投稿2021/05/07 07:19

hentaiman

総合スコア6426

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

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

mikeko0901

2021/05/07 13:14

ありがとうございます。 コンテナに入って直接 curl -sL https://deb.nodesource.com/setup_15.x | bash - apt-get update apt-get install nodejs apt autoremove をやり、その後npm install && npm run devをやりましたら問題なくいけました。 LaravelのRegistar画面も表示できました!
guest

0

Nodeのインストールは次のようにマルチステージビルドで入れると良いです。

FROM node:16-alpine as node # node command COPY --from=node /usr/local/bin /usr/local/bin # npm command COPY --from=node /usr/local/lib /usr/local/lib

投稿2021/05/06 14:58

ucan-lab

総合スコア888

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

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

mikeko0901

2021/05/06 16:07 編集

ありがとうございます。 すみません…Dockerでの環境構築も初めてなもので…???? FROM node:16-alpine as node # node command COPY --from=node /usr/local/bin /usr/local/bin # npm command COPY --from=node /usr/local/lib /usr/local/lib を、Dockerfileの最後等に追記すればよいでしょうか・・?
mikeko0901

2021/05/07 00:02

ありがとうございます。 FROM node:16-alpine as node を上に、 # node command COPY --from=node /usr/local/bin /usr/local/bin # npm command COPY --from=node /usr/local/lib /usr/local/lib を下に追記しました。 ただ、 docker compose build のところで、 ``` failed to solve: rpc error: code = Unknown desc = failed to solve with frontend dockerfile.v0: failed to create LLB definition: circular dependency detected on stage: node ``` というエラーが出てしまった止まってしまいます… 何度もすみません… 先日のパーミッションエラーの際もとても助かりました。ありがとうございます。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.35%

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

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

質問する

関連した質問