蟒蛇代碼:
import datetime,os
data = ""
with open("D://PythonService//Test.txt", "w") as outFile:
outFile.write(data "Service started at - {}\n".format(datetime.datetime.now()))
outFile.close()
Dockerfile
FROM python:latest
COPY requirements.txt .
RUN python -m pip install -r requirements.txt
WORKDIR /app
COPY . /app
CMD ["python", "WriteData.py"]
碼頭工人-compose.yml
version: '3.4'
services:
newfoldercopy:
image: newfoldercopy
build:
context: .
dockerfile: ./Dockerfile
volumes:
- D:/PythonService:/var/lib/data/
我正在嘗試將我的物理檔案系統路徑掛載到容器。但是容器不是在物理檔案上寫入資料,容器是在容器虛擬檔案上寫入資料。
uj5u.com熱心網友回復:
我認為
D:/PythonService- 本地路徑
/var/lib/data/ - 容器內的路徑
在 Python 代碼中,您應該使用容器路徑 (/var/lib/data/) 而不是本地路徑 (D:/PythonService)
uj5u.com熱心網友回復:
您的代碼應該類似于with open("/var/lib/data/Test.txt", "w") as outFile:
在容器內的檔案夾中寫入的所有檔案/var/lib/data都可用于D:/PythonService
volumes:
- <host directory>:<container directory>
uj5u.com熱心網友回復:
改變:
with open("D://PythonService//Test.txt", "w") as outFile:
到:
with open("/var/lib/data/Test.txt", "w") as outFile:
因為你的這條線docker-compose.yml:
volumes:
- D:/PythonService:/var/lib/data/
也代替:
outFile.write(data "Service started at - {}\n".format(datetime.datetime.now()))
您可以使用f-string:
outFile.write(f'{data} Service started at - {datetime.datetime.now()}\n')
這使您的代碼更具可讀性。
同樣據我了解,使用with open()會自動關閉您的檔案,因此您可以從以下位置更改 Python 代碼:
with open("D://PythonService//Test.txt", "w") as outFile:
outFile.write(data "Service started at - {}\n".format(datetime.datetime.now()))
outFile.close()
到:
with open("/var/lib/data/Test.txt", "w") as outFile:
outFile.write(f'{data} Service started at - {datetime.datetime.now()}\n')
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/471216.html
上一篇:如何使用python執行調度?
