![](/img/trans.png)
[英]Docker: Not able to connect to Redis when using docker run instead of docker-compose up
[英]How to running independently docker images with moleculer instead using "compose up"?
我有這個 docker-compose.yaml。 它定義了 1 個公共服務 API 和 4 個服務(復制),每個服務有另外兩個微服務(一個接收事件,另一個將信息保存到 mongo)。 當我執行“docker-compose up”時,這非常有效。 但我想用“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:
當我執行“撰寫運行監視器日志公共”時,執行會因任何原因而關閉。
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.
我可以看到這個執行不知道需要加載“api”服務,但是在 docker-compose.yaml 中定義的,為什么圖像沒有讀取?
只需在docker run
中設置環境變量
例如
docker run -e SERVICES="monitor,logs.db" monitor-log-monitor-1
只需使用 docker-compose 的選項:
docker-compose up <your_service_name>
例如:
docker-compose up monitor-1
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.