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

时间:2017-03-04 07:29:14

标签: 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'

可以采取哪些措施来解决这个问题。

2 个答案:

答案 0 :(得分:18)

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

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

services:
  composetestdb:
    tty: true
    ...

答案 1 :(得分:0)

我有同样的问题,但是tty : true不能为我解决问题。

这是我的docker-compose文件:

---
version: "3"
services :
  data:
    container_name: data
    environment:
      - MYSQL_ROOT_PASSWORD=0283
    image: mysql:5.7
    restart: always
    volumes:
      - "./database:/var/lib/mysql"
    ports:
      - "3306:3306"
  mail:
    container_name: mail
    image: djfarrelly/maildev
    ports:
      - "1080:80"
      - "1025:25"
  web:
    container_name: web
    image: "web:php7.1a"
    links:
      - mail
      - data
    ports:
      - "80:80"
    volumes:
      - "./www:/var/www/html"
    working_dir : /var/www/html
    tty: true
    command:
      echo "test"
      #bash -c "php composer.phar self-update"

command之后,Docker返回我:“容器已退出(0)” 如果我对这些行发表评论,则容器会正常运行。

Windows 10 Pro
Docker version 18.09.2, build 6247962
Docker-compose version 1.23.2, build 1110ad01

谢谢