简体   繁体   English

如何使用分子而不是使用“组合”独立运行 docker 图像?

[英]How to running independently docker images with moleculer instead using "compose up"?

I have got this docker-compose.yaml.我有这个 docker-compose.yaml。 It defines 1 service with the public API and 4 services (replicated) with another two microservices each one (one receives events and another one saves info to mongo).它定义了 1 个公共服务 API 和 4 个服务(复制),每个服务有另外两个微服务(一个接收事件,另一个将信息保存到 mongo)。 This works perfectly when i do "docker-compose up".当我执行“docker-compose up”时,这非常有效。 But I want to run each images with "docker run".但我想用“docker run”运行每个图像。

version: "3.3"

services:

  api:
    build:
      context: .
    image: monitor-log-public
    #container_name: monitor-log-public
    env_file: docker-compose.env
    environment:
      SERVICES: api
      PORT: 3000
    #depends_on:
    #  - redis
    labels:
      - "traefik.enable=false"
      - "traefik.http.routers.api-gw.rule=PathPrefix(`/`)"
      - "traefik.http.services.api-gw.loadbalancer.server.port=3000"
    networks:
      - internal
    ports: 
      - 3000:3000

  monitor-1:
    build:
      context: .
    image: monitor-log-monitor-1
    #container_name: monitor-log-logger
    env_file: docker-compose.env
    environment:
      SERVICES: monitor,logs.db
    #depends_on:
    #  - redis
    networks:
      - internal   
      
  monitor-2:
    build:
      context: .
    image: monitor-log-monitor-2
    #container_name: monitor-log-logger
    env_file: docker-compose.env
    environment:
      SERVICES: monitor,logs.db
    #depends_on:
    #  - redis
    networks:
      - internal   

  monitor-3:
    build:
      context: .
    image: monitor-log-monitor-3
    #container_name: monitor-log-logger
    env_file: docker-compose.env
    environment:
      SERVICES: monitor,logs.db
    #depends_on:
    #  - redis
    networks:
      - internal   

  monitor-4:
    build:
      context: .
    image: monitor-log-monitor-4
    #container_name: monitor-log-logger
    env_file: docker-compose.env
    environment:
      SERVICES: monitor,logs.db
    #depends_on:
    #  - redis
    networks:
      - internal   

  #redis:
  #  image: redis:alpine
  #  networks:
  #    - internal

networks:
  internal:
    internal: false

volumes:
  data:

When I do "compose run monitor-log-public", the execution closes with any reason.当我执行“撰写运行监视器日志公共”时,执行会因任何原因而关闭。

c:\temp\monitor-log-image>docker run monitor-log-monitor-1
[2021-02-22T08:51:42.449Z] INFO  b304e268d414-1/BROKER: Moleculer v0.14.12 is starting...
[2021-02-22T08:51:42.451Z] INFO  b304e268d414-1/BROKER: Namespace: <not defined>
[2021-02-22T08:51:42.451Z] INFO  b304e268d414-1/BROKER: Node ID: b304e268d414-1
[2021-02-22T08:51:42.452Z] INFO  b304e268d414-1/REGISTRY: Strategy: RoundRobinStrategy
[2021-02-22T08:51:42.452Z] INFO  b304e268d414-1/REGISTRY: Discoverer: LocalDiscoverer
[2021-02-22T08:51:42.453Z] INFO  b304e268d414-1/BROKER: Serializer: JSONSerializer
[2021-02-22T08:51:42.458Z] INFO  b304e268d414-1/BROKER: Validator: FastestValidator
[2021-02-22T08:51:42.459Z] INFO  b304e268d414-1/BROKER: Registered 13 internal middleware(s).
[2021-02-22T08:51:42.471Z] INFO  b304e268d414-1/REGISTRY: '$node' service is registered.
[2021-02-22T08:51:42.472Z] INFO  b304e268d414-1/$NODE: Service '$node' started.
[2021-02-22T08:51:42.473Z] INFO  b304e268d414-1/BROKER: ✔ ServiceBroker with 1 service(s) is started successfully in 6ms.
[2021-02-22T08:51:42.474Z] INFO  b304e268d414-1/$NODE: Service '$node' stopped.
[2021-02-22T08:51:42.474Z] INFO  b304e268d414-1/BROKER: ServiceBroker is stopped. Good bye.

I can see that this execution does not know that needs to load "api" service, but that is defined in the docker-compose.yaml, why the image does not read that??我可以看到这个执行不知道需要加载“api”服务,但是在 docker-compose.yaml 中定义的,为什么图像没有读取?

Just set the env vars in docker run , as well只需在docker run中设置环境变量

Eg例如

docker run -e SERVICES="monitor,logs.db" monitor-log-monitor-1

Just use docker-compose's options:只需使用 docker-compose 的选项:

docker-compose up <your_service_name>

For example:例如:

docker-compose up monitor-1

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

相关问题 Docker:当使用 docker 运行而不是 ZBAEDB53E845AE71F1394AE63BCE4Z 时,无法连接到 Redis - Docker: Not able to connect to Redis when using docker run instead of docker-compose up docker-compose up 未正确运行应用程序 - docker-compose up not running app correctly 使用 docker 运行的 ts-node 应用程序运行但不是 docker 撰写 - ts-node app running using docker run but not docker compose 使用Docker Compose在Docker中运行React无法正常工作 - Running React in Docker using Docker Compose does not work 当我们将Molecularr框架用于微服务时如何实现敏捷 - How to implement swagger, when we are using moleculer framework for Microservices 在单体应用中为微服务使用分子 - Using moleculer for microservices in monolith 如何使用 docker-compose 设置 NodeJs 客户端和服务器? - How to set-up NodeJs client and server using docker-compose? 使用docker-compose run时无法调试,但是docker-compose up可以工作 - Can't debug when using `docker-compose run`, but `docker-compose up` works 如何使用分子.js 从 bodyParser 访问 post 参数 - How to access post parameters from bodyParser using moleculer.js 在Ubuntu 18.04上运行Docker在尝试sudo docker-compose时遇到错误[/ bin / sh 1] [:missing] - Running Docker on Ubuntu 18.04 getting error [/bin/sh 1] [:missing] when trying sudo docker-compose up
 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM