如何利用dokcer提交我的比赛代码
运气很好进入了天池的一个复赛,但是复赛评测时需要提交docker镜像,捣鼓了一个晚上,终于搞清了整套的流程.由于晚上已经下定决心要早点睡觉,害怕明早就会忘记的我还是先把步骤记录下来.
1. 安装docker环境
2. 开通阿里云容器镜像服务
这个参考天池官方教程即可
3.重点
3.1 拉取一个python3的基本镜像到本地
docker pull registry.cn-shanghai.aliyuncs.com/tcc-public/python:3
此时在命令行下敲击docker images
应该会出现registry.cn-shanghai.aliyuncs.com/tcc-public/python这个镜像
3.2 在镜像内安装一些依赖的包
编写Dockerfile文件如下:
# Base Images
## 从天池基础镜像构建
FROM registry.cn-shanghai.aliyuncs.com/tcc-public/python:3
## 把当前文件夹里的文件构建到镜像的根目录下
ADD . /
## 指定默认工作目录为根目录(需要把run.sh和生成的结果文件都放在该文件夹下,提交后才能运行)
WORKDIR /
## 安装需要的依赖
RUN pip install --upgrade pip
RUN pip install -i https://pypi.tuna.tsinghua.edu.cn/simple numpy pandas sklearn xgboost
## 镜像启动后统一执行 sh run.sh
CMD ["sh", "run.sh"]
之后所有的操作都和教程里一样
4. 另外的记录
除了直接在Dockerfile中声明创建新镜像时安装依赖,还可以进入registry.cn-shanghai.aliyuncs.com/tcc-public/python:3镜像对应的容器,在容器中安装完依赖后,将容器新打包成一个镜像.然后Dockerfile中的FROM改成来自这个新镜像即可.
具体的步骤参考这位博主的博客