Docker: 容器状态出口 0

Docker: container state exit 0

我对 docker 容器有疑问。 这是我的 docker-compose 文件,包含 5 个服务

    version: '3'
networks:
  laravel:

services:

  nginx:
    image: nginx:stable-alpine
    container_name: nginx
    ports: 
      - "8088:80"
    volumes: 
      - ./src:/var/www/html 
      - ./nginx/default.conf:/etc/nginx/conf.d/default.conf
    depends_on: 
    - mysql
    - php

    networks: 
    - laravel

  mysql:
    image: mysql:5.7.22
    container_name: mysql
    restart: unless-stopped
    tty: true
    ports: 
      - "4306:3306"
    environment: 
      MYSQL_DATABASE: homestead
      MYSQL_USER: homestead
      MYSQL_PASSWORD: secret
      MYSQL_ROOT_PASSWORD: secret
      SERVICE_TAGS: dev
      SERVICE_NAME: mysql

    networks: 
    - laravel

  php:
    build: 
      context: .
      dockerfile: Dockerfile
    container_name: php
    volumes: 
      - ./src:/var/www/html
    ports:
      - "9000:9000"
    networks: 
      - laravel

  redis:
        image: redis:5.0.0-alpine
        restart: always
        container_name: redis
        ports:
            - "6379:6379"
        networks:
          - laravel
  composer:
    image: composer:latest
    container_name: composer
    volumes:
      - ./src:/var/www/html
    tty: true
    working_dir: /var/www/html
    networks:
      - laravel

然后我运行

docker-compose up -d

然后

docker-compose ps

查看我的容器,我总是用代码 0 关闭作曲家容器。这是屏幕截图

:

谁能解释一下为什么我不能把这个容器放上去。非常感谢

composer 不是一个永存的程序。这是一个执行特定工作然后退出的程序。

保留它没有太大意义 "up",因为它不会像其他进程那样做任何事情(nginx 拦截网络流量并写入响应,mysql 接受数据库连接并且 reads/writes 来自数据库,php 提供 Web 内容,redis 可以作为缓存连接)。