teratail header banner
teratail header banner
質問するログイン新規登録
docker-compose

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

Node.js

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

Q&A

1回答

1182閲覧

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

fc2LiveAdult

総合スコア4

docker-compose

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

Node.js

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

0グッド

0クリップ

投稿2022/07/22 15:36

0

0

前提

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

1├─mysql 2│ ├─conf 3│ │ └─my.conf 4│ └─data 5│ ├─mysql 6│ ├─performance_schema 7│ └─sys 8└─node 9│ └─app 10│ └─src 11│ │ ├─index.js 12│ │ └─Dockerfile 13│ └─package.json 14└─docker-compose.yml

json

1// package.json 2{ 3 "name": "mysql", 4 "version": "1.0.0", 5 "description": "", 6 "main": "index.js", 7 "scripts": { 8 "start": "node index.js" 9 }, 10 "author": "", 11 "license" : "MIT", 12 "dependencies": { 13 "mysql": "^2.17.1", 14 "express": "^4.16.4" 15 } 16 }

Docker

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

docker

1# docker-compose.yml 2version: '3' 3services: 4 app: 5 build: 6 context: ./node 7 dockerfile: Dockerfile 8 container_name: node_app_container 9 environment: 10 - MYSQL_HOST=${DB_HOST_NAME} 11 - MYSQL_USER=${DB_USER} 12 - MYSQL_PASS=${DB_PASS} 13 - MYSQL_DB=${DB_NAME} 14 volumes: 15 - ./node/app/src:/app/src 16 ports: 17 - "30001:8005" 18 19 db: 20 env_file: .env 21 restart: always 22 image: mysql:5.7 23 container_name: node_db_container 24 volumes: 25 - ./mysql/data:/var/lib/mysql 26 - ./mysql/conf/my.conf:/etc/mysql/conf.d/my.cnf 27 ports: 28 - "3306:3306" 29 environment: 30 - MYSQL_USER=${DB_USER} 31 - MYSQL_PASSWORD=${DB_PASS} 32 - MYSQL_ROOT_PASSWORD=${DB_PASS} 33 - TZ=${DB_TZ}

javascript

1// index.js 2const http = require("http"); 3 4const server = http.createServer((request, response) => { 5 response.writeHead(200, { 6 "Content-Type": "text/html" 7 }); 8 9 const responseMessage = "<h1>Hello World</h1>"; 10 response.end(responseMessage); 11 console.log(`Sent a response : ${responseMessage}`); 12}); 13 14server.listen(port);

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

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

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

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

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

guest

回答1

0

/node/app/srcにあるはずの想定なのにdocker-compose.ymlで/app/srcにバインドマウントしているからでは

投稿2022/07/22 15:46

RiaFeed

総合スコア2703

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

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

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

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

ただいまの回答率
85.30%

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

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

質問する

関連した質問