问题
自己配置好了一个docker,可以单独运行,但是用docker-compose.yml 管理项目,启动docker-compose up的时候,却exited with code 0 了,生成的容器立刻退出了。
网上找了很多资料,相关甚少。
解决
Docker镜像的缺省命令是bash,如果不加 -it,bash命令执行了自动会退出,加-it后docker命令会为容器分配一个伪终端,并接管其stdin/stdout支持交互操作,这时候bash命令不会自动退出
像不使用docker-compose,我们会执行类似如下的命令
docker run -it --name node node
但docker-compose需要额外配置下
需要在docker-compose.yml中包含以下行:
stdin_open: true
tty: true
第一个对应于docker run中的 -i ,第二个对应于 -t .
如果你不想停留在bash命令页面,这样执行命令即可:
docker-compose up -d