[英]Deploying nodejs,mongodb,redis app with docker
我有一个包含 nodejs、mongodb 和 redis 的应用程序。我想将此应用程序部署到 heroku。但我不知道如何实现。 我读过一些文章。 不幸的是,我无法理解
docker 档案
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-compose 与 Heroku 一起使用,因此您可能希望首先让该应用程序至少运行。
要构建和推送应用程序,请查看此https://devcenter.heroku.com/articles/container-registry-and-runtime 。 您将需要传递一个环境变量以在正确的端口上启动应用程序,因此在您的 Dockerfile 中使用
公开 $PORT
CMD npm 开始-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-应用程序环境。
我希望这可以帮助您前进。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.