所以..。
我正试图为我的团队在一个绿地原型项目上创建一个优雅的对接/节点设置。我的团队需要事先安装Node / NPM和Docker CLI,但之后我将使用NPM来管理所有的事情,之前有.
"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"
}...and文档包含CMD.
# Other stuff...
EXPOSE 8080
CMD ["npm", "start"]...that最终将启动节点服务器。这对于查看日志和清理容器非常有效,但我想让它变得更好。相反,我希望使用-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"
}...but我很难找到节点服务器日志存储在容器或本地主机上的位置,以启用所需的工作流。为了历史目的,是否有方法将STD重新定向并将错误发送到容器内的位置,以及展开上述附加命令,以便最初跟踪这些日志?
发布于 2016-11-18 23:34:35
我最后所做的只是在后台启动节点服务器.
"scripts": {
"prebuild": "npm run clean",
"build": "docker build -t docker_foo .",
"clean": "npm run clean:containers && npm run clean:images && npm run clean:volumes",
"clean:containers": "docker ps -a -q | xargs docker rm -f -v",
"clean:images": "docker images -f 'dangling=true' -q | xargs docker rmi",
"clean:volumes": "docker volume ls -qf dangling=true | xargs docker volume rm",
"prerun": "npm run build",
"run": "docker run -d -p 8080:8080 --name docker_foo -v $(pwd)/app:/usr/src/docker_foo/app -v $(pwd)/test:/usr/src/docker_foo/test docker_foo",
"start": "nodemon --watch app server.js",
"logs": "docker logs -f admin_api",
"pretest": "npm run build",
"test": "docker run -p 8080:8080 --name docker_foo -it --rm docker_foo node_modules/.bin/istanbul cover node_modules/.bin/_mocha",
"prewatch": "npm run run",
"watch": "docker exec -it docker_foo node_modules/.bin/nodemon --exec \"node_modules/.bin/_mocha -w\""
}...so我可以运行"npm运行“,它将在后台运行我的docker实例,服务文件系统与我自己的主机一起被nodemon监视以进行快速的应用程序开发,然后我可以运行"npm日志”,以便在开发过程中跟踪日志。
或者,我现在可以运行"npm运行监视“,使坞映像/容器/卷被清理、重新构建并运行,并使用nodemon监视重新启动服务器,并运行mocha监视应用程序和测试目录,以重新运行测试,并不断将结果输出到窗口。
https://stackoverflow.com/questions/40622868
复制相似问题