Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/logging/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Logging Docker compose up未显示链接的控制台输出_Logging_Docker_Docker Compose_Stdout - Fatal编程技术网

Logging Docker compose up未显示链接的控制台输出

Logging Docker compose up未显示链接的控制台输出,logging,docker,docker-compose,stdout,Logging,Docker,Docker Compose,Stdout,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 underwr

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
我已经确认它已打开并正在工作(我的其他服务可以连接到它)。我就是看不到日志输出

日志输出不适用于其他容器

$ 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编写up-d
docker编写日志也不一样。cra产品仍然没有产量

以下是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

将服务设置为按行缓冲标准输出修复了该问题

现在不推荐通过链接连接服务,如Docker文档中所示:

如文件所述:

相反,您应该使用链接名称(默认情况下,链接服务的名称)作为要连接到的主机名

为了快速说明这一点,我用
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"

这并不能回答OPs问题。您能否详细说明一下如何设置“服务到缓存标准输出的行”?