栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Python

Docker离线环境使用

Python 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Docker离线环境使用

文章目录
  • Docker离线环境使用
    • 第一部分镜像
    • 第二部分镜像

Docker离线环境使用

由于某些情况,在部署环境无法连接到互联网,那么docker就无法在线拉取镜像,并且DockerFile中编写的apt命令、pip命令等网络请求都会无法工作,导致镜像无法构建。

可用的解决方案有:1自己针对需要的apt、python包下载好离线版本,然后让apt和pip离线安装,这样在离线环境也可以成功构建,但这种方式工作量很大,费时费力。

2将原本的dockerfile拆分为两部分,有网络请求下载依赖的作为第一部分,其他的容易变动的代码部分作为第二部分。第一部分,仍然在dockerfile中使用apt和pip命令请求网络资源,然后构建镜像,将构建好的镜像导出为tar。然后在第二部分的Dockerfile中引入此tar镜像(FROM part1-image:1.0),就得到了拥有完整运行依赖的环境。当在离线环境中部署时,需要携带第一部分的tar文件和第二部分的Dockerfile文件,然后就可以对第二部分进行构建了。

第一部分镜像

首先编写es_search_base第一部分镜像的Dockerfile

FROM python:3.6-slim
WORKDIR /usr/local

RUN cp /etc/apt/sources.list /etc/apt/sources.list.bak  && 
echo 'deb http://mirrors.ustc.edu.cn/debian stable main contrib non-free' >>/etc/apt/sources.list  && 
echo 'deb http://mirrors.ustc.edu.cn/debian stable-updates main contrib non-free' >>/etc/apt/sources.list

RUN useradd -m platform 
&&pip install flask_sqlalchemy==2.5.1
 sqlalchemy==1.4.17
 pymysql==1.0.2
 flask==1.1.2
 elasticsearch==7.11.0
 tornado
 urllib3  -i https://pypi.douban.com/simple    
&&echo "finished downloading python libs"

然后构建第一部分镜像并导出为tar

docker build -t es_search_base:0.1 .
docker save  es_search_base:0.1  > es_search_base.tar
第二部分镜像

首先编写第二部分镜像es_search的Dockerfile,引入第一部分镜像

FROM es_search_base:0.1
RUN echo "Copying  code"
COPY  --chown=platform:platform  ./entrypoint.sh /usr/local/entrypoint.sh
COPY  --chown=platform:platform  ./es_search /usr/local/es_search
WORKDIR /usr/local/es_search
CMD ["/usr/local/entrypoint.sh"]

然后load第一部分镜像的tar文件,这样才能构建第二部分的dockerfile

docker load <  es_search_base.tar
#进入第二部分Dockerfile所在目录,构建镜像
docker build  es_search:1.0  .
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/987317.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号