基于Docker的持续集成(jenkins部署docker项目)

之前做的都是docker中的jenkins部署boot项目  现在公司的项目是在docker中跑的 python项目  不需要打包了 需要jenkins来部署docker及传输代码至docker中

基本上都是围绕这Dockerfile来转!

系统:Ubuntu 18.4   docker 及 jenkins等DevOps工具已有

一:创建Dockerfile(文后会贴出)

二:创建jenkins Item (jenkins的全局变量,Key和SSH信息以填写,这些网上很多,在这就不多说了)

1,先做images 创建了一个名为test_images的Item  因为只是创建images 所以这个的源码管理那栏就直接留空

这个创建images就完成了   重头戏 dockerfile 后面在详解 SSH site那行格式为root@IP:port

2,创建docker 镜像及上传代码至服务器

源码管理那栏就填写gitlab或者github信息  这个在我以前文档中 读者可以翻看一下,master或者DEV分支啥的都可以设置选择。

 

然后构建后操作里面和以前一样 增加信息即可 

重点说一下远程目录这个   在dockerfile里面  设置了docker拉去宿主机的文件,也就是代码  docker要拉去宿主机的话只能拉去上下文的代码 这个通俗解释想要add/copy,文件必须在Dockerfile同一个根目录下。 如果dockerfile在/home/docker下  那么 把你要用的文件放在/home/docker下,那么 dockerfile里面的COPY 就只需要写 /(文件名)就行

这样第一个Item创建images  第二个Item传输代码和重启  就完成了自动发布。

 

重头戏:Dockerfile

贴上Dockerfile供大家参考

FROM ubuntu     #乌班图系统
MAINTAINER from leo
RUN apt-get update
RUN apt-get  install -y python3.7
RUN apt-get  install -y curl
WORKDIR /root
RUN python3.7  get-pip.py
RUN mkdir -p /root/test
RUN pip install  test                 这些其实用一个RUN就行 写成 RUN  XX \ XX \ XX 格式 
RUN pip install  test
RUN pip install  test        安装一些需要的插件
WORKDIR /root
RUN tar -zxvf xxxxxx.tar.gz               
WORKDIR ta-lib/
RUN apt-get install -y gcc build-essential
RUN  ./configure 
RUN make
RUN make install                             编译安装dockerfile都支持
RUN apt-get install  -y  python3.7-dev

ENV MYSQL_HOST=xx.xx.xx.xx
#ENV PATH=$DB_HOST/bin:$PATH
#ENV PATH DB_HOST                         设置环境变量 注释掉的两个是测试用 
ENV USER_NAME=xxxxx
ENV password=xxxxxxx

EXPOSE 5000:5000                          端口映射

COPY /test  /root/test    
#这里就是之前说的目录从宿主机的/var/lib/XXX下拷贝test到docker内的root下

WORKDIR /root/test   #切换到test下

CMD [ "python3", "./test.py" ]    # docker   run时直接开跑

 

总结:就是做一个在docker run 时 会执行 python XX.py的dockerfile   这个第一次跑的时候需要把代码先丢到宿主机上  不然docker在执行dockerfile时  执行到 COPY那步会因为找不见文件而断 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值