在entrypoint命令完成后(启动服务器)在docker容器中运行bash命令

时间:2019-09-18 14:29:11

标签: docker docker-compose

我有一个docker-compose脚本,我想在容器启动后运行一些bash命令。

容器的入口点是启动Web服务器的脚本。因此,一旦服务器准备好接收请求,就必须执行我的bash命令。

有什么办法吗?

2 个答案:

答案 0 :(得分:0)

从文档中,您可以使用exec在现有容器中运行命令:

https://docs.docker.com/compose/reference/exec/

您只需使用服务名称运行docker-compose exec:

docker-compose exec cbd bash

或容器中的任何可执行文件。当然,这要求在容器中安装bash。

答案 1 :(得分:0)

我运行一个脚本(.sh),在命令 docker-compose up -d 之后,将命令运行到容器中,例如

#/bin/bash
cd /myDockerComposePath
docker-compose up -d
docker exec mycontainer bash -c "/mylocation/myscript.sh"

替代最后一行,或者如果您需要运行更多命令

docker exec mycontainer bash -c "myCommand"