Docker组成不显示控制台输出的链接
docker-compose up
没有显示我所有服务的日志输出(stdout)。
我手动运行容器时得到输出:
$ docker run -it simple/cra-products /usr/local/bin/cra-products [Info#INIT] cra-products [Info#CONFIG] loadConfig ...
但是当我用docker-compose运行它时,输出停止在附加。
$ docker-compose up cra-products underwriting_cra-products_1 is up-to-date Attaching to underwriting_cra-products_1
我已经validation它已经打开,正在运行(我的其他服务可以连接到它)。 我只是看不到日志输出。
日志输出可以为另一个容器工作。
$ docker-compose up underwriting underwriting_cra-products_1 is up-to-date Starting underwriting_underwriting_1 Attaching to underwriting_underwriting_1 underwriting_1 | HELLO ...
我究竟做错了什么? 我想查看所有容器的日志。
调用docker-compose stop
和docker-compose rm
并重新启动不会修复它。 docker-compose logs
也不会使用docker-compose up -d
。 仍然没有产品的产品。
这是docker-compose文件:
version: "3" services: underwriting: image: simple/underwriting command: /usr/local/bin/underwriting links: - cra-products ports: - "8011:8011" environment: - UNDERWRITING_PORT=8081 - CRA_PRODUCTS_ENDPOINT=http://cra-products:8081 cra-products: image: simple/cra-products:latest command: /usr/local/bin/cra-products ports: - "8081:8081" environment: - CRA_PRODUCTS_PORT=8081
设置服务以逐行缓冲stdout解决了问题。
通过链接连接服务现在已经被弃用,在Docker的文档中可以看到: https : //docs.docker.com/compose/link-env-deprecated/
正如文中提到的那样:
相反,您应该使用链接名称(默认情况下为链接服务的名称)作为要连接的主机名称。
为了快速说明这一点,我把jadametz/dpat
(它只是返回主机名)和nginx:stable-alpine
这个简单的例子。
version: '3' services: dpat: image: jadametz/dpat ports: - 8081:80 nginx: image: nginx:stable-alpine ports: - 8082:80
现在,从nginx容器内(并在安装curl之后),您可以看到只需引用其他服务,就可以获得响应。
[04:24 PM]~/projects ➭ docker exec -it desktop_nginx_1 ash / # curl http://dpat { "node": "809250c001c8" }
所以对于你docker-compose.yml
文件,你可能只需要简单的下面几行:
version: "3" services: underwriting: image: simple/underwriting command: /usr/local/bin/underwriting ports: - "8011:8011" cra-products: image: simple/cra-products:latest command: /usr/local/bin/cra-products ports: - "8081:8081"
- Docker和微服务
- mysql一般查询使用docker-compose日志logindocker
- 在Docker容器中运行Google Chrome Headless
- Docker的mysql即时退出
- VPS + Docker + Traefik +多个WordPress或docker4wordpress – 如何正确设置
- 如何从symfony ymlconfiguration文件中获取docker的envvariables
- Docker撰写。 networking。 Spring Boot和MySQL连接
- PHP FPM Docker ZF1:会话已经启动。 会话ID必须先设置
- 如何使用Docker Compose在Debian容器中设置LAMP堆栈?