SO ...Как-запустить Node.js экземпляр Docker сбросив в оболочку, которая автоматически хвостовых журналы
Я пытаюсь создать элегантный Docker установки/узла для моей команды на проект с нуля прототипа , Моя команда должны иметь Узел/НМП и Docker CLI установлен заранее, но после этого я буду использовать НПМ управлять всем и ранее было ...
"scripts": {
"docker": "npm run docker-build && npm run docker-start",
"docker-build": "docker build -t docker_foo .",
"docker-start": "docker run -it -p 8080:8080 --rm docker_foo",
"start": "node server.js"
}
... и Dockerfile содержит CMD ...
# Other stuff...
EXPOSE 8080
CMD ["npm", "start"]
... который в конечном итоге запустит сервер узлов. Это хорошо работает для просмотра журналов и очистки контейнеров, но я хочу сделать это лучше. Я хотел бы вместо этого запустить контейнер в фоновом режиме с помощью опции -d и вместо этого присоединить к контейнеру исходную команду, которая заканчивает журналы, чтобы имитировать одно и то же поведение, за исключением того, что когда пользователь завершает процесс, они все еще находятся в контейнере, поэтому они могут оценить текущее состояние контейнера. Это привело меня иметь ...
"scripts": {
"docker": "npm run docker-build && npm run docker-start && npm run docker-attach",
"docker-build": "docker build -t docker_foo .",
"docker-start": "docker run -d -p 8080:8080 --name docker_foo docker_foo",
"docker-attach": "docker exec -it docker_foo /bin/ash",
"docker-clean": "npm run docker-clean-containers && npm run docker-clean-images",
"docker-clean-containers": "docker ps -a -q | xargs docker rm -f -v",
"docker-clean-images": "docker images -f 'dangling=true' -q | xargs docker rmi",
"start": "node server.js"
}
... но у меня возникли некоторые проблемы с поиском, где логи сервера узла хранятся либо на контейнере или на моем локальном узле, чтобы включить этот желаемый рабочий процесс. Есть ли способ перенаправить STD out и err в место в контейнере для исторических целей и способ расширения моей команды attach выше, чтобы изначально перекрыть эти журналы?
Вы считаете использование 'docker logs docker_foo'? –
Правда, это сработало бы ... особенно '' 'docker logs -f docker_foo''', чтобы вы могли заворачивать журналы с главной машины, но, как ни странно, я не могу найти файл журнала. Запуск следующей ... '' 'докер осматривайте --format = '{{. LogPath}}' docker_foo''' дает путь (/var/lib/docker/containers/d6797a784663ff7b8f3626e78ee4db5b6c7f6b2c1521d37a012c45664f8f0d7d/d6797a784663ff7b8f3626e78ee4db5b6c7f6b2c1521d37a012c45664f8f0d7d-json.log), что Безразлично В моем контейнере и в моей локальной коробке не существует. – Lane