为什么入口点在docker-compose.yml中设置为“bin / true”

这是docker-compose.yml中的docker docker-compose.yml文件。 任何人都可以解释为什么entrypoint点设置为/bin/true的Web数据和数据库? 这是必要的吗? 如果我删除它会发生什么? 非常感谢。

版本:'2'
服务:
  网站:
    重新启动:总是
    build立:。
     container_name:meanjs
    端口:
      - “3000:3000”
      - “5858:5858”
      - “8080:8080”
      - “35729:35729”
    环境:
      -  NODE_ENV =发展
      -  DB_1_PORT_27017_TCP_ADDR = db
    依赖于取决于:
      - D b
     volumes_from:
      - networking数据
  networking数据:
    build立:。
    入口点:/ bin / true
    卷:
      -  ./:/opt/mean.js
      -  /opt/mean.js/node_modules
      -  /opt/mean.js/public
      -  /opt/mean.js/uploads
   D b:
    图片:mongo:3.2
    重新启动:总是
    端口:
      - “27017:27017”
     volumes_from:
       -  db-data
   DB-数据:
    图片:mongo:3.2
    卷:
       -  / data / db
       -  / var / lib / mongodb
       -  / var / log / mongodb
    入口点:/ bin / true

这是Docker-compose的老版本。 这样做的原因是启动一个容器,创build容量然后退出。

所以下面开始一个容器,并存在

  db-data: image: mongo:3.2 volumes: - /data/db - /var/lib/mongodb - /var/log/mongodb entrypoint: /bin/true 

在容器内部,这些卷path被创build。

  - /data/db - /var/lib/mongodb - /var/log/mongodb 

然后mongo使用volumes_from在这个容器中存储数据

  db: image: mongo:3.2 restart: always ports: - "27017:27017" volumes_from: - db-data 

在Compose 3.X中不build议使用volumes_from ,不应使用它。 而是要么使用匿名卷名。

所以撰写会改变成下面的东西

匿名卷

 version: '3.3' .... db: image: mongo:3.2 restart: always ports: - "27017:27017" volumes: - /data/db - /var/lib/mongodb - /var/log/mongodb 

命名的卷

 version: '3.3' .... db: image: mongo:3.2 restart: always ports: - "27017:27017" volumes: - mongodata:/data/db - mongodata:/var/lib/mongodb - mongodata:/var/log/mongodb volumes: mongodata: {}