python - 更改 docker run 命令以接受对 CSV 文件的更改
问题描述
只是为了解释一下:我的 docker 容器当前设置为每次我上传或更改 python 文件时自行“刷新/更新”,例如:“main.py”
这正是我想要的,而且很漂亮,多亏了这个命令:
' -v ~/fastapi_websocket:/fastapi_websocket '
这是我用来启动和运行的所有 3 个 docker 命令:
1. docker build -t fastapiserver-websocket .
2. docker run -d -e PYTHONUNBUFFERED=1 -v ~/fastapi_websocket:/fastapi_websocket --env-file env_vars.env --name run-fastapi-websocket -p 5080:80 fastapiserver-websocket
3. docker logs --tail 100 -f run-fastapi-websocket
因此,一旦我输入这 3 个命令,我就可以继续将新文件上传到服务器,而无需停止/删除容器/图像,然后创建一个新文件,docker 会自动完成。
现在:现在我在我的 python 应用程序中添加了一个脚本,将数据写入 CSV 文件,以防你知道 python,这里是函数:
def write_data_to_CSV(machine_ID, leli, acc_y, mag_x):
with open('/i_want_my_CSV_inside_here/sensor_data_excel.csv', 'a', newline='') as csvfile:
filewriter = csv.writer(csvfile, delimiter=';', quoting=csv.QUOTE_MINIMAL)
filewriter.writerow([get_current_time(), machine_ID, leli, acc_y, mag_x])
所以这里的问题是,当新文件写入 CSV 文件时,docker 容器会自行更新/刷新,因为我已经使用上面显示的命令告诉容器这样做。
我的问题是:是否可以更改此行:
docker run -d -e PYTHONUNBUFFERED=1 -v ~/fastapi_websocket:/fastapi_websocket --env-file env_vars.env --name run-fastapi-websocket -p 5080:80 fastapiserver-websocket
接受对 CSV 文件的更改而不刷新容器?
解决方案
编辑:解决了。
这是答案:
我在 app 文件夹之外安装了一个新卷:-v ~/CSV_files:/CSV_files
蟒蛇方面:
with open("../CSV_files/a_CSV_file.csv", 'a', newline='') as csvfile:
filewriter = csv.writer(csvfile, delimiter=';', quoting=csv.QUOTE_MINIMAL)
推荐阅读
- travis-ci - $TRAVIS_EVENT_TYPE != 'pull_request' 和 $TRAVIS_PULL_REQUEST_SLUG != $TRAVIS_REPO_SLUG 之间的区别
- android - Android ACTIVITY_RECOGNITION 权限 SDK 28 在 Android 10/Q (SDK 29) 上运行
- python - Python 中的新年混沌挑战
- django - 有什么方法可以通过查询集更新 ManyToMany 字段?
- ruby - Bundler:无法本地 Gemfile
- ruby - Ruby,删除超级数组
- javascript - 查找数组列表中的第一个匹配项
- javascript - 从 bootstrap-datepicker 获取日期并单独打印
- angular - Angular 8:如何将 formControlName 与 FormArray 一起使用
- r - 在 R 中使用 data.table,我可以从表中选择变量列的向量吗?