Я пытаюсь реализовать простое приложение Node.js, используя только файл Docker-compose
. Я немного запутался, когда запускаю докер с помощью команды docker-compose up
и проверяю работающий контейнер, в котором написано restarting
, и ничего не происходит.
Я хочу реализовать это приложение Node.js, используя только docker-compose.yml
файл и без использования Dockerfile
. Большинство примеров в сети используют отдельный Dockerfile
для Node.js для создания образа, и этот образ использовался файлом docker-compose.yml
для создания контейнера.
Я пробовал то же самое сDockerfile
и это прекрасно сработало для меня. Но когда я удаляю этот Dockerfile
и просто использую файл docker-compose.yml
, я сталкиваюсь с проблемой restarting
:
Error response from daemon: Container a7fe8cdc262ae6c57e33b60b1a69084df1313e590 is restarting, wait until the container is running
docker-compose.yml
file:
version: '3'
services:
db:
build: ./db
environment:
MYSQL_DATABASE: mydb
MYSQL_ROOT_PASSWORD: mypass
MYSQL_USER: mysql
MYSQL_PASSWORD: mypass
DATABASE_HOST: myhost
web:
image: node:8
volumes:
- ./web:/usr/src/app
working_dir: /usr/src/app
command: bash -c "npm run start && tail -F"
depends_on:
- db
restart: on-failure
Myindex.js
file:
//Make NodeJS to Listen to a particular Port in Localhost
const port = process.env.PORT || 9000;;
app.listen(port, function(){
// Start the server and read the parameter passed by User
console.log("Node js is Running on : "+port);
// Get process.stdin as the standard input object.
var standard_input = process.stdin;
// Set input character encoding.
standard_input.setEncoding('utf-8');
// Prompt user to input data in console.
console.log("Please input text in command line.");
// When user input data and click enter key.
standard_input.on('data', function (data) {
console.log(" DATA ENTERED BY USER IS :"+data);
});
});
Мой предыдущий Dockerfile
для Node.js, который я пытаюсь удалить:
FROM node:8
WORKDIR /usr/src/app
COPY package*.json ./
RUN npm install
COPY . .
EXPOSE 9000
CMD ["npm","start"]
CMD tail -f /dev/null