如果希望使用 Docker 镜像进行本地调试, 可以根据本节内容操作。
1. 任务程序可以使用的变量说明
在 BatchCompute 中,运行在 docker 容器中的环境和不使用 docker 容器时的环境变量稍微不同, 具体请看 环境变量 。
2. 本地测试命令
在制作完成 docker 镜像后,您可以使用如下的命令进行本地测试。
docker run -it -v /home/local_folder:/batchcompute/workdir
-e BATCH_COMPUTE_DAG_INSTANCE_ID=<your_instance_id>
-e BATCH_COMPUTE_DAG_TASK_ID=<your_task_name>
-e BATCH_COMPUTE_DAG_JOB_ID=job-0000000000
-e BATCH_COMPUTE_OSS_HOST=<your_oss_host>
your_docker_image_name your_command
参数解释:
-v /home/local_folder:/batchcompute/workdir 表示挂载本地 /home/local_folder 目录到 docker 容器镜像中的 /batchcompute/workdir 目录
-e key=value 表示指定环境变量
your_task_name 作业中 task 的名称
your_job_name: 作业的名称
your_instance_id: 任务实例 ID,从 0 开始递增的整数, 如这个任务你要启动 3 个实例来运行,则 id 分别为 0,1,2
your_oss_host: OSS 主机名(域名,应包含 region 信息,且不带 "http://" 前缀)
your_docker_image_name: 制作的 docker 镜像名称,如 myubuntu
your_command:命令行及参数
例如,本地程序路径为: /home/admin/log-count/
docker run -it -v /home/admin/log-count/:/batchcompute/workdir -e BATCH_COMPUTE_INSTANCE_ID=0 -e BATCH_COMPUTE_TASK_ID=split -e BATCH_COMPUTE_JOB_ID=job-0000000000 -e BATCH_COMPUTE_OSS_HOST=oss-cn-shenzhen.aliyuncs.com myubuntu python /batchcompute/workdir/split.py
这个命令是在本地运行 myubuntu 对应 docker 镜像,将本地目录 /home/admin/log-count/ 挂载到 docker 镜像的 /batchcompute/workdir/目录,并在这个镜像里运行 python /batchcompute/workdir/split.py
命令。
注意:
- 路径 /home/admin/log-count/ 是程序所在目录, 目录中应当有 split.py。
- BATCH_COMPUTE_INSTANCE_ID 从 0 开始,假如你配置该任务启动 3 个实例,则 BATCH_COMPUTE_INSTANCE_ID 分别为0,1,2。
文档内容是否对您有帮助?