我正在尝试创建一个 bash 脚本,用于在新服务器上设置 docker 和应用程序。

抨击自己很新鲜,但我认为我得到了公正

这是我的问题所在的片段-

#

docker run -d --name application -p 80:80 -d  tutum/apache-php
docker run -d -p 3306:3306 --name=database --
env="MYSQL_ROOT_PASSWORD=password1" mysql:latest
echo "--------------------------------------------------------------------"
echo "Docker is all done - run docker ps -a to see all created
containers!"
echo "--------------------------------------------------------------------"
echo "Moving onto installing application into app container!"
echo "--------------------------------------------------------------------"
docker exec -it application bash

apt-get update & apt-get install git & cd /var/www/html

#

上线 - docker exec -it application bash
它按预期进入容器,但 bash 脚本然后停止,因为这意味着以下命令不运行

无论如何我可以解决这个问题吗?我不认为有,但以防万一那里有任何 bash 向导!

任何帮助表示赞赏!

最佳答案

这就是 -it 应该做的。这意味着交互式 bash,它只会在您完成后退出。更改您的代码如下

docker run -d --name application -p 80:80 -d  tutum/apache-php
docker run -d -p 3306:3306 --name=database --
env="MYSQL_ROOT_PASSWORD=password1" mysql:latest
echo "--------------------------------------------------------------------"
echo "Docker is all done - run docker ps -a to see all created
containers!"
echo "--------------------------------------------------------------------"
echo "Moving onto installing application into app container!"
echo "--------------------------------------------------------------------"

docker exec application bash -c "apt-get update & apt-get install git -y"
docker exec -it application bash -c "cd /var/www/html; exec bash"

关于linux - Bash 脚本在进入 docker 容器时退出,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/45617657/

10-11 23:12
查看更多