【发布时间】:2021-12-24 06:46:34
【问题描述】:
在构建 docker 容器映像后,我正在尝试运行一个简单的 Python 脚本以在本地桌面目录中打印/写入 GeoTIFF 的名称。该脚本作为独立脚本执行并生成所需的输出,但是当我尝试通过“docker run”命令运行 docker 容器映像时,我收到一个错误,指出变量是“UnboundLocalError:在分配之前引用了局部变量 'rows' ”。我不确定为什么它在运行容器但作为独立脚本运行时显示此错误。下面是我的 Dockerfile 以及脚本本身。
Dockerfile
FROM continuumio/miniconda3
ADD docker_test.py .
RUN /opt/conda/bin/conda install gdal=3.0.2
CMD [ "python", "./docker_test.py" ]
Python 脚本 (docker_test.py)
import glob
from osgeo import gdal
def image_processing():
for file in glob.glob("*.tif"): # points to image located in the directory for parsing
dem = gdal.Open(file)
rows = dem.RasterYSize
cols = dem.RasterXSize
return rows, cols
rows, cols = image_processing()
with open('gdal_docker_test.txt', 'w') as f:
f.write(f'The number of rows is: {rows}')
我觉得它应该是一个简单的修复,但我无法弄清楚调整。非常感谢任何帮助!
【问题讨论】:
标签: python docker dockerfile containers gdal