docker-compose up没有显示我所有服务的日志输出(stdout)。
当我手动运行容器时,我得到输出:
$ docker run -it simple/cra-products /usr/local/bin/cra-products
[Info#INIT] cra-products
[Info#CONFIG] loadConfig
...但是,当我运行它与坞-撰写,输出停止在附加。
$ 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-compose up -d和docker-compose logs也不一起使用。仍未输出cra-产品。
下面是停靠-撰写文件:
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发布于 2017-04-22 21:50:37
将服务设置为按行缓冲标准输出解决了问题。
发布于 2017-04-23 21:30:04
现在不再推荐通过链接连接服务,在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"https://stackoverflow.com/questions/43562687
复制相似问题