Я пытаюсь построить докер-контейнер с log.io. Если я вручную запустить:После сборки докеров. контейнер не отображается, почему?
docker run -it node:argon -p 28777:28777 -p 28778:28778 -p 8000:80 /bin/bash
и вручную запустить внутри команды, которые вы видите в Dockerfile тогда все работает отлично, и я могу войти в службу с помощью HTTP.
FROM node:argon
WORKDIR Logz.io/src/
RUN useradd -ms /bin/bash ubuntu
#RUN mkdir /root/.log.io \
# && touch /root/.log.io/harvester.conf \
# && touch /root/.log.io/log_server.conf \
# && touch /root/.log.io/web_server.conf
#RUN chmod g+rwx /root/logzio
RUN apt-get update \
&& apt-get install -y vim net-tools
RUN npm install log.io
RUN /node_modules/log.io/bin/log.io-server &
RUN /node_modules/log.io/bin/log.io-harvester &
EXPOSE 28777
EXPOSE 28778
EXPOSE 8000
Но если я бегу:
docker build .
Контейнер создается, все установлено, но:
- Когда заканчивается создание и я бегу
docker ps -a
, контейнер не (хотя я получаю детали, когда я запускаюdocker inspect
).- Служба Log.io недоступна, когда я просматриваю ее через http.
Кто-нибудь знает, что я делаю неправильно?
После того, как вы сказали, контейнер создан правильно, но когда я внутри него, я вижу, что службы узла не работают, поняли почему? –
Возможно, вам потребуется использовать ENTRYPOINT и CMD, посмотрите здесь, на примере этого флэка, http://containertutorials.com/docker-compose/flask-simple-app.html. Эта конфигурация, которая будет представлена, будет генерировать запущенный сервер Flask при создании контейнера. В качестве альтернативы вы можете явно выполнить сервер в команде 'docker run ... '. Я не использую NPM так много, но это должно перевести то же самое. –