Docker自动构建开发测试平台

本文详细介绍如何使用Docker创建自动化构建与测试环境,包括构建Python开发环境镜像,自动化构建程序,以及创建运行环境镜像的过程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

介绍

在工作中需要对程序反复测试验证正确性,并发布。为了保证代码开发测试运行环境一致,主要采用docker实现自动化构建、自动化测试。

开发环境

这里采用python开发环境为例,在默认的Linux发行版中,docker镜像默认与ISO镜像类似,除了系统本身的一些工具,并没有安装多余的软件,需要自己在基础操作系统镜像上构建开发环境的镜像,后面统称开发环境。

采用Dockerfile自动构建,例如:

FROM centos:6

VOLUME ["/opt/data"]
RUN curl -s -o /etc/yum.repos.d/CentOS-Base.repo http://mirrors.163.com/.help/CentOS6-Base-163.repo
RUN yum clean all && yum makecache
RUN yum -y install zlib-devel bzip2-devel openssl-devel ncurses-devel sqlite-devel readline-devel tk-devel gcc make libffi-devel 
RUN yum -y install libffi-devel 
RUN yum -y install git tar wget curl nss
RUN curl -o Python-2.7.15.tgz  -s -w %{http_code}  https://www.python.org/ftp/python/2.7.15/Python-2.7.15.tgz -L
RUN tar xvzf Python-2.7.15.tgz && cd Python-2.7.15&&./configure --enable-shared --enable-optimizations && make && make altinstall
RUN echo "/usr/local/lib" >> /etc/ld.so.conf
RUN ldconfig
RUN rm -rfv /usr/bin/python && ln -s /usr/local/bin/python2.7 /usr/bin/python
WORKDIR /opt/build

构建开发环境

cd mydev && docker build -t mydev .

执行以上命令最后会生成名为mydev的镜像。

Usage

有了基础开发环境镜像后,就可以进行,开发、测试等测试。

启动开发环境

docker run --name mydev -it -v /home/myapp:/opt/build/myapp mydev /bin/bash

执行以上命令后会自动进入容器里面的bash环境。如果退出容器后需要使用docker start mydev启动容易,然后可以执行docker exec -it mydev /bin/bash重新进入容器。

自动构建程序

通常采用shell脚本进行自动化构建,自动化部署等,同样在这里,只需要实现build.bash这样的shell自动化脚本即可。

比如把myapp打包成二进制文件,build.bash例如:

#!/bin/bash

MYPY_ENV="requirements.txt"
function  check_env(){
    for  i  in  `cat $MYPY_ENV`
    do
        local HAVE_ENV=`pip show $i`
        if [ -z $HAVE_ENV ];
        then
            pip install $i
        fi
    done
}

check_env

rm -rf build dist *.spec
pyinstaller -F -w myapp.py > log/info.log

采用docker执行自动构建。

如果第一次启动自动构建容器直接运行:

docker run --name mybuild -it -v /home/myapp:/opt/build/myapp mydev /bin/bash -c /opt/build/myapp/build.bash

以后运行直接可运行mybuild容器即可自动构建。

docker start mybuild

自动化构建运行环境

将构建出来的二进制程序和相关的文件按照以下目录存放:

myapp/
bin/
conf/
lib/

构建docker运行环境镜像。

FROM centos:6

VOLUME ["/opt/data"]
RUN curl -s -o /etc/yum.repos.d/CentOS-Base.repo http://mirrors.163.com/.help/CentOS6-Base-163.repo
RUN yum clean all && yum makecache
RUN yum -y install zlib-devel bzip2-devel openssl-devel ncurses-devel sqlite-devel readline-devel tk-devel gcc make libffi-devel 
ADD myapp/ /usr/local/
WORKDIR /usr/local/myapp
EXPOSE 80
CMD ["/usr/local/myapp/bin/myapp","-c" ,"/usr/local/myapp/conf/myapp.conf"]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

墨痕诉清风

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值