发布带有代码的docker镜像

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>

猜你喜欢

转载自blog.csdn.net/weixin_42990464/article/details/125291425