首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何运行node.js停靠实例,放入自动跟踪日志的shell中

如何运行node.js停靠实例,放入自动跟踪日志的shell中
EN

Stack Overflow用户
提问于 2016-11-16 02:02:23
回答 1查看 1.2K关注 0票数 1

所以..。

我正试图为我的团队在一个绿地原型项目上创建一个优雅的对接/节点设置。我的团队需要事先安装Node / NPM和Docker CLI,但之后我将使用NPM来管理所有的事情,之前有.

代码语言:javascript
复制
"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.

代码语言:javascript
复制
# Other stuff...

EXPOSE  8080

CMD ["npm", "start"]

...that最终将启动节点服务器。这对于查看日志和清理容器非常有效,但我想让它变得更好。相反,我希望使用-d选项在后台启动容器,然后使用一个初始命令来跟踪日志以模拟相同的行为,但当用户终止进程时,它们仍然处于容器中,以便计算容器的当前状态。这让我有..。

代码语言:javascript
复制
"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重新定向并将错误发送到容器内的位置,以及展开上述附加命令,以便最初跟踪这些日志?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-11-18 23:34:35

我最后所做的只是在后台启动节点服务器.

代码语言:javascript
复制
"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监视应用程序和测试目录,以重新运行测试,并不断将结果输出到窗口。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/40622868

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档