linux – 在Docker容器中使用bcrypt的ELF头文件或安装问题

linux – 在Docker容器中使用bcrypt的ELF头文件或安装问题,第1张

概述有点像,但是有没有人在 linux容器(特别是docker)中使用bcrypt并且知道自动化的解决方法有什么问题?我和这两个问题有同样的问题: Invalid ELF header with node bcrypt on AWSBox bcrypt invalid elf header when running node app 我的Dockerfile # Pull base imageFRO 有点像,但是有没有人在 linux容器(特别是docker)中使用bcrypt并且知道自动化的解决方法有什么问题?我和这两个问题有同样的问题:

Invalid ELF header with node bcrypt on AWSBox

bcrypt invalid elf header when running node app

我的Dockerfile

# Pull base imageFROM node:0.12# Expose port 8080EXPOSE 8080# Add current directory into path /data in imageADD . /data# Set working directory to /dataworkdir /data# Install dependencIEs from package.JsonRUN npm install --production# Run index.JsCMD ["npm","start"]

如果我已经在我的node_modules中安装了bcrypt,我得到前面提到的无效ELF头错误,但是如果我删除它(或者只是我自己或我的所有包),在构建容器时由于某种原因没有安装它.我必须在构建后手动输入容器并将其安装在内部.

有自动化的解决方法吗?

或者,也许,只是,什么是一个很好的替代bcrypt与Node堆栈?

解决方法 利亚姆的评论是关于钱,只是为互联网上的未来旅行者扩展它.

问题是您已将node_modules文件夹复制到容器中.这是一个问题的原因是bcrypt是一个本机模块.它不仅仅是JavaScript,还包括一堆在安装时编译的C代码.

来自该编译的二进制文件存储在node_modules文件夹中,并且它们被自定义到它们构建的位置.将它们从OSX家中移植到一个奇怪的linux领域会导致它们行为不端并抱怨ELF标题和仙女脚.

解决方案是回显node_modules>> .dockerignore并运行npm install作为Dockerfile的一部分.这意味着本机模块将在容器内编译,而不是在笔记本电脑外部编译.

有了这个,就不需要在启动CMD之前运行npm install.只是在Dockerfile的构建阶段就可以了.

protip:官方节点映像设置NODE_ENV =默认生产,其中npm与–production标志相同.大多数时候这是一件好事.当您的Dockerfile还包含一些依赖于dev依赖项(webpack等)的构建步骤时,这不是一件好事.在这种情况下,您需要NODE_ENV = null npm install

pro protip:你可以通过将package.Json分别复制到代码的其余部分来更好地利用Docker的缓存.使您的Dockerfile看起来像这样:

# Pull base imageFROM node:0.12# Expose port 8080EXPOSE 8080# Set working directory to /dataworkdir /data# Set working directory to /datacopY package.Json /data# Install dependencIEs from package.JsonRUN npm install# Add current directory into path /data in imageADD . /data# Run index.JsCMD npm start

这样Docker只会在你更改package.Json时重新运行npm install,而不是每次更改一行代码时.

总结

以上是内存溢出为你收集整理的linux – 在Docker容器中使用bcrypt的ELF头文件或安装问题全部内容,希望文章能够帮你解决linux – 在Docker容器中使用bcrypt的ELF头文件或安装问题所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/1047396.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-25
下一篇 2022-05-25

发表评论

登录后才能评论

评论列表(0条)

保存