目标:学习如何使用Docker提交代码及比赛上分
工具:windows 10家庭中文版的docker desktop,阿里云镜像库
1.配置docker环境
问题:安装docker安装失败
Docker for Windows requires Windows 10 Pro or Enterprise version
解决办法:win10家庭中文版 安装 Docker Desktop
2.在阿里云获取镜像库公网网址
在 https://cr.console.aliyun.com/ 上新建镜像库(请参考文档,同时直接建public库即可),查找镜像库公网网址,如:
registry.cn-hangzhou.aliyuncs.com/coggle/coggle_test
coggle为命名空间,coggle为镜像仓库名称
3.制作镜像并推送至镜像库
3.1.login docker
在cmd或者windows powershell中输入以下命令
docker login --username=your_name registry.cn-hangzhou.aliyuncs.com
yourname是注册的昵称,registry.~~~为镜像库公网网址
3.2.在文件需要copy至镜像内的目录下准备好文件
当前工作目录底下包括以下文件:
Dockerfile
- docker built就会一条条执行
# Base Images
## 从天池基础镜像构建
# FROM registry.cn-shanghai.aliyuncs.com/tcc-public/python:3
FROM registry.cn-shanghai.aliyuncs.com/tcc-public/tensorflow:latest-cuda10.0-py3
## 把当前文件夹里的文件构建到镜像的根目录下(.后面有空格,不能直接跟/)
ADD . /
## 指定默认工作目录为根目录(需要把run.sh和生成的结果文件都放在该文件夹下,提交后才能运行)
WORKDIR /
## Install Requirements(requirements.txt包含python包的版本)
## 这里使用清华镜像加速安装
RUN pip install -i https://pypi.tuna.tsinghua.edu.cn/simple --upgrade pip
RUN pip install -i https://pypi.tuna.tsinghua.edu.cn/simple -r requirements.txt
#RUN pip install -i https://pypi.tuna.tsinghua.edu.cn/simple -r requirements.txt
## 镜像启动后统一执行 sh run.sh
CMD ["sh", "run.sh"]
run.sh
- 运行预测的代码
#!/bin/sh
CURDIR="`dirname $0`" #获取此脚本所在目录
echo $CURDIR
cd $CURDIR #切换到该脚本所在目录
python /code/mlp_predict.py
requirement.txt
- 运行代码所依赖的python库,缺什么就把需要装的文件放在requirement下面
numpy
tensorflow==2.2.0
运行的代码mlp_predict.py
- 放在code下面即可
3.3.build image
docker build -t registry.cn-shenzhen.aliyuncs.com/shiying/tianchi_test:1.0 .
注意最后的 . 号
如果成功会显示:Successfully built 76c643fb44ee,其中 76c643fb44ee 即为镜像id。
3.4.测试是否能够在镜像成功运行
docker run registry.cn-shenzhen.aliyuncs.com/shiying/tianchi_test:1.0 sh run.sh
3.5.push image
docker push registry.cn-shenzhen.aliyuncs.com/shiying/tianchi_test:1.0
将镜像推送至我的镜像库中
4.在提交页面提交镜像地址及版本号
在天池比赛页面左侧【提交结果】中填写推送的镜像路径、用户名和密码,即可提交。根据【我的成绩】中的分数和日志可以查看运行情况。