在docker安装Python环境提供给其他docker使用
1. 在宿主机新建一个目录
在宿主机上新建一个目录如app/,在app目录里面导入项目需要依赖的包
在项目根目录下输入命令,导出python项目所有的依赖包
pip freeze > requirements.txt
把导出的requirements.txt文件复制到新建的宿主机的app目录
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:镜像名称,点(.)代表是当前目录
查看构建好的镜像
在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"] 里面的值
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
执行shell脚本时,动态传入参数
本文永久更新地址:
https://www.fenxiangbe.com/p/在docker安装Python环境提供给其他docker使用.html