日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

Docker自动构建开发测试平台

發(fā)布時(shí)間:2025/3/15 编程问答 25 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Docker自动构建开发测试平台 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

介紹

在工作中需要對程序反復(fù)測試驗(yàn)證正確性,并發(fā)布。為了保證代碼開發(fā)測試運(yùn)行環(huán)境一致,主要采用docker實(shí)現(xiàn)自動化構(gòu)建、自動化測試。

開發(fā)環(huán)境

這里采用python開發(fā)環(huán)境為例,在默認(rèn)的Linux發(fā)行版中,docker鏡像默認(rèn)與ISO鏡像類似,除了系統(tǒng)本身的一些工具,并沒有安裝多余的軟件,需要自己在基礎(chǔ)操作系統(tǒng)鏡像上構(gòu)建開發(fā)環(huán)境的鏡像,后面統(tǒng)稱開發(fā)環(huán)境。

采用Dockerfile自動構(gòu)建,例如:

1 2 3 4 5 6 7 8 9 10 11 12 13 14 FROM centos:6VOLUME ["/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

構(gòu)建開發(fā)環(huán)境

1 cd mydev && docker build -t mydev .

執(zhí)行以上命令最后會生成名為mydev的鏡像。

Usage

有了基礎(chǔ)開發(fā)環(huán)境鏡像后,就可以進(jìn)行,開發(fā)、測試等測試。

啟動開發(fā)環(huán)境

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

執(zhí)行以上命令后會自動進(jìn)入容器里面的bash環(huán)境。如果退出容器后需要使用docker start mydev啟動容易,然后可以執(zhí)行docker exec -it mydev /bin/bash重新進(jìn)入容器。

自動構(gòu)建程序

通常采用shell腳本進(jìn)行自動化構(gòu)建,自動化部署等,同樣在這里,只需要實(shí)現(xiàn)build.bash這樣的shell自動化腳本即可。

比如把myapp打包成二進(jìn)制文件,build.bash例如:

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 #!/bin/bashMYPY_ENV="requirements.txt" function check_env(){for i in `cat $MYPY_ENV`dolocal HAVE_ENV=`pip show $i`if [ -z $HAVE_ENV ];thenpip install $ifidone }check_envrm -rf build dist *.spec pyinstaller -F -w myapp.py > log/info.log

采用docker執(zhí)行自動構(gòu)建。

如果第一次啟動自動構(gòu)建容器直接運(yùn)行:

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

以后運(yùn)行直接可運(yùn)行mybuild容器即可自動構(gòu)建。

1 docker start mybuild

自動化構(gòu)建運(yùn)行環(huán)境

將構(gòu)建出來的二進(jìn)制程序和相關(guān)的文件按照以下目錄存放:

1 2 3 4 myapp/bin/conf/lib/

構(gòu)建docker運(yùn)行環(huán)境鏡像。

1 2 3 4 5 6 7 8 9 10 FROM centos:6VOLUME ["/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"]

總結(jié)

以上是生活随笔為你收集整理的Docker自动构建开发测试平台的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。