11
4

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

【Docker】仮想環境で、Nuxt.jsを立ち上げる時に起こるエラー【エラーNo2】

Posted at

#エラー内容

状況としては、docker-composeを使ってイメージとアプリを作っていて、サーバーを立ち上げようとしたら、次のようなエラーが出て、立ち上がらなかった。

app_front | npm ERR! code ENOENT
app_front | npm ERR! syscall open
app_front | npm ERR! path /app/package.json
app_front | npm ERR! errno -2
app_front | npm ERR! enoent ENOENT: no such file or directory, open '/app/package.json'
app_front | npm ERR! enoent This is related to npm not being able to find a file.
app_front | npm ERR! enoent 
app_front | 
app_front | npm ERR! A complete log of this run can be found in:
app_front | npm ERR!     /app/.npm/_logs/2020-08-08T13_35_16_656Z-debug.log
app_front exited with code 254

#参考対象者

  • Dockerを使って、Nuxt.jsアプリを立ち上げたい方

#環境

$ docker -v
Docker version 19.03.12

#エラー発生

###ディレクトリ構成

environment--/app
             |
             |--docker-compose.yml
             |--/front
                |
                |--Dockerfile
Dockerfile
FROM node:12.5.0-alpine

ENV HOME="/app" \
    LANG=C.UTF-8 \
    TZ=Asia/Tokyo

WORKDIR ${HOME}

RUN apk update && \
    apk upgrade && \
    npm install -g npm && \
    npm install -g @vue/cli

ENV HOST 0.0.0.0
EXPOSE 300
docler-compose.yml
version: "3"

services:
  front:
    container_name: app_front
    build: front
    command:
      npm run dev
    tty: true
    volumes:
      - ./front:/app
    ports:
      - 8080:3000
    depends_on:
      - back

###コンテナ作成から、サーバー起動

ビルドしてイメージを作成する。

$ docker-compose build

作成したイメージから、Nuxt.jsのアプリをつくていく。

$ docker-compose run --rm front npx create-nuxt-app sample_app

アプリが作成できたら、コンテナを立ち上げてみる(=サーバーを立ち上げる)

$ docker-compose up

すると、冒頭にあったエラーが、、、

Starting app_front ... done
Attaching to app_front
app_front | npm ERR! code ENOENT
app_front | npm ERR! syscall open
app_front | npm ERR! path /app/package.json
app_front | npm ERR! errno -2
app_front | npm ERR! enoent ENOENT: no such file or directory, open '/app/package.json'
app_front | npm ERR! enoent This is related to npm not being able to find a file.
app_front | npm ERR! enoent 
app_front | 
app_front | npm ERR! A complete log of this run can be found in:
app_front | npm ERR!     /app/.npm/_logs/2020-08-08T13_35_16_656Z-debug.log
app_front exited with code 254

#解決への試行錯誤

app_front | npm ERR! path /app/package.json
app_front | npm ERR! errno -2
app_front | npm ERR! enoent ENOENT: no such file or directory, open '/app/package.json'

この辺のエラーを見ると、/app/package.jsonとかディレクトリ構成が違ってんだよなぁーとか思いつつ、そこを中心にせめていくことにした。

まずは、本来のディレクトリ構成である/app/front/package.jsonでコンテナを起動するように、コマンドでディレクトリ移動させるようにする。

docker-compose.yml
    command:>
      cd front    #追記
      npm run dev

サーバー起動

$ docker-compose up

#エラー出力

違うエラー....

#解決法

そうか、じゃあ最初から起動する場所を指定すればいいじゃん。
ということで、

Dockerfile
FROM node:12.5.0-alpine

ENV HOME="/app/feederin" \   #HOMEの値を変更
    LANG=C.UTF-8 \
    TZ=Asia/Tokyo

WORKDIR ${HOME}

RUN apk update && \
    apk upgrade && \
    npm install -g npm && \
    npm install -g @vue/cli

ENV HOST 0.0.0.0
EXPOSE 3000

更新したDockerfileから、イメージを再構築する

$ docker-compose up -d --build

そして、コンテナを起動すると、、、

$ docker-compose up -d

Starting app_front ... done

嬉しみいいいいい(起動した。)

11
4
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
11
4

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?