New release is coming soon! If you want to try out the latest features, simply run
npm i -s moleculer@next
. The docs for the latest version are available
here.
部署(Deploying)
Docker 部署 下面的示例展示了如何使用moleculer-runner 和Docker在多个容器中部署Moleculer服务。
请注意,moleculer-runner能够读取环境变量,这些变量在Docker部署中被大量使用。 有关Runner配置加载逻辑的更多信息。
这里显示的Docker文件来自moleculer-demo 项目。
有关Docker和Kubernetes的更详细信息,请查看docker demo 仓库。
Dockerfile 使用Dockerfile运行Moleculer服务
FROM node:current-alpineENV NODE_ENV=productionRUN mkdir /app WORKDIR /app COPY package.json package-lock.json ./ RUN npm install --production COPY . . CMD ["npm" , "start" ]
Docker Compose 使用NATS和Traefik(负载平衡API网关)运行Moleculer服务的Docker compose文件
设置必要的环境变量 docker-compose.env
NAMESPACE= LOGGER=true LOGLEVEL=info SERVICEDIR=services TRANSPORTER=nats://nats:4222 MONGO_URI=mongodb://mongo/project-demo
配置容器。 docker-compose.yml
version: "3.3" services: api: build: context: . image: project-demo env_file: docker-compose.env environment: SERVICES: api PORT: 3000 depends_on: - nats labels: - "traefik.enable=true" - "traefik.http.routers.api-gw.rule=PathPrefix(`/`)" - "traefik.http.services.api-gw.loadbalancer.server.port=3000" networks: - internal greeter: build: context: . image: project-demo env_file: docker-compose.env environment: SERVICES: greeter depends_on: - nats networks: - internal products: build: context: . image: project-demo env_file: docker-compose.env environment: SERVICES: products depends_on: - mongo - nats networks: - internal mongo: image: mongo:4 volumes: - data: /data/db networks: - internal nats: image: nats:2 networks: - internal traefik: image: traefik:v2.1 command: - "--api.insecure=true" - "--providers.docker=true" - "--providers.docker.exposedbydefault=false" ports: - 3000 :80 - 3001 :8080 volumes: - /var/run/docker.sock:/var/run/docker.sock:ro networks: - internal - default networks: internal: volumes: data:
Start containers
使用http://<docker-host>:3000/
访问你的应用。 打开Traefik仪表盘页面http://<docker-host>:3001/
Kubernetes 部署 Moleculer社区成员正在开展 Kubernetes集成的工作。 您可以查看dkuida 的分步教程 ,lehno 的代码示例 和tobydeh 的部署指南 。