修改在Docker容器中使用的节点堆栈跟踪path
我通常在Docker容器中开发Node应用程序,并将我的源代码绑定到容器中,例如在/usr/src/app
。 如果代码抛出一个堆栈跟踪,我得到如下所示:
TypeError: Cannot read property 'createElement' of undefined at parseUrl (/usr/src/app/node_modules/auth0-lock/lib/utils/url_utils.js:6:31) at extractClientBaseUrlOption (/usr/src/app/node_modules/auth0-lock/lib/core/index.js:425:42) at Object.setup (/usr/src/app/node_modules/auth0-lock/lib/core/index.js:110:20) at setupLock (/usr/src/app/node_modules/auth0-lock/lib/core/actions.js:47:13) at Auth0Lock.Base (/usr/src/app/node_modules/auth0-lock/lib/core.js:77:36)
这是非常酷的,因为Node知道它在/ usr / src / app中运行。 这就是我们想要的 – 我们的应用程序不知道主机的任何信息。
但是,VS Code在分析集成terminal中的path时有一个非常方便的function,允许您点击它们来打开源代码。 这在容器内不起作用,因为主机上的path不正确。 我需要'重写'它(使用这个术语)到/Users/shankie/project/node_modules/auth0-lock/lib/utils/url_utils.js
任何人都有类似的运气吗? 我可以在VS Code和Node中设想可能的解决scheme…
这不是内置的,但你可能有一些运气,通过更改Error
原型:
- https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Error
- https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Error/prototype
请记住,一些方法和属性不是标准的 – 请参阅:
或者,你可以在Docker中创build一个符号链接,这样你就可以在你的机器上运行相同的目录 – 这也是一个选项,不需要修改代码。
- 将docker容器连接到主机本地networking中的数据库
- 在Ubuntu上的Docker TLS错误
- 如果容器崩溃,那么Docker镜像怎么样?
- net :: ERR_CONTENT_LENGTH_MISMATCH在docker云上的angular度2上
- 如何在Docker容器上设置ulimit /文件描述符,图片标签是phusion / baseimage-docker
- 如何将环境variables传递给RUN命令
- 如何调整docker容器的cpu-share值dynamiclly?
- 试图让docker检查State.Health给出的地图没有键入“State”的条目
- Docker:找不到容器命令'/ bin / sh'