node.jsをdocker-composeで動かしたら、Error: Cannot find module '/bash'になる
2763 ワード
プログラミングを覚えて丁度1年くらいの未熟エンジニアがdeockerでnode.jsの環境構築をしてつまづいた話です。
- Dockerfile
FROM node:14.5.0-alpine3.12
WORKDIR /app
COPY . /app
RUN npm install
- docker-compose.yml
version: '3'
services:
app:
build: .
ports:
- 3000:3000
tty: true
volumes:
- .:/app
command: bash -c "node index.js"
depends_on:
- db
db:
image: postgres:12.2
ports:
- "5432:5432"
environment:
- "POSTGRES_USER=hogehoge"
- "POSTGRES_PASSWORD=hogehoge"
- "POSTGRES_DB=hogehoge"
これを実行すると
Error: Cannot find module '/app/bash'
って言われます。
結論
alpineにbashは無いそうです。。
alpineは軽量で良いと言われ、使っていました。
ちゃんと調べないとダメですね。。
command: ash -c "node index.js"
docker-compose.ymlのcommandのところをbash => ashに変えたらOKでした
Author And Source
この問題について(node.jsをdocker-composeで動かしたら、Error: Cannot find module '/bash'になる), 我々は、より多くの情報をここで見つけました https://qiita.com/akadashi/items/9c4b4b4a29662257aeac著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .