Docker组成没有显示链接的控制台输出

时间:2017-04-22 17:59:27

标签: 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
underwriting_cra-products_1 is up-to-date
Attaching to underwriting_cra-products_1

我已经验证它已开启并正常工作(我的其他服务可以连接到它)。我只是看不到日志输出。

日志输出DOES适用于其他容器。

$ 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 stopdocker-compose rm并重新开始无法解决问题。也没有将docker-compose up -ddocker-compose logs一起使用。仍然没有产品的产量。

这是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

2 个答案:

答案 0 :(得分:-1)

将服务设置为缓冲stdout逐行修复了问题。

答案 1 :(得分:-1)

现在不推荐通过链接连接服务,这可以在Docker的文档中看到:https://docs.docker.com/compose/link-env-deprecated/

正如文档所述:

  

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

为了快速说明这一点,我将一个简单的例子与func funcTestSomething() { let myItem = Item(name: "John Doe", age: 35, deptID: 1001) //obtain item XCTAssertEqual(myItem, Item(name: "John Doe", age: 35, deptID: 1001)) } (只返回主机名)和jadametz/dpat放在一起。

nginx:stable-alpine

现在,从nginx容器中(以及安装curl之后),您可以看到只通过引用其他服务,我们就能得到响应。

version: '3'
services:
  dpat:
    image: jadametz/dpat
    ports:
      - 8081:80

  nginx:
    image: nginx:stable-alpine
    ports:
      - 8082:80

因此,对于您的[04:24 PM]~/projects ➭ docker exec -it desktop_nginx_1 ash / # curl http://dpat { "node": "809250c001c8" } 文件,您可以简单地执行以下操作:

docker-compose.yml