jenkinsfile docker_dockerfile创建文件夹

jenkinsfile docker_dockerfile创建文件夹前言之前我们用docker手动安装了jenkins环境,在jenkins中又安装了python3环境和各种安装包,如果我们想要在其他3台机器上安装,又是重复操作,重复劳动,那会显得很low,这里可以


Jetbrains全系列IDE使用 1年只要46元 售后保障 童叟无欺

前言

之前我们用docker手动安装了jenkins环境,在jenkins中又安装了python3环境和各种安装包,如果我们想要在其他3台机器上安装,又是重复操作,重复劳动,那会显得很low,这里可以使用Dockerfile来让他自动执行安装命令,类似shell脚本
 

环境准备

1.docker安装,可以参考这篇文章https://www.cnblogs.com/jiakecong/p/14307530.html
2.python3.7.6编译完成的文件夹,这里是复制之前在mac电脑上已经编译完成的包,通过rz命令导入即可
解释:这里为什么不用wget命令重新下载python3的包,再安装编译,经过博主实验,下载速度实在太慢,效率太低,所以直接使用Dockerfile中的copy命令,将文件复制到容器内部即可
 

查看路径内容

[root@jkc docker-run]# pwd
/root/docker-run
[root@jkc docker-run]# ls
Dockerfile  python3  requirements.txt
[root@jkc docker-run]# 

在docker-run下有3个文件,其中python3这个文件已经安装了python3.7.6的环境并且已经编译,且已经安装了requirements里的第三方包
 

编写Dockerfile文件

[root@jkc docker-run]# cat Dockerfile 
# 1.基于jenkins/jenkins:lts镜像
FROM jenkins/jenkins:lts

# 2.镜像维护者的姓名和邮箱地址
MAINTAINER jkc  <1044500650@qq.com>

# 3.指定当前工作目录
WORKDIR /var/jenkins_home

# 4.将当前目录文件夹下的所有文件拷贝到指定目录
COPY ./python3 ../python3
COPY requirements.txt ..

# 5.切换到root用户
USER root

# 6.添加软连接
RUN ln -s /var/jenkins_home/python3/bin/python3.7 /usr/bin/python3
RUN ln -s /var/jenkins_home/python3/bin/pip3 /usr/bin/pip3
RUN ln -s /var/jenkins_home/python3/bin/pytest /usr/bin/pytest

 

Dockerfile文件命令解析

  • 第1步:FROM就是拉取jenkins镜像,没什么好说的
  • 第2步:说明镜像者姓名和邮箱
  • 第3步:指定进入容器后的目录:/var/jenkins_home
  • 第4步:(重点)拷贝宿主机当前目录下的python3文件夹到容器当前目录(/var/jenkins_home)的上一级目录(/var),也就是说现在python3在/var目录下
  • 第5步:切换到root用户,以防止接下来的操作中,没有权限导致报错
  • 第6步:添加软链接python3、pip3、pytest,由于python3现在在/var目录,当启动完容器后,文件映射后,还需将python3移动到/var/jenkins_home
     

构建镜像

docker build -t jenkins_python:v2 .

 

启动容器

[root@jkc docker-run]# docker images
REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
jenkins_python      v2                  edb7a6021f60        About an hour ago   1.19GB
jenkins/jenkins     lts                 e5599f396096        2 weeks ago         717MB
[root@jkc docker-run]# docker run -itd -p 8080:8080 -p 50000:50000 --name jenkins --privileged=true -v /home/jenkins:/var/jenkins_home jenkins_python:v2
726bc4335ed2e78f05cab404986f924698bc41613dafacaa30f9b22a09a0cae8

这里明显发现构建的镜像容器为1.19GB,比正常只有jenkins环境的镜像多了400多MB,这是因为我们把python3的包复制到了镜像中
 

进入容器内部,复制python3文件到/var/jenkins_home

[root@jkc docker-run]# docker exec -it -uroot 726bc4335ed2 /bin/bash
root@726bc4335ed2:/var/jenkins_home# ls
config.xml                     jenkins.install.UpgradeWizard.state  nodeMonitors.xml  secret.key.not-so-secret  users
copy_reference_file.log        jenkins.telemetry.Correlator.xml     nodes             secrets                   war
hudson.model.UpdateCenter.xml  jobs                                 plugins           updates
identity.key.enc               logs                                 secret.key        userContent
root@726bc4335ed2:/var/jenkins_home# cd ..
root@726bc4335ed2:/var# ls
backups  cache  jenkins_home  lib  local  lock  log  mail  opt  python3  requirements.txt  run  spool  tmp
root@726bc4335ed2:/var# mv python3/ /var/jenkins_home/
root@726bc4335ed2:/var# cd jenkins_home/
root@726bc4335ed2:/var/jenkins_home# ls
config.xml                     jenkins.install.UpgradeWizard.state  nodeMonitors.xml  secret.key                userContent
copy_reference_file.log        jenkins.telemetry.Correlator.xml     nodes             secret.key.not-so-secret  users
hudson.model.UpdateCenter.xml  jobs                                 plugins           secrets                   war
identity.key.enc               logs                                 python3           updates

 

安装requirements.txt

root@726bc4335ed2:/var# ls
backups  cache  jenkins_home  lib  local  lock  log  mail  opt  requirements.txt  run  spool  tmp
root@726bc4335ed2:/var# pip3 install -r requirements.txt 

如果你跟博主一样,复制的python3里面已经有这些第三方包了,可以忽略此步骤
 

验证环境

root@726bc4335ed2:/var/jenkins_home# python3 --version
Python 3.7.6
root@726bc4335ed2:/var/jenkins_home# pip3 --version
pip 19.2.3 from /var/jenkins_home/python3/lib/python3.7/site-packages/pip (python 3.7)
root@726bc4335ed2:/var/jenkins_home# pytest --version
pytest 6.2.1
root@726bc4335ed2:/var/jenkins_home# 

 

打开浏览器,输入ip地址:8080,看到以下图片就代表安装成功

jenkinsfile docker_dockerfile创建文件夹

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/165118.html原文链接:https://javaforall.net

赞 (0)
全栈程序员-站长的头像全栈程序员-站长

相关推荐

  • 【云原生】第十二篇–docker容器镜像仓库Harbor部署[通俗易懂]

    【云原生】第十二篇–docker容器镜像仓库Harbor部署[通俗易懂]由于国内访问国外的容器镜像仓库速度比较慢,因此国内企业创建了容器镜像加速器,以方便国内用户使用容器镜像。Harbor是VMware公司开源的企业级DockerRegistry项目,其目标是帮助用户迅速搭建一个企业级的Dockerregistry服务。它以Docker公司开源的registry为基础,提供了管理UI,基于角色的访问控制(RoleBasedAccessControl),AD/LDAP集成、以及审计日志(Auditlogging)等企业用户需求的功能,同时还原生支持中文。…

    2022年10月25日
  • docker 镜像构建_docker 镜像制作

    docker 镜像构建_docker 镜像制作前言如果我们已经安装了一个python3的环境,如果另一台机器也需要安装同样的环境又要敲一遍,很麻烦,这里可以配置Dockerfile文件,让其自动安装,类似shell脚本Dockerfile编写

    2022年8月6日
  • docker 常用命令大全

    docker 常用命令大全Docker常用命令大全

    2022年5月13日
  • docker 导出所有镜像[通俗易懂]

    docker 导出所有镜像[通俗易懂]docker导出所有镜像

    2022年9月6日
  • docker 运行tomcat_docker和tomcat区别

    docker 运行tomcat_docker和tomcat区别在学习狂神的docker内容网络学习这一步的时候,按照步骤启动tomcat镜像,但是执行ipaddr之后发现下面问题,经过分析这说明我们下载的Tomcat镜像是精简版的,利用这个镜像去打开一个容器的时候发现没有ipaddr这个命令。所以到导致我们上述报错。上图执行的命令敲错了,重新执行aptinstall-yiproute2…

    2022年7月27日
  • docker完全卸载重装_在docker中使用ubuntu

    docker完全卸载重装_在docker中使用ubuntuubuntu完全卸载docker及再次安装文章目录ubuntu完全卸载docker及再次安装卸载docker1.删除docker及安装时自动安装的所有包2.查看docker是否卸载干净3.删除没有删除的相关插件4.删除docker的相关配置&目录5.确定docker卸载完毕安装docker以下操作均在管理员权限下运行卸载docker1.删除docker及安装时自动安装的所有包apt-getautoremovedockerdocker-cedocker-enginedocke

    2022年9月25日

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号