首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用docker部署nodejs、mongodb、redis应用

使用docker部署nodejs、mongodb、redis应用
EN

Stack Overflow用户
提问于 2020-08-30 13:14:24
回答 1查看 554关注 0票数 0

我有一个包含nodejs,mongodb和redis的应用程序。我想将此应用程序部署到heroku。但我不知道如何才能做到这一点。我读过一些文章。不幸的是,我不能理解

docker文件

代码语言:javascript
复制
FROM node:latest

WORKDIR /usr/src/app

COPY package*.json ./

RUN npm install 

COPY . .

EXPOSE 5000

CMD ["npm","start"]

docker-compose.yml

代码语言:javascript
复制
version: '3'
services:

  mongo:
    container_name: mongo
    image: mongo
  
    ports:
      - '27017:27017'
  redis: 
    image: redis
    

  app:
    container_name: password-manager-docker
    restart: always
    build: .
    
    ports:
      - '80:5000'
    links: 
      - mongo
      - redis
    environment: 
      MONGODB_URI: ${MONGODB_URI}
      clientID: ${clientID}
      clientSecret : ${clientSecret}
      PORT: ${PORT}
      NODE_ENV : ${NODE_ENV}
      JWT_SECRET_KEY: ${JWT_SECRET_KEY}
      JWT_EXPIRE: ${JWT_EXPIRE}
      REFRESH_TOKEN: ${REFRESH_TOKEN}
      JWT_REFRESH_SECRET_KEY: ${JWT_REFRESH_SECRET_KEY}
      JWT_REFRESH_EXPIRE: ${JWT_REFRESH_EXPIRE}
      JWT_COOKIE: ${JWT_COOKIE}

任何建议都会对我有帮助

EN

回答 1

Stack Overflow用户

发布于 2020-08-30 15:13:40

我建议您将应用程序和数据库分开部署。我可能错了,但据我所知,你不能在Heroku中使用docker-compose,所以你可能首先要让应用程序至少运行起来。

要构建和推送应用程序,请检查此https://devcenter.heroku.com/articles/container-registry-and-runtime。您需要传递一个环境变量来在正确的端口上启动应用程序,因此在您的Dockerfile中使用

EXPOSE $PORT CMD npm start -p $PORT

这样,您将在Heroku提供的端口上运行服务器。

对于redis,您可以使用Heroku附加组件:https://devcenter.heroku.com/articles/heroku-redis

您将能够通过在应用程序的根目录下添加一个heroku.yml来指定附加组件:https://devcenter.heroku.com/articles/build-docker-images-heroku-yml#setup-defining-your-app-s-environment

我希望这能帮助你继续前进。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/63654169

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档