我正在使用 docker-compose生成两个容器。我想分享/tmp这两个容器之间的目录(但不与主机 /tmp 如果可能)。这是因为我正在通过 flask 上传一些文件至 /tmp并希望处理来自 celery 的这些文件.

flask: 
    build: . 
    command: "gulp" 
    ports: 
        - '3000:3000' 
        - '5000:5000' 
    links: 
        - celery     
        - redis 
    volumes: 
        - .:/usr/src/app:rw 
 
celery: 
    build: . 
    command: "celery -A web.tasks worker --autoreload --loglevel=info" 
    environment: 
        - C_FORCE_ROOT="true" 
    links: 
        - redis 
        - neo4j 
    volumes: 
        - .:/usr/src/app:ro 

请您参考如下方法:

您可以使用命名卷:

flask: 
    build: . 
    command: "gulp" 
    ports: 
        - '3000:3000' 
        - '5000:5000' 
    links: 
        - celery     
        - redis 
    volumes: 
        - .:/usr/src/app:rw 
        - tmp:/tmp 
 
celery: 
    build: . 
    command: "celery -A web.tasks worker --autoreload --loglevel=info" 
    environment: 
        - C_FORCE_ROOT="true" 
    links: 
        - redis 
        - neo4j 
    volumes: 
        - .:/usr/src/app:ro 
        - tmp:/tmp 

当 compose 为第一个容器创建卷时,它将使用图像中/tmp 的内容进行初始化。之后,它将一直存在,直到用 docker-compose down -v 删除为止。 .


评论关闭
IT干货网

微信公众号号:IT虾米 (左侧二维码扫一扫)欢迎添加!