大佬教程收集整理的这篇文章主要介绍了将node.js移动到docker容器,接收无法文件模块错误,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
Dockerfile:
FROM node:latest # install our dependencies and nodejs RUN mkdir -p /usr/src RUN mkdir -p /tmp/dist ADD Account/package.json /tmp/package.json RUN cd /tmp && npm install --production ADD Account/dist /tmp/dist RUN mkdir -p /tmp/node_modules/mongodb-repository ADD Account/node_modules/mongodb-repository /tmp/node_modules/mongodb-repository RUN mkdir -p /usr/src/app && cp -a /tmp/node_modules /usr/src/app && cp -a /tmp/package-lock.json /usr/src/app RUN cp -a /tmp/dist/application /usr/src/app && cp -a /tmp/dist/config /usr/src/app && cp -a /tmp/dist/domain /usr/src/app && cp -a /tmp/dist/infrastructure /usr/src/app RUN cp -a /tmp/dist/routes /usr/src/app && cp -a /tmp/dist/types /usr/src/app && cp -a /tmp/dist/webapp.js /usr/src/app && cp -a /tmp/package.json /usr/src/app RUN chmod 755 /usr/src/app/webapp.js RUN mkdir -p /usr/src/app/bin COPY Account/bin /usr/src/app/bin COPY Account/.env /usr/src/app/.env WORKDIR /usr/src/app CMD [ "node","webapp.js" ] EXPOSE 3000
泊坞窗,compose.yml
version: '2' services: mongo: container_name: "app_mongo" tty: true image: mongo:latest environment: - MONGO_data_dir=/data/db - MONGO_LOG_DIR=/dev/null - MONGO_INITDB_ROOT_USERNAME=******** - MONGO_INITDB_ROOT_password=******** volumes: - /data/dbdocker:/data/db ports: - 27017:27017 command: "mongod --smallfiles --auth" rabbitmq: container_name: "app_rabbitmq" tty: true image: rabbitmq:management ports: - "15672:15672" - "15671:15671" - "5672:5672" volumes: - /rabbitmq/lib:/var/lib/rabbitmq - /rabbitmq/log:/var/log/rabbitmq - /rabbitmq/conf:/etc/rabbitmq/ group: container_name: "app_group" build: context: . dockerfile: ./Account/Dockerfile volumes: - ./Account:/usr/src/app/ ports: - "3000:3000" depends_on: - mongo - rabbitmq
RUN mkdir -p /usr/src RUN mkdir -p /usr/src/app && cp -a /tmp/node_modules /usr/src/app && cp -a /tmp/package-lock.json /usr/src/app RUN cp -a /tmp/dist/application /usr/src/app && cp -a /tmp/dist/config /usr/src/app && cp -a /tmp/dist/domain /usr/src/app && cp -a /tmp/dist/infrastructure /usr/src/app RUN cp -a /tmp/dist/routes /usr/src/app && cp -a /tmp/dist/types /usr/src/app && cp -a /tmp/dist/webapp.js /usr/src/app && cp -a /tmp/package.json /usr/src/app RUN chmod 755 /usr/src/app/webapp.js RUN mkdir -p /usr/src/app/bin COPY Account/bin /usr/src/app/bin COPY Account/.env /usr/src/app/.env WORKDIR /usr/src/app
在构建阶段之后,所有这些都被烘焙到您的图像中并准备好使用.但是在运行时,你告诉docker-compose:
volumes: - ./Account:/usr/src/app/
这是一个叠加装载.无论在/usr/src / app中构建到映像中的内容都被完全忽略,并替换为docker-compose.yml所在目录中的./Account内容.
我不太了解您的项目如何正确地解决这个问题,但这可能是您的错误所在.在构建/usr/src / app的过程中完成的所有工作都是通过在运行时在其上安装另一个目录来撤消的.
如果删除该卷安装,则所有/usr/src / app仍然存在且可以使用.但是,这可能会产生其他副作用,您需要考虑这些副作用才能使您的应用程序发挥作用.
以上是大佬教程为你收集整理的将node.js移动到docker容器,接收无法文件模块错误全部内容,希望文章能够帮你解决将node.js移动到docker容器,接收无法文件模块错误所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。