docker-compose容器启动后的打印状态

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了docker-compose容器启动后的打印状态相关的知识,希望对你有一定的参考价值。

在docker-compose文件中,是否可以等待容器启动然后打印状态?

例如sleep 10 && echo started mysql on http://${HOST}:${PORT}

Dockerfile有一个run命令,但在compose文件中没有这样的东西。我怎样才能做到这一点?

答案

使用docker-compose,就像常规的docker run [...]一样,你可以指定entrypoint(参见here)和command(参见here)。

但是,在您的情况下,我要做的是根据您首选的MySQL图像构建一个自己的Docker镜像,并将COPY作为一个简单的入口点脚本构建到您想要的图像中,例如:

#!/bin/sh

sleep 10

[command to run MySQL]

echo "Started MySQL on xyz"

然后在Dockerfile中将此脚本指定为ENTRYPOINT

另一答案

最好的方法是将其添加到撰写文件中:

print-status:
  image: busybox
  env_file: .env
  command: "sh -c 'sleep 10 && echo "http://localhost:${PORT}"'"
  depends_on:
    - mysql

以上是关于docker-compose容器启动后的打印状态的主要内容,如果未能解决你的问题,请参考以下文章

docker-compose常用命令(持续更新...)

docker-compose未显示对代码的任何更改

docker-compose up与docker-compose up -d

如何让 docker-compose 始终从新图像重新创建容器?

docker-compose示例与命令介绍

docker-compose 在主机重启后启动容器。哪个?