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

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

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

npmは、Node Packaged Modulesの略。Node.jsのライブラリ・パッケージを管理できるツールです。様々なモジュールを簡単にインストールでき、自分でモジュールを作成し公開する際にも使用できます。

docker-compose

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

Q&A

0回答

642閲覧

docker-compose を使ってvue.jsの環境構築を行う際のnpmコマンドが反映されない

agtrer

総合スコア28

npm

npmは、Node Packaged Modulesの略。Node.jsのライブラリ・パッケージを管理できるツールです。様々なモジュールを簡単にインストールでき、自分でモジュールを作成し公開する際にも使用できます。

docker-compose

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

0グッド

1クリップ

投稿2023/01/23 05:41

前提

docker-compose を使ってvue.jsの環境構築を行っている。処理高速化のためnode_modulesはバインドマウントではなくvolumeマウントをおこない、vue createコマンドによってvueプロジェクトは作成済とします。

実現したいこと

docker-compose up --build コマンドでコンテナを起動した際に
DockerfileのRUNに記載したnpm install ●● を反映させたい

発生している問題

DockerfileのRUNの箇所にnpm install ●●を書いても反映されない。
(今回はaxiosをインストールしたかったが反映されなかった)

該当のソースコード

dockercompose.yml

1# docker-composeのバージョン 2version: '3' 3 4services: 5 6 frontend: 7 build: 8 context: . 9 dockerfile: Dockerfile 10 command: npm run serve 11 container_name: frontend 12 volumes: 13 - ./src/frontend:/code 14 - node_modules_volume:/code/node_modules 15 ports: 16 - "8080:8080" 17 expose: 18 - "8080" 19 tty: true 20 stdin_open: true 21 22volumes: 23 node_modules_volume:

Dockerfile

1FROM node:18.1-alpine 2 3WORKDIR /code 4 5RUN apk update && \ 6 npm install -g npm && \ 7 npm install -g @vue/cli 8 9RUN npm install axios 10 11ADD . /code

試したこと

下記コードのようにdocker-compose.ymlのcommand欄にnpm install ●●を書けば反映される。(具体的にはdocker-compose exec frontend sh でコンテナの中に入り、nodemodulesの中にaxiosフォルダが作成されていることを確認した)
インストール関連のコマンドはDockerfileのRUNに書けば良いと思っていたのだが、使い分けがよく分からなくなってしまった。RUN命令はDockerfileからImageを作成するときに実行されると書いてあったが、それならdocker-compose up --build コマンドを実行した際に反映されそうな気がしてしまいます。

dockercompose.yml

1# docker-composeのバージョン 2version: '3' 3 4services: 5 6 frontend: 7 build: 8 context: . 9 dockerfile: Dockerfile 10 command: > 11 sh -c "npm install axios && 12 npm run serve" 13 container_name: frontend 14 volumes: 15 - ./src/frontend:/code 16 - node_modules_volume:/code/node_modules 17 ports: 18 - "8080:8080" 19 expose: 20 - "8080" 21 tty: true 22 stdin_open: true 23 24volumes: 25 node_modules_volume:

Dockerfile

1FROM node:18.1-alpine 2 3WORKDIR /code 4 5RUN apk update && \ 6 npm install -g npm && \ 7 npm install -g @vue/cli 8 9ADD . /code

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

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

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

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

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

guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだ回答がついていません

会員登録して回答してみよう

アカウントをお持ちの方は

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問