我已经尝试了这篇和这篇文章中提出的所有解决方案,但无法解决以下错误,该错误在运行
这是我的最新尝试docker-compose.yml文件:
在尝试上述两个链接的解决方案后,我重建了容器,但仍然遇到了相同的错误。值得注意的是,当我不使用docker时,该服务在本地运行良好。如何让docker与bcrypt一起工作?
更新
我通过以下方式使它正常工作:
1. 查找容器的ID:
docker-compose up
时出现:module.js:598
return process.dlopen(module, path._makeLong(filename));
^
Error: /code/node_modules/bcrypt/lib/binding/bcrypt_lib.node: invalid ELF header
这是我的最新尝试docker-compose.yml文件:
version: "2"
services:
app:
build: ./client
ports:
- "3000:3000"
links:
- auth
volumes:
- ./client:/code
auth:
build: ./auth-service
ports:
- "3002:3002"
links:
- db
volumes:
- ./auth-service:/code
db:
...
以下是我的认证服务Dockerfile:
FROM node:7.7.1
EXPOSE 3002
WORKDIR /code
COPY package.json /code
RUN npm install
COPY . /code
CMD npm start
在尝试上述两个链接的解决方案后,我重建了容器,但仍然遇到了相同的错误。值得注意的是,当我不使用docker时,该服务在本地运行良好。如何让docker与bcrypt一起工作?
更新
我通过以下方式使它正常工作:
1. 查找容器的ID:
docker ps
2. 访问容器:docker exec -t -i containerId /bin/bash
3. 安装bcrypt:npm install bcrypt
这对于可移植性来说并不理想。
package.json
文件中是否存在bcrypt
。同时,请将以下内容添加到您的.dockerignore
文件中:node_modules
和node_modules/*
。 - Evan Pnode_modules
id,但没有node_modules/*
。我需要两个吗? - Scottvolume
是否复制了主机上的node_modules
。请注意,volume
不会遵循.dockerignore
或.gitignore
。它是在docker run
运行时生成的。 - Evan P