

### 問題

現在React+Laravel環境でプロダクトを作っています。  
サーバーサイドレンダリングが必要になり、[spatie/laravel-server-side-
rendering](https://github.com/spatie/laravel-server-side-
rendering)を使って構築しています。  
ローカルのテスト環境ではうまく構築できたものの、本番Docker環境(Laradockを使用)だと[この欄の](https://github.com/spatie/laravel-
server-side-rendering#prerequisites)NODE_PATHの設定でエラーを吐いてしまう状態です。  
なのでLaradock環境での正しいNodeのPathを取得したく思っております。

### エラーメッセージ

[code]

    The command "~/home/laradock/.nvm/versions/node/v10.10.0/bin/node 
    /var/www/storage/app/ssr/37e4a57537aad3ba32e697047bbf2914.js" failed.
    Exit Code: 127(Command not found)
    Working directory: /var/www/public Output:
    ================ Error Output: ================
    sh: 1: /var/www/home/laradock/.nvm/versions/node/v10.10.0/bin/node: not found
    
[/code]

### Dockerコンテナ

[code]

    9d81cb0602e3        laradock_nginx       "nginx"                  2 hours ago         Up 2 hours          0.0.0.0:80->80/tcp, 0.0.0.0:443->443/tcp   laradock_nginx_1
    668f7d68aaf0        laradock_php-fpm     "docker-php-entrypoi…"   2 hours ago         Up 2 hours          9000/tcp                                   laradock_php-fpm_1
    c7d82a9c046e        laradock_mysql       "docker-entrypoint.s…"   2 hours ago         Up 2 hours          0.0.0.0:3306->3306/tcp                     laradock_mysql_1
    f0929682024f        laradock_workspace   "/sbin/my_init"          2 hours ago         Up 2 hours          0.0.0.0:2222->22/tcp                       laradock_workspace_1
    c190eef71c4f        docker:dind          "dockerd-entrypoint.…"   2 hours ago         Up 2 hours          2375/tcp                                   laradock_docker-in-docker_1
    
[/code]

### 試したこと

  * local環境では`which node`で出る`/Users/ksk/.nodebrew/current/bin/node`を.envに記載で動きました。

しかし、Docker環境では`docker exec -it laradock_workspace_1 bash`でワークスペースにアタッチ後、`which
node`で出る`/home/laradock/.nvm/versions/node/v10.10.0/bin/node`を.envに記載しても上記エラーになってしまいます。。  
また、local環境でのNodePath`/Users/ksk/.nodebrew/current/bin/node`を設定しても同じエラー結果でした。。

Laravelの`.env`ファイル

[code]

    APP_NAME=Laravel
    APP_ENV=production
    APP_KEY=******************
    APP_DEBUG=true
    APP_LOG_LEVEL=debug
    APP_URL=http://localhost
    
    NODE_PATH=/home/laradock/.nvm/versions/node/v10.10.0/bin/node
    
    -----------以下略-----------
    
[/code]

```

```

### 補足情報（FW/ツールのバージョンなど）

  * Docker version `v18.06.1-ce`  
\-- workspaceにnvmを用いてNodeはインストール済み(v10.10.0)

  * Laravel version `v5.5.40`

* * *

そもそもDockerの理解が乏しいということもある上に拙い説明で大変恐縮ですが、同じような経験がある方いらっしゃいましたらご教授頂けますと助かります。。


CC BY-SA 4.0
2018-09-28T06:16:48.560
48784
2018-09-28T07:47:23.683
30266
question
php node.js docker laravel
Laradock環境でnodeにアクセスできない


自己解決しました。。

workspaceコンテナのPathを定義しても、ビルド環境だとphp-fpmが機能している為、pathがエラー吐いていると言う天に気づきました。

なのでphp-fpmにnodeをインストールします。

php-fpmのDocker-fileに以下3行追加

[code]

    RUN apt-get install -y gnupg
    RUN curl -sL https://deb.nodesource.com/setup_10.x | bash -
    RUN apt-get install -y nodejs
    
[/code]

dockerのコンテナを停止した後`docker-compose build php-fpm`でビルド&インストール

そうするとコンテナにアタッチ後にnodeが起動するので確認後、`which node`でpath取得

`/usr/bin/node`に入っているのでこれを設定し、無事動きました。。。。


CC BY-SA 4.0
2018-09-28T07:47:23.683
48787
2018-09-28T07:47:23.683
30266
48784
answer