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

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

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

Nuxt.jsは、ユニバーサルなSPAが開発可能なVue.jsベースのフレームワーク。UIの描画サポートに特化しており、SSRにおけるサーバーサイドとクライアントサイドのUIレンダリングなどさまざまな機能を持ちます。

Yarn

Yarnは、Facebook/Exponent/Google/Tildeが開発したJavaScriptのパッケージマネージャ。npmよりもインストールが速く、厳密にモジュールのバージョンを固定できるなど、npmの問題を解決。npmと互換性があり、同じpackage.jsonを使用できます。

ビルド

ソースコードを単体で実行可能なソフトウェアへ変換する過程をビルド(build)と呼びます

Docker

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

Q&A

解決済

2回答

7007閲覧

dockerにてイメージビルド時にyarn installが行われない問題

msickpaler

総合スコア14

Nuxt.js

Nuxt.jsは、ユニバーサルなSPAが開発可能なVue.jsベースのフレームワーク。UIの描画サポートに特化しており、SSRにおけるサーバーサイドとクライアントサイドのUIレンダリングなどさまざまな機能を持ちます。

Yarn

Yarnは、Facebook/Exponent/Google/Tildeが開発したJavaScriptのパッケージマネージャ。npmよりもインストールが速く、厳密にモジュールのバージョンを固定できるなど、npmの問題を解決。npmと互換性があり、同じpackage.jsonを使用できます。

ビルド

ソースコードを単体で実行可能なソフトウェアへ変換する過程をビルド(build)と呼びます

Docker

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

0グッド

0クリップ

投稿2020/04/05 11:56

編集2020/04/05 12:43

以下のdockerfileでイメージをビルドした後、コンテナを起動すると後述のエラーが出ます。
どうやらイメージビルド時にyarn installがうまく行われていないようで

docker run イメージ sh

を実行してコンテナの中でyarn installをすれば、うまくパッケージをインストール出来ます。

なぜイメージビルド時にyarn installがうまく動作しないのでしょうか。

ちなみにnode_modulesは.gitignoreに記述しているためディレクトリには含まれていません(含まれていない状況で起動したい)。

ご回答よろしくお願い致します。

error

front_1 | yarn run v1.22.4 front_1 | $ nuxt front_1 | /bin/sh: 1: nuxt: not found front_1 | error Command failed with exit code 127. front_1 | info Visit https://yarnpkg.com/en/docs/cli/run for documentation about this command.

docker-compose

yml

1version: "3" 2services: 3 db: 4 image: mariadb:10.5.1 5 ports: 6 - "3306" 7 environment: 8 MYSQL_ROOT_PASSWORD: 'pass' 9 volumes: 10 - mariadb-data:/var/lib/mysql 11 back: 12 build: 13 context: back 14 environment: 15 RAILS_ENV: development 16 DATABASE_URL: mysql2://root:pass@db:3306 17 MYSQL_ROOT_PASSWORD: 'pass' 18 volumes: 19 - ./back:/usr/src/app 20 ports: 21 - "3001:3001" 22 depends_on: 23 - db 24 front: 25 build: 26 context: front 27 volumes: 28 - ./front:/usr/src/app 29 ports: 30 - "3000:3000" 31 32volumes: 33 mariadb-data: 34

dockerfile

FROM node:13.12-buster ENV LANG=C.UTF-8 \ TZ=Asia/Tokyo \ APP=/usr/src/app ENV HOST 0.0.0.0 WORKDIR $APP COPY package.json $APP COPY yarn.lock $APP RUN yarn COPY . $APP CMD ["yarn", "run", "dev"]

package.json

{ "name": "app", "version": "1.0.0", "description": "My best Nuxt.js project", "author": "msickpaler", "private": true, "scripts": { "dev": "nuxt", "build": "nuxt build", "start": "nuxt start", "generate": "nuxt generate", "lint": "eslint --ext .js,.vue --ignore-path .gitignore ." }, "dependencies": { "nuxt": "^2.0.0", "@nuxtjs/axios": "^5.3.6" }, "devDependencies": { "@nuxtjs/eslint-config": "^2.0.0", "@nuxtjs/eslint-module": "^1.0.0", "babel-eslint": "^10.0.1", "eslint": "^6.1.0", "eslint-plugin-nuxt": ">=0.4.2", "eslint-config-prettier": "^6.10.0", "eslint-plugin-prettier": "^3.1.2", "prettier": "^1.19.1" } }

.gitignore

node_modules

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

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

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

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

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

guest

回答2

0

自己解決

回答ありがとうございました。こちらは以下の方法で解決しました。

docker-compose.yml

front: build: context: front volumes: - ./front:/usr/src/app - node-modules:/usr/src/app/node_modules #こちらを追加 ports: - "3000:3000"

投稿2020/04/09 09:57

編集2020/04/09 09:58
msickpaler

総合スコア14

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

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

0

yarnを実行したあとのCOPYで、インストールしたディレクトリごと上書きされてるようにみえます。

最初にcopyしてから、yarnを実行するとどうでしょうか。

投稿2020/04/06 10:45

moya_dev

総合スコア183

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.35%

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

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

質問する

関連した質問