0. 代码文件构成
preprocess
---imgCrop.py
---preprocessData.py
---utils
1. 拷贝代码进镜像
格式 COPY <Source> <Destination>
COPY ./preprocess/ /home/BE/
2. 设置环境变量
RUN export PATH=/home/BE:$PATH
3. 完整的dockerfile
# 继承Conda镜像
FROM continuumio/anaconda3:latest
LABEL maintainer = "[email protected]"
LABEL version = "0.2"
LABEL description = "prepare data for deep learning"
# 指定docker镜像中,默认的工作路径是/home/BE
WORKDIR /home/BE
COPY ./preprocess/ /home/BE/
RUN apt-get update \
&& apt-get install -y libgl1
RUN export PATH=/home/BE:$PATH
RUN conda install libgdal==3.4.1 gdal==3.4.1 tiledb=2.2
RUN pip config set global.index-url https://pypi.douban.com/simple/ \
&& pip install opencv-python-headless==4.6.0.66 \
opencv-python==4.6.0.66
4.生成镜像
docker build -t <user name>/<repo name>:<version> .
5. 容器中调用脚本
docker run -it -v <local path>:<docker path> <docker image>
/usr/bin/env python preprocessData.py
PS: 调用python脚本时,前面要加上/usr/bin/env
6. 镜像发布
docker push <docker image>
PS:当镜像名字不是以用户名开头时,需要重新命名成自己的用户名
docker tag <old name> <new name>