Gitlib Gitlib
首页
  • 分类
  • 标签
  • 归档
  • Golang开发实践万字总结
  • MySQL核心知识汇总
  • Redis实践总结
  • MQ实践万字总结
  • Docker数据持久化总结
  • Docker网络模式深度解读
  • 常用游戏反外挂技术总结
  • 读书笔记
  • 心情杂货
  • 行业杂谈
  • 友情链接
关于我
GitHub (opens new window)

Ravior

以梦为马,莫负韶华
首页
  • 分类
  • 标签
  • 归档
  • Golang开发实践万字总结
  • MySQL核心知识汇总
  • Redis实践总结
  • MQ实践万字总结
  • Docker数据持久化总结
  • Docker网络模式深度解读
  • 常用游戏反外挂技术总结
  • 读书笔记
  • 心情杂货
  • 行业杂谈
  • 友情链接
关于我
GitHub (opens new window)
  • PHP

  • Golang

  • Python

    • Python使用lambda表达式
    • Python之线程池
    • Python之装饰器
    • Python之chardet模块使用
    • Python之copy模块使用
    • Python之functools模块使用
    • Python之hashlib模块使用
    • Python之json模块使用
    • Python之pickle模块使用
    • Python之pid模块使用
    • Python之pypinyin模块使用
    • Python之pyqrcode模块使用
    • Python之threading模块使用
    • Python之base64模块使用
    • Python项目Docker打包
      • 一、创建docker目录
      • 自动生成requirements.txt
      • Python Docker镜像
  • Javascript

  • 其他语言

  • 编程语言
  • Python
Ravior
2018-03-25
目录

Python项目Docker打包

# 一、创建docker目录

在目录下面新建三个文件:

  • Dockerfile
  • 项目文件
  • 项目依赖: requirements.txt

Dockerfile文件内容格式如下:

# 基于镜像基础
#FROM python:3.6
FROM python:3.6-slim-stretch    #有更小的体积
 
# 维护者信息
MAINTAINER name name@163.com
 
# 复制当前代码文件到容器中 /app
ADD . /app
 
# 设置app文件夹是工作目录 /app
WORKDIR /app
#解决Dockers中打印日志不及时的问题
ENV PYTHONUNBUFFERED=0
 
# 安装所需的包,默认为使用python官方镜像源,安装 比较慢
#RUN pip install -r requirements.txt
#可以修改为清华源
RUN pip install -r requirements.txt - i https://pypi.tuna.tsinghua.edu.cn/simple
  
# Run test.py when the container launches
CMD ["python", "/app/test/test.py"]
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22

# 自动生成requirements.txt

进入需要生成文件的目录,执行pip freeze > requirements.txt,此方法会包含环境所有的依赖包。

#

# Python Docker镜像

Docker python基础镜像

FROM python:3.6
1

Alpine Linux ,最初是为小型设备设计的操作系统,因此往往有小包装。

FROM python:3.6-alpine
1

Debian Stretch ,安装了许多常见软件包。镜像本身很大,但理论上这些软件包是通过其他Docker镜像将使用的公共镜像层安装的,因此整体磁盘使用率会很低。

FROM python:3.6-stretch
1

Debian Stretch slim 版。这缺少了通用软件包的层,因此镜像本身要小得多,但如果你使用Stretch以外的许多其他Docker镜像,整体磁盘使用量会更高一些。

FROM python:3.6-slim-stretch
1

查看Python镜像大小,其中alpine 是最小的。

$ docker images | grep python
python  3.6-alpine          bb1ccaa5880c        4 days ago          86.7MB
python  3.6-stretch         32260605cf7a        7 days ago          929MB
python  3.6-slim-stretch   e0d20fa24f01        7 days ago          143MB
python  3.6                 ad01f54ca3a9        2 months ago        923MB
1
2
3
4
5

对于想要小镜像的人来说,一个常见的建议是使用Alpine Linux,但使用它会产生一些问题。首先,Alpine的库比我上面提到的其他Linux发行版少得多,因此你可能会缺少库。 Alpine和其他Linux发行版之间也存在重大差异:Alpine使用不同的C库,而不是更常见的glibc。 理论上,musl和glibc 大多是兼容的,但这些差异可能会导致奇怪的问题。 大多数这些问题已经得到解决,但可能发现更多问题。为了减少镜像体积,而导致可能发生的不确定性问题,这是不值得的。因此,这里建议不要使用Alpine。

#Python#Docker
上次更新: 2022/12/01, 11:09:34
Python之base64模块使用
PureMVC(JS版)源码解析:认识PureMVC

← Python之base64模块使用 PureMVC(JS版)源码解析:认识PureMVC→

最近更新
01
常用游戏反外挂技术总结
11-27
02
Golang开发实践万字总结
11-11
03
Redis万字总结
10-30
更多文章>
Theme by Vdoing | Copyright © 2011-2022 Ravior | 粤ICP备17060229号-3 | MIT License
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式