【问题标题】:Deploying nodejs,mongodb,redis app with docker使用 docker 部署 nodejs、mongodb、redis 应用
【发布时间】:2020-08-30 05:14:24
【问题描述】:

我有一个包含 nodejs、mongodb 和 redis 的应用程序。我想将此应用程序部署到heroku。但我不知道如何实现这一目标。我读过一些文章。不幸的是,我无法理解

泊坞窗文件

FROM node:latest

WORKDIR /usr/src/app

COPY package*.json ./

RUN npm install 

COPY . .

EXPOSE 5000

CMD ["npm","start"]

docker-compose.yml

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}
 

任何建议都会帮助我

【问题讨论】:

    标签: docker heroku deployment docker-compose


    【解决方案1】:

    我建议您分别部署应用程序和数据库。我可能错了,但据我了解,您不能将 docker-compose 与 Heroku 一起使用,因此您可能希望首先让应用程序至少运行。

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

    暴露 $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

    我希望这可以帮助您继续前进。

    【讨论】:

    • 感谢您的建议。如何处理 docker-compoase.yml 中的环境变量。我的意思是我必须手动将它们添加到 heroku 吗?
    • 要在 Heroku 中部署 dockerized 应用程序,您不需要 docker-compose 文件,您只需使用 Dockerfile。 Heroku 自动传递 $PORT 变量,您不需要设置它。事实上,您甚至不需要公开它,因为 Heroku 会自动选择 $PORT 中指定的那个。如果您想在 docker-compose 中将端口作为 env 变量传递(供本地使用),请在此处查看 docs.docker.com/compose/environment-variables
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-02-09
    • 1970-01-01
    • 2020-07-19
    • 1970-01-01
    • 2021-03-18
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多