docker-compose up正在启动容器并立即停止它们

kun*_*yap 6 docker docker-compose

我正在尝试使用docker-compose构建服务,但是当compose脚本结束时,使用docker-compose启动的容器会立即停止.但是当我使用docker run创建容器时,它正在运行相同的服务映像.

这是我的撰写脚本:

version: '2.1'

networks:
 composetestnetwork:
  driver: bridge
   ipam:
    driver: default
    config:
     - subnet: 172.19.0.0/16
       gateway: 172.19.0.1

services:
 composetestdb:
  build:
   context: .
   dockerfile: Dockerfile-testdb
  cap_add:
   - ALL
  container_name: my-db-compose-container
  labels:
   db.description: "This is a test db"
  volumes:
   - c:/Users:/data
  networks:
   composetestnetwork:
    ipv4_address: 172.19.0.5
  ports:
   - "3306:3306"
  command: 'bash'
Run Code Online (Sandbox Code Playgroud)

可以做些什么来解决这个问题.

Dan*_*owe 23

如果您使用bashcommand,但没有一个终端,它会立即退出.这是因为当bash启动时,如果没有连接终端,并且它没有要执行的脚本或其他命令,则它无关,所以它退出(按设计).

您可以使用其他服务command,也可以将终端tty: true作为此服务定义的一部分附加.

services:
  composetestdb:
    tty: true
    ...
Run Code Online (Sandbox Code Playgroud)

  • 谢谢,它对我有用,但我必须添加 **stdin_open: true** 和 **tty: true** (3认同)