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

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

新規登録して質問してみよう
ただいま回答率
87.20%
docker-compose

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

Node.js

Node.jsとはGoogleのV8 JavaScriptエンジンを使用しているサーバーサイドのイベント駆動型プログラムです。

受付中

docker-compose, nodejs, mysqlでサーバーを立ち上げる時、npm startしても起動しない

fc2LiveAdult
fc2LiveAdult

総合スコア4

docker-compose

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

Node.js

Node.jsとはGoogleのV8 JavaScriptエンジンを使用しているサーバーサイドのイベント駆動型プログラムです。

1回答

0評価

0クリップ

167閲覧

投稿2022/07/22 15:36

前提

docker-compseを使ってnode.jsで作ったHTTPサーバーを起動したいです。

実現したいこと

docker-compose, nodejs, mysqlでサーバーを立ち上げる時、npm startしたら起動するようにしたいです。

発生している問題・エラーメッセージ

modlueが見つからないエラーが発生しています
このindex.jsはサーバー立ち上げていて、パスもあっているはずなのに見つからないエラーが発生しているのはなぜでしょうか????

$ docker-compose up ~一部略~ node_app_container | node:internal/modules/cjs/loader:936 node_app_container | throw err; node_app_container | ^ node_app_container | node_app_container | Error: Cannot find module '/node/app/src/index.js' node_app_container | at Function.Module._resolveFilename (node:internal/modules/cjs/loader:933:15) node_app_container | at Function.Module._load (node:internal/modules/cjs/loader:778:27) node_app_container | at Function.executeUserEntryPoint [as runMain] (node:internal/modules/run_main:77:12) node_app_container | at node:internal/main/run_main_module:17:47 { node_app_container | code: 'MODULE_NOT_FOUND', node_app_container | requireStack: [] node_app_container | } node_app_container exited with code 1

該当のソースコード

tree

├─mysql │ ├─conf │ │ └─my.conf │ └─data │ ├─mysql │ ├─performance_schema │ └─sys └─node │ └─app │ └─src │ │ ├─index.js │ │ └─Dockerfile │ └─package.json └─docker-compose.yml

json

// package.json { "name": "mysql", "version": "1.0.0", "description": "", "main": "index.js", "scripts": { "start": "node index.js" }, "author": "", "license" : "MIT", "dependencies": { "mysql": "^2.17.1", "express": "^4.16.4" } }

Docker

# Dockerfile FROM node:16-alpine3.15 WORKDIR /node/app/src COPY ./app/package.json ./ RUN ["npm", "install"] EXPOSE 8005 CMD [ "npm", "start" ]

docker

# docker-compose.yml version: '3' services: app: build: context: ./node dockerfile: Dockerfile container_name: node_app_container environment: - MYSQL_HOST=${DB_HOST_NAME} - MYSQL_USER=${DB_USER} - MYSQL_PASS=${DB_PASS} - MYSQL_DB=${DB_NAME} volumes: - ./node/app/src:/app/src ports: - "30001:8005" db: env_file: .env restart: always image: mysql:5.7 container_name: node_db_container volumes: - ./mysql/data:/var/lib/mysql - ./mysql/conf/my.conf:/etc/mysql/conf.d/my.cnf ports: - "3306:3306" environment: - MYSQL_USER=${DB_USER} - MYSQL_PASSWORD=${DB_PASS} - MYSQL_ROOT_PASSWORD=${DB_PASS} - TZ=${DB_TZ}

javascript

// index.js const http = require("http"); const server = http.createServer((request, response) => { response.writeHead(200, { "Content-Type": "text/html" }); const responseMessage = "<h1>Hello World</h1>"; response.end(responseMessage); console.log(`Sent a response : ${responseMessage}`); }); server.listen(port);

良い質問の評価を上げる

以下のような質問は評価を上げましょう

  • 質問内容が明確
  • 自分も答えを知りたい
  • 質問者以外のユーザにも役立つ

評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

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

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

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

teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

  • プログラミングに関係のない質問
  • やってほしいことだけを記載した丸投げの質問
  • 問題・課題が含まれていない質問
  • 意図的に内容が抹消された質問
  • 過去に投稿した質問と同じ内容の質問
  • 広告と受け取られるような投稿

評価を下げると、トップページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

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

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

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

ただいまの回答率
87.20%

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

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

質問する

関連した質問

同じタグがついた質問を見る

docker-compose

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

Node.js

Node.jsとはGoogleのV8 JavaScriptエンジンを使用しているサーバーサイドのイベント駆動型プログラムです。