以下の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
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。