Cuando ejecuto el siguiente código simple de Node.js (index.js) usando Docker, el código se ejecuta como se esperaba, esperando la entrada del usuario. Pero cuando ejecuto el mismo código usando Docker-Compose, Node.js sale antes de esperar la entrada del usuario.
Pude ejecutar la aplicación Node usando Dockerfile, pero no Docker-Compose
Aquí está el archivo index.js que puedo ejecutar en Dockerfile (pero no en Docker-Compose):
const readline = require('readline').createInterface({ input: process.stdin, output: process.stdout }); readline.question(`What's your name? `, (name) => { console.log(`Hi ${name}!`) readline.close() });Y el Dockerfile que usé:
FROM node:12.2 ENV NODE_ENV=development ENV NPM_CONFIG_LOGLEVEL warn WORKDIR /app COPY package*.json /app/ RUN npm install && npm cache clean --force WORKDIR /app/src CMD ["node", "index.js"] As with the Dockerfile experience: ```shell $ docker build -t commandline . ... $ docker run -it --rm -v $(pwd)/src:/app/src commandline What's your name? Scott Hi Scott!Esperaba que la versión de Docker-Compose se ejecutara de la misma manera, pero sale del proceso de Node y Docker antes de que el usuario tenga la oportunidad de responder:
$ docker-compose up Creating mega_node_1 ... done Attaching to mega_node_1 node_1 | What's your name? mega_node_1 exited with code 0 $