一个关于 Nodejs Dockerfile 的小优化
一个关于 Nodejs Dockerfile 的小优化
建议点击 查看原文 查看最新内容。
原文链接: https://typonotes.com/posts/2024/02/20/a-simple-optimizion-for-nodejs-dockerfile/
原版 Dockerfile 如下。
|
|
在执行完成 npm install
之后没有更多的 错误判断。
- 如果没有出错, 一切都正常。 往下走就行了。
- 但是执行出错 npm 会将错误放在一个 错误文件中, 需要用户自行查询。
#10 13.06 npm ERR! /home/node/.npm/_logs/2024-02-16T08_23_58_047Z-debug.log
可以从图片中看到, 这里的输出都是执行日志, 都是 WARN。 根本不是根因。
很显然 在 CI 中是没办法登录到打包机上手动查看错误的文件的额。
优化方案
因此需要对这行命令做一个简单的优化。 在 npm install 失败的时候, 使用 tail
查看最后 100 行错误日志。
这是完整的 shell 脚本。
|
|
内容很简单,
- 保存 npm isntall 的 退出值,
- 如果 不等于0 则表示有错。
- 使用 tail 命令查看所有日志文件的最后 100 行
- 并使用 退出值 退出。
由于在打包机上每次执行前虚拟环境将被清空, 所以只有一个文件的错误日志。
更新 Dockerfile
在更新后 Dockerfile 中, 为了方便还是将 shell 脚本最小化成 一行 了。
|
|
再次执行之后, 可以看到。 日志中的正式错误是私有包鉴权失败导致的。
#10 12.78 20372 verbose statusCode 401
...
#10 12.78 20380 error Unable to authenticate, need: Basic realm="Artifactory Realm"
- 原文链接:https://typonotes.com/posts/2024/02/20/a-simple-optimizion-for-nodejs-dockerfile/
- 本文为原创文章,转载注明出处。
- 欢迎 扫码关注公众号
Go与云原生
或 订阅网站 https://typonotes.com/ 。 - 第一时间看后续精彩文章。觉得好的话,请猛击文章右下角「在看」,感谢支持。