You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

容器化Python脚本时访问本地Google Drive文件夹的读写问题

解决Docker容器无法访问Windows本地Google Drive文件夹的问题

问题说明

本地运行Python脚本可以正常读写Windows路径C:\Users\Me\Google Drive\Projects下的文件,但容器化后执行脚本时触发FileNotFoundError,提示该路径不存在。

错误原因

Docker容器拥有独立的文件系统,Windows本地的C:\...路径在容器内部是不存在的,必须通过卷挂载将Windows的本地目录映射到容器内的路径,容器才能访问到这些文件。

解决方案

1. 修改Python脚本,使用环境变量指定路径

将硬编码的Windows路径替换为从环境变量读取容器内的挂载路径,让脚本适配容器环境:

import os
from pickle import load, dump
import my_script

# 从环境变量获取容器内的Google Drive挂载路径
google_drive_folder = os.getenv('GOOGLE_DRIVE_MOUNT_PATH', '/google_drive')

source_file_location = os.path.join(google_drive_folder, 'old_data.pickle')
with open(source_file_location, 'rb') as read:
    old_data = load(read)

new_data = my_script.do_stuff(old_data)

target_file_location = os.path.join(google_drive_folder, 'new_data.pickle')
with open(target_file_location, 'wb') as fp:
    dump(new_data, fp)

print(f'File saved to {target_file_location}')

2. 更新docker-compose.yml,添加卷挂载

在volumes字段中添加Windows目录到容器目录的映射,同时通过环境变量告诉脚本容器内的挂载路径:

services:
  app:
    build: .
    container_name: my-scripts
    command: python ./src/my_script.py
    volumes:
      - .:/code
      # 将Windows的Google Drive文件夹挂载到容器内的/google_drive路径
      - C:/Users/Me/Google Drive/Projects:/google_drive
    environment:
      - GOOGLE_DRIVE_MOUNT_PATH=/google_drive

注意:Windows路径在docker-compose中需使用正斜杠/,不要用Windows默认的反斜杠。

3. (可选)用.env文件管理路径(更灵活)

如果不想把路径硬编码在docker-compose里,可以创建.env文件统一管理:

# .env文件内容
WINDOWS_GOOGLE_DRIVE_PATH=C:/Users/Me/Google Drive/Projects
CONTAINER_MOUNT_PATH=/google_drive

然后修改docker-compose.yml引用环境变量:

services:
  app:
    build: .
    container_name: my-scripts
    command: python ./src/my_script.py
    volumes:
      - .:/code
      - ${WINDOWS_GOOGLE_DRIVE_PATH}:${CONTAINER_MOUNT_PATH}
    env_file:
      - .env
    environment:
      - GOOGLE_DRIVE_MOUNT_PATH=${CONTAINER_MOUNT_PATH}

验证步骤

  1. 确认Windows的C:\Users\Me\Google Drive\Projects目录下存在old_data.pickle文件
  2. 重新构建并运行容器:
    docker-compose up --build
    
  3. 运行完成后,检查Google Drive文件夹是否生成了new_data.pickle文件

内容的提问来源于stack exchange,提问作者qoob

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.25 15:22:29