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


相关推荐

  • kafka集群搭建-docker版本[通俗易懂]

    kafka集群搭建-docker版本[通俗易懂]提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档kafka集群搭建文章目录kafka集群搭建前言一、kafka是什么?二、集群1.集群2.负载均衡3.扩容4.ZookeeperLeader选举kafka架构集群搭建下载安装zookeeper前言kafka是个高吞吐的消息中间件,为啥快啊?1顺序读写20拷贝3批量提交和批量ACK4分片和副本消息队列高可用就得用集群。提示:以下是本篇文章正文内容,下面案例可供参考一、kafka是什么?kafka理论参

    2022年5月2日
    86
  • docker部署gitlab[通俗易懂]

    docker部署gitlab[通俗易懂]这篇文章用来记录下我在使用docker部署gitlab时候遇到的一些坑。先介绍下我的环境:阿里云的轻量应用服务器:2核4G(好像最低要求配置,之前用2核2G的部署,直接给内存溢出),centos7.6第一步:安装docker具体安装步骤参考的是docker官方文档,主要就几个步骤就可以完成安装。1、…

    2022年10月7日
    4
  • docker启动mysql容器失败_docker 进入容器

    docker启动mysql容器失败_docker 进入容器实现命令如下:[root@localhost/]#dockersearchmysql(查找mysql镜像,此处如果无法获取到镜像,则可能是网络问题,需要保证虚拟机可以联网)[root@localhost/]#dockerpullmysql(拉取mysql镜像)[root@localhost/]#dockerimagels(查看所有的镜像)[root@…

    2022年10月5日
    3
  • centos7.6安装docker_docker自动部署多环境

    centos7.6安装docker_docker自动部署多环境前言前面一篇学了mac安装docker,这篇来学习在linux上安装docker环境准备Docker支持以下的CentOS版本,目前,CentOS仅发行版本中的内核支持Docker。Doc

    2022年7月30日
    7
  • docker部署jenkins安装使用教程_docker搭建python开发环境

    docker部署jenkins安装使用教程_docker搭建python开发环境前言使用docker安装jenkins环境,jenkins构建的workspace目录默认是在容器里面构建的,如果我们想执行python3的代码,需进容器内部安装python3的环境。进jenki

    2022年7月31日
    7
  • Docker启动mysql服务「建议收藏」

    Docker启动mysql服务「建议收藏」1:确保自己的服务器已经安装好了docker输入dockerinfo或者dockerversion2:然后我们去dockerhub去下载自己的想要的mysql镜像找到offic的版本,点击进入3:经命令放入linux中执行。[root@iZ2zehajf73atd9gbz1qdbZredisconf]#dockerpullmysql:5.64:然后检测自己是否下载成功:dockerimages5:dockerrun–name…

    2022年10月6日
    5

发表回复

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

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