Levix 空间站
921 subscribers
219 photos
11 videos
20 files
1.39K links
主要分享前端、AI 以及前沿科技资讯。

🚫 禁止人身攻击:请在评论区保持尊重和友好,避免不当言论和负面互动。

🚫 禁止违规内容:请勿发布任何黄赌毒、宗教极端、政治敏感或其他违反社区规定的内容。
主要分享前端以及业界科技资讯。

🚫 禁止广告与刷屏:为了维护良好的交流环境,请不要进行任何形式的广告推广、黑产活动、刷屏行为及发布不适内容。

🔒 保护个人信息:请注意个人隐私和网络安全,不要在评论区泄露个人信息或点击不明链接。
Download Telegram
如何优化 NodeJS 在 Docker 中的构建过程。Docker 是管理容器的重要工具,但其内部工作机制对新手来说可能难以掌握。在处理基础设施时,理解 Docker 的优化变得至关重要。通过实现最佳效率,可以长期节省时间和金钱。

Docker 中构建 NodeJS 应用程序通常涉及以下几个步骤:使用正确的 Node 基础镜像、复制源代码、安装依赖、构建/编译源代码、运行过程。通过检查,可以发现最终 Docker 镜像中可以消除两个层级:一旦编译了源代码,“复制源代码”的步骤就变得不相关;开发依赖(devDependencies)仅在开发过程中需要,在生产环境运行过程中不需要。

文章中讨论了多种优化技术,包括:

1. 初始化 Dockerfile:创建一个简单的 Dockerfile 来启动 NodeJS 过程。
2. 使用 `.dockerignore`**:忽略某些文件夹,以显著改变构建时间或大小。
3. 使用 Slim 或 Alpine 镜像:选择更稳定兼容的 Slim 镜像,尽管其减少的镜像大小可能较少。
4. 多阶段构建:改变上下文,仅发送最终阶段,从而复制编译的源代码并完全移除
node_modules 或部分源代码。
5. 缓存依赖:通过引入一个名为
deps 的新阶段,仅复制 package.json** 文件,有效利用 Docker 的缓存机制。
6. 清理依赖:移除不再需要的开发依赖,减少最终镜像大小。

实施这些优化技术后,显著改善了构建时间和镜像大小。新构建时间从原来的 106.8 秒减少到 60.6 秒,节省了约 43% 的时间;部分缓存构建时间从 69 秒减少到 18 秒,减少了 73%;完全缓存构建时间仅需 0.9 秒。镜像大小从 2.48GB 减少到 0.51GB,减少了约 79%。然而,尽管这些结果显著,但最终镜像大小对于 API 来说仍然相对较大。总的来说,这是一个漫长且繁琐的过程,需要很长时间才能掌握,对新手来说难以解释,且难以维护。

#Docker

https://www.specfy.io/blog/1-efficient-dockerfile-nodejs-in-7-steps
Docker-OSX 允许用户在 Docker 容器中运行 macOS 虚拟机,实现接近原生的 OSX-KVM 性能。该项目支持 X11 转发,适用于 macOS 安全研究以及持续集成/持续部署(CI/CD)环境,并特别对 iMessage 安全研究提供了便利。

#Tools #Docker

https://github.com/sickcodes/Docker-OSX