docker+laravel +nginx+Mysql環境でnpmコマンド使えるように設定する


前提

この記事をもとにdocker+laravel +nginx+Mysqlの環境を構築。

ディレクトリ構造

├── README.md (この名前にするとGitHubで見た時にHTMLに変換して表示してくれる)
├── infra (*1)
│   ├── mysql (*1)
│   │   ├── Dockerfile
│   │   └── my.cnf (*1)
│   ├── nginx (*1)
│   │   └── default.conf (*1)
│   └── php (*1)
│       ├── Dockerfile (この名前にするとファイル名の指定を省略できる)
│       └── php.ini (*1)
├── docker-compose.yml (この名前にするとファイル名の指定を省略できる)
└── backend (*1)
    └── Laravelをインストールするディレクトリ

コンテナの構造

appコンテナ

 このコンテナで、phpやlaravelをインストールしてる

webコンテナ

 このコンテナで、nginxをインストールしてる

dbコンテナ

このコンテナで、MYSQLをインストールしてる

node npmインストール方法

php/Dockerfileを編集

FROM php:7.4-fpm-buster
SHELL ["/bin/bash", "-oeux", "pipefail", "-c"]

ENV COMPOSER_ALLOW_SUPERUSER=1 \
  COMPOSER_HOME=/composer

COPY --from=composer:1.10 /usr/bin/composer /usr/bin/composer

RUN apt-get update && \
  apt-get -y install git unzip libzip-dev libicu-dev libonig-dev && \
  apt-get clean && \
  rm -rf /var/lib/apt/lists/* && \
  docker-php-ext-install intl pdo_mysql zip bcmath
// 以下を追加{{ここから}}
RUN curl -sL https://deb.nodesource.com/setup_10.x | bash -
RUN apt-get install -y nodejs
// {{ここまで}}
COPY ./php.ini /usr/local/etc/php/php.ini

WORKDIR /work

Dockerfileを変更したら以下のコマンドでビルドを行う

$docker-composer app build

以下のコマンドでコンテナを起動し、appコンテナ内に入る

$ docker-composer up -d
$ docker-composer exec bash app

appコンテナ内でnode -vコマンドなどを実行して、Node.jsやyarnがインストールされていることを確認できれば、npmコマンドの使用が可能になります!!

参考記事

Docker LaravelのコンテナでNode.jsやyarnを導入する