jenkinsfile docker_dockerfile创建文件夹

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

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

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)
上一篇 2022年7月28日 下午8:36
下一篇 2022年7月28日 下午8:36


相关推荐

  • docker(9)Dockerfile制作镜像[通俗易懂]

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

    2022年7月28日
    11
  • docker命令详解「建议收藏」

    docker命令详解「建议收藏」镜像下载搜索镜像dockersearch+镜像名字#dockersearchcentos从DockerHub中搜索符合条件的镜像下载镜像#dockerpull+镜像名字#dockerpullcentos查看镜像#dockerimages开启网络转发功能(默认为开启状态)若无开启,可以使用以下命令开启#vim/etc/sysctl…

    2022年5月13日
    42
  • Docker总结(配合阿里云容器镜像服务)「建议收藏」

    Docker总结(配合阿里云容器镜像服务)「建议收藏」Docker是个很好的工具,刚开始用觉得还没虚拟环境好用,随着深入了解,越发觉得Docker好用,今天就来总结一下使用心得。一、Docker基础1、背景知识1)docker是什么?Docker属于Linux容器的一种封装,提供简单易用的容器使用接口。它是目前最流行的Linux容器解决方案。Docker将应用程序与该程序的依赖,打包在一个文件里面。运行这个…

    2022年5月24日
    66
  • docker安装elasticsearch(最详细版)[通俗易懂]

    docker安装elasticsearch(最详细版)[通俗易懂]docker安装elasticsearch1.设置max_map_count不能启动es会启动不起来查看max_map_count的值默认是65530cat/proc/sys/vm/max_map_count重新设置max_map_count的值sysctl-wvm.max_map_count=2621442.下载镜像并运行#拉取镜像dockerpullelasticsearch:6.5.4#启动镜像dockerrun–nameelasticsearch-d

    2022年6月11日
    78
  • linux下卸载docker

    linux下卸载docker卸载 1 查询安装过的包 yumlistinsta grepdockerdo engine x86 64 nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp 17 03 0 ce 1 el7 centos nbsp nbsp nbsp nbsp dockerrepo2 删除安装的软件包 yum yremovedocke engine x86 643 删除镜像 容器等 rm rf v

    2026年3月26日
    1
  • Docker方式安装showdoc

    Docker方式安装showdoc

    2021年6月4日
    109

发表回复

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

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