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
完成任务
我有下面的 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
完成任务