Docker-将输出文件组合到本地主机

Docker-Compose Output File To Local Host

我有下面的 docker-compose.yaml 文件来设置数据库和 运行 一个 python 脚本

version: '3.3'
services:
  db:
    image: mysql:8.0
    cap_add:
      - SYS_NICE
    restart: always
    environment:
      - MYSQL_DATABASE=test_db
      - MYSQL_ROOT_PASSWORD=xxx
    ports:
      - '3310:3310'
    volumes:
      - db:/var/lib/mysql
  py_service:
    container_name: test_py
    build: .
    command: ./main.py -r compute_init
    depends_on:
      - db
    ports:
      - 80:80
    environment:
      DB_HOST: db
      DB_PORT: 3306
      DB_USER: root
      DB_PASSWORD: xxx
      DB_NAME: test_db
    links:
      - db
    volumes:
      - py_output:/app/output
volumes:
  db:
    driver: local
  py_output:

为了运行它我执行以下操作

docker-compose build
docker-compose up
docker-compose run -v /home/ubuntu/docker_directory/output:/app/output/* py_service

这是 Dockerfile

FROM python:3.7

RUN mkdir /app
WORKDIR /app
COPY env/requirements.txt requirements.txt

RUN pip install -r requirements.txt

COPY . .

CMD ["python3","main.py","-r","compute_init"]

现在一切正常,我可以看到数据已正确填充到 msql 数据库中生成的文件中。 脚本末尾的 python 文件应将 csv 文件转储到 /app/ouput/output.csv(通过 pandas 库 df.to_csv("output/output.csv")) 我的问题是,如何将该 csv 从容器恢复到本地目录。 脚本似乎没有任何错误地完成,但最后找不到输出文件。

似乎在使用 docker-compose run -v $(pwd)/output:/app/output py_service 完成任务