前言
好处在于比如在服务器上,mac,pc等各个地方都不用再配置一遍py3.6和里面的一些特定版本的包。
python3.6版本环境 ----- 新加依赖: anyio3.5.0 fastapi0.75.0 mavsdk0.23.0 uvicorn0.16.0 等 也可自定义 步骤如下:
一、预备
docker基本知识 本文在ubuntu中制作
二、步骤
1.从官方拉取基本python3.6镜像
官网显示只支持到3.7 但可以直接拉取:
sudo docker pull python:3.6
查看已有镜像 是否拉取成功:
sudo docker images
2.新建一个文件夹用于制作自己的镜像
文件夹中要有以下文件:
-
Dockerfile (没有文件类型后缀 名字可以改 不过最好是这个) 步骤: touch Dockerfile
vim Dockerfile
写入:
FROM python:3.6
ADD . /code
WORKDIR /code
EXPOSE 77
RUN pip install -r requirements.txt -i https://pypi.doubanio.com/simple/
CMD echo "------py3.6 for uav-----"
CMD /bin/bash
查看检查一下:
cat Dockerfile
-
requirements.txt 这里面写入想要的依赖们 可以在我基础上改: aioconsole==0.3.3
aiogrpc==1.8
anyio==3.5.0
asgiref==3.4.1
click==8.0.4
colorama==0.4.4
contextlib2==21.6.0
contextvars==2.4
dataclasses==0.8
fastapi==0.75.0
grpcio==1.44.0
h11==0.13.0
idna==3.3
immutables==0.16
importlib-metadata==4.8.3
importlib-resources==5.4.0
mavsdk==0.23.0
protobuf==3.19.4
pydantic==1.9.0
six==1.16.0
sniffio==1.2.0
starlette==0.17.1
typing_extensions==4.1.1
uvicorn==0.16.0
zipp==3.6.0
-
app 文件夹 用以存放你自己的项目文件
3. 构建镜像
在步骤2的新建文件夹中(这样Dockerfile位置就好写了 直接写Dockerfile):
docker build -f Dockerfile位置 -t 自定镜像名:版本号 .
例如我的
docker build -f Dockerfile -t skpy36uav:1.0 .
4. 发布到自己的docker库
-
首先得有docker账号 去官网注册https://www.docker.com/ -
登陆docker sudo docker login
-
给刚才自己构建的镜像打个tag(一定要打 不然总出错) sudo docker tag 自定镜像名:版本号 自己docker名/自定镜像名:版本号
我的: sudo docker tag skpy36uav:1.0 kaesarsk/skpy36uav:1.0
-
push sudo docker push 自己docker名/自定镜像名:版本号
5. 拉取自己镜像试试
sudo docker pull 自己docker名/自定镜像名:版本号
总结
|