在docker安装Python环境提供给其他docker使用

1. 在宿主机新建一个目录

在宿主机上新建一个目录如app/,在app目录里面导入项目需要依赖的包

在项目根目录下输入命令,导出python项目所有的依赖包

pip freeze > requirements.txt

把导出的requirements.txt文件复制到新建的宿主机的app目录

image-20230410161722507

2. 在app目录下新建一个Dockerfile文件

新建的Dockerfile文件用来构建python镜像

FROM  python:3.7-bullseye
WORKDIR .
USER root
RUN apt-get update \
    && apt-get install -y gcc
ADD ./requirements.txt .
RUN pip3 install --upgrade pip
RUN pip3 install virtualenvwrapper
RUN pip3 install -r requirements.txt
#-i https://pypi.tuna.tsinghua.edu.cn/simple #安装依赖包

保存后,构建镜像文件

docker build -t mypython3 . # -t:镜像名称,点(.)代表是当前目录

image-20230410162908984

查看构建好的镜像

image-20230411143121564

在jenkins的shell脚本输入一下内容,或者把一下内容放到一个sh脚本中在jenkins中执行shell脚本

echo "运行容器python" #输出日志
docker run --rm -w=$WORKSPACE --volumes-from=jenkins mypython3 $python $file
echo "python执行成功"
 #--rm:选项表示退出容器时会自动将其删除
 # -w: 指定命令执行时,所在的路径,$WORKSPACE就是jenkins运行时的工作目录
 #--volumes-from:容器通过挂载这个(父容器)实现数据共享,后面跟着父容器的容器名称,父容器可以不启动
# mypython3:python打包后的镜像名称
# $python $file,是两个动态参数替换制作镜像CMD ["python3", "main.py"] 里面的值

image-20230411173439224

docker 运行一个jenkins命令

docker run --name jenkins -p 8082:8080   -u root -v /var/mydata/jenkins_home:/var/jenkins_home -v /var/run/docker.sock:/var/run/docker.sock -v $(which docker):/usr/bin/docker -d --restart always jenkins/jenkins
-u root。通过root用户启用jenkins 否则在jenkins中执行docker命令会提示没有权限
注意这两个volume参数(将jenkins容器内的docker命令指向了宿主机):
-v /var/run/docker.sock:/var/run/docker.sock 
-v $(which docker):/usr/bin/docker 

之后直接在jenkins的project里面就可以使用docker命令了

启用jenkins后,新建任务 ,在shell命令框可以直接输入docker命令运行

添加两个文本参数python,file

image-20230411173111754

执行shell脚本时,动态传入参数

image-20230411173204554


本文永久更新地址:

https://www.fenxiangbe.com/p/在docker安装Python环境提供给其他docker使用.html

posted @ 2024-09-29 18:40  吾爱乐享  阅读(14)  评论(0编辑  收藏  举报