首页 > 编程语言 >在docker安装Python环境提供给其他docker使用

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

时间:2023-04-11 17:55:21浏览次数:47  
标签:run Python 宿主机 python var jenkins docker 安装

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

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

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

pip freeze > requirements.txt

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

image-20230410161722507

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

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

FROM  python
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

标签:run,Python,宿主机,python,var,jenkins,docker,安装
From: https://www.cnblogs.com/fenxiangbe/p/17307116.html

相关文章

  • Apache的安装与启动
    1.Apache的安装Linux系统中一般采用Apache作为Web服务器软件,安装软件包为httpd。可以通过以下命令查询系统是否已安装了Apache软件包。[root@localhost~]#yumlistinstalled|grephttpd如果没有安装httpd软件包,则配好yum源,使用yum命令安装。[root@localhost~]#yumi......
  • centos7安装redis
    centos7#安装yuminstallepel-releaseyumupdateyum install redis#命令serviceredisstopserviceredisstartserviceredisstatusserviceredisrestart#开机启动systemctlenableredis#禁用开机启动systemctldisableredis#配置密码vi/etc/redis.conf#查找requirepa......
  • 【Docker】docker介绍 什么是虚拟化 容器与虚拟机比较 Docker 概念 docker安装
    目录docker介绍什么是虚拟化docker是什么容器与虚拟机比较Docker概念docker安装docker介绍什么是虚拟化在计算机中,虚拟化(英语:Virtualization)是一种资源管理技术,是将计算机的各种实体资源,如服务器、网络、内存及存储等,予以抽象、转换后呈现出来,打破实体结构间的不可切割的障碍......
  • windows下安装skywalking 9.2
      下载地址:https://skywalking.apache.org/downloads/安装,在skywalking9.0版本以后,APM包和agen包是分离的,解压后默认没有agent文件夹,需要手动创建,然后将解压后的skywalking-agent中的文件复制到agent文件夹下默认解压后的包含的文件创建agent后,目录结构在w......
  • gitlab-ce-15.9.4安装
    如果需要汉化,请根据汉化来选择版本汉化包下载地址:https://gitlab.com/xhang/gitlab/1.依赖包安装yum-yinstallpolicycoreutilsopenssh-serveropenssh-clientspostfix2.下载gitlab-ce并安装#下载安装包https://mirrors.tuna.tsinghua.edu.cn/gitlab-ce/yum/el7/git......
  • Docker容器使用Flannel通信
    Docker使用Flannel跨主机通信通信的方式路由虚拟包头flannel网络概念Flannel是Docker提供的一种网络解决方案,它旨在为容器提供简单的IP地址管理和跨主机通信。Flannel使用了一些现有的技术,比如Linux内核的TUN/TAP接口和ETCD分布式键值存储,来实现容器之......
  • 安装python扩展库
    安装python扩展库1. 进入安装好的python的文件夹下的Scripts目录   2.cmd命令行界面(输入cmd回车即可进入当前目录)   3.输入pipinstall库名   4.打开IDLE查看是否安装成功,回车之后没有出现报红报错信息就是安装成功了。    ......
  • docker基础
    docker介绍什么是虚拟化?在计算机中,虚拟化(英语:Virtualization)是一种资源管理技术,是将计算机的各种实体资源,如服务器、网络、内存及存储等,予以抽象、转换后呈现出来,打破实体结构间的不可切割的障碍,使用户可以比原本的组态更好的方式来应用这些资源。这些资源的新虚拟部份是不受现......
  • 哪吒探针 - Windows 和Linux端agent安装(详细注意版)
    一、Windows端agent安装配置环境准备环境:Windows服务器软件:哪吒探针点击下载、nssm点击下载(探针agent和nssm都要下载准备好)设置环境变量下载软件后,解压到任意位置,然后按win+R打开运行窗口,输入sysdm.cpl打开系统属性–>高级–>环境变量–>系统变量–>Path在最后把......
  • docker 容器的数据卷
    一Docker数据卷简介1.1为什么用数据卷•宿主机无法直接访问容器中的文件•容器中的文件没有持久化,导致容器删除后,文件数据也随之消失•容器之间也无法直接访问互相的文件为解决这些问题,docker加入了数据卷(volumes)机制,能很好解决上面问题,以实现:•容器与主机之间、......