Я создаю приложение Express (nodejs), которое работает на порте 3000, с простым миром приветствия и пересылается в публичный репозиторий github.Docker run, не имеет доступа к приложению
На самом деле, он прекрасно работает и код просто выглядит следующим образом:
var express = require('express');
var app = express();
app.get('/', function (req, res) {
res.send('Hello World!');
});
var server = app.listen(3000, function() {
var host = server.address().address;
var port = server.address().port;
console.log('Example app listening at http://%s:%s', host, port);
});
я м изучения докер, и я хочу, чтобы сделать этот небольшой код работать внутри контейнера, так что я создал этот dockerfile:
FROM phusion/baseimage:0.9.17
# Use baseimage-docker's init system.
CMD ["/sbin/my_init"]
# Install corresponding packages
# Git, pm2, curl
RUN apt-get update && apt-get install -y \
git \
curl
# Downloading NodeJs v0.12
RUN curl -sL https://deb.nodesource.com/setup_0.12 | sudo bash -
RUN apt-get install -y nodejs
# Cloning repository
RUN git clone https://github.com/User/hello-world.git
# Install global dependencies
RUN npm install -g pm2
# Move inside of the project
RUN cd hello-world && npm install && pm2 start app.js
# Clean up APT when done.
RUN apt-get clean && rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/*
Тогда я бег этого костюма команды:
docker build -t hello-world
docker run -p 3000:3000
После этого (и все successfu l), когда я пытаюсь получить доступ к http://localhost:3000/, Страница не найдена.
Мне нужна помощь, чтобы понять мои ошибки.
Спасибо за
вашей команды CMD не является правильной, это должна быть последней строкой вашего файла Docker – user2915097