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)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 解决docker下载镜像速度过慢_docker镜像启动后又迅速结束

    解决docker下载镜像速度过慢_docker镜像启动后又迅速结束前言上一篇讲到pull镜像,但是pull镜像的时候下拉的速度实在感人,有什么解决办法吗?我们只需将docker镜像源修改为国内的将docker镜像源修改为国内的:在/etc/docker/d

    2022年7月31日
    2
  • Docker(四):使用Docker部署tomcat、mysql、nginx静态服务器

    Docker(四):使用Docker部署tomcat、mysql、nginx静态服务器

    2021年9月26日
    75
  • docker 删除_Docker删除镜像和容器[通俗易懂]

    docker 删除_Docker删除镜像和容器[通俗易懂]当一个host中镜像和容器较多,需要重置时可选择删除其中部分或全部的镜像和容器。那么你就需要下面的操作了。1、删除容器1)首先需要停止所有的容器dockerstop$(dockerps-a-q)2)删除所有的容器(只删除单个时把后面的变量改为containerid即可)dockerrm$(dockerps-a-q)2、删除镜像1)查看host中的镜像dockeri…

    2022年4月19日
    258
  • 如何保证docker2375端口的安全

    如何保证docker2375端口的安全情景再现:之前有很多朋友提过,当使用docker-maven-plugin打包SpringBoot应用的Docker镜像时,服务器需要开放2375端口。由于开放了端口没有做任何安全保护,会引起安全漏洞,被人入侵、挖矿、CPU飙升这些情况都有发生,今天我们来聊聊如何解决这个问题。问题产生的原因首先我们要明白问题产生的原因,才能更好地解决问题!Docker为了实现集群管理,提供了远程管理的端口。DockerDaemon作为守护进程运行在后台,可以执行发送到管理端口上的Docker命令。当我们修改do

    2022年6月13日
    217
  • linux如何安装docker_deepin安装docker

    linux如何安装docker_deepin安装docker安装前准备Linux系统下,版本需要不小于3.10.x目前docker安装只支持centOS7、centOS6.5也就是说centOS7是需要3.1以上内核centOS7是需要2.6以上内核linux输出命令uname-a这里用的是centOS7、3.1安装docker,大家最好也同步一下centOS7镜像可以从阿里云拉取一个,然后在搭建linux的时候跟之前版本差不多,只不过需要更改的点是vi/etc/sysconfig/network-scripts/ifcfg-

    2022年10月9日
    0
  • docker镜像操作_docker主要特性

    docker镜像操作_docker主要特性前言Docker的三大核心概念:镜像、容器、仓库。初学者对镜像和容器往往分不清楚,学过面向对象的应该知道类和实例,这跟面向对象里面的概念很相似我们可以把镜像看作类,把容器看作类实例化后的对象。|

    2022年7月29日
    3

发表回复

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

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