Docker构建自动化测试项目镜像(Python3+Java)

原理

        因为我的自动化测试框架中涉及到调用java的py文件,所以在构建docker镜像中需要配置python、java的环境,否则执行项目镜像时会不通过,具体的内容包含:centos镜像、python3.x、java、node、npm的配置。

        首先先下载个centos的镜像,然后启动该镜像生成一个容器,进入该容器内配置python、java、node、npm等环境,完成后退出容器,然后将该容器再构造成新的一个镜像,在项目根目录中创建Dockerfile文件,并引入该新的镜像,最后在build该镜像后运行即可执行自动化测试脚本。

一、Docker镜像下载及构建

1、运行容器及java环境配置

1. 运行命令,即自动下载centos对应的镜像,但此时镜像是关闭状态:

    docker run centos:x.x 或者 docker pull centos

2. docker images 查看上述命令对应的 镜像

3. docker run -it centos:x.x /bin/bash

    之后退出 exit

    docker ps -a 之后, docker start imageid 启动对应的关闭状态的镜像 。

    docker exec -it imageid /bin/bash 进入镜像

目前centos已停止维护,需要将镜像从 mirror.centos.org 更改为 vault.centos.org,操作步骤如下:

cd /etc/yum.repos.d/
sed -i 's/mirrorlist/#mirrorlist/g' /etc/yum.repos.d/CentOS-*
sed -i 's|#baseurl=http://mirror.centos.org|baseurl=http://vault.centos.org|g' /etc/yum.repos.d/CentOS-*
 
yum makecache
yum update -y
yum -y install vim

下载java8环境:

yum install java-1.8.0-openjdk.x86_64

安装 vim 工具:

yum install vim

yum install libffi libffi-devel -y

#下载安装python编译环境依赖:

yum -y install openssl-devel bzip2-devel expat-devel gdbm-devel readline-devel sqlite-devel

#安装make编译所需的gcc,g++编译器:

yum -y install gcc automake autoconf libtool make wget

#移除centos中自带的python2.7的环境变量(可操作性可不操作):

#操作路径 /usr/bin

mv python python.bak

2、下载python3.10.4的源码压缩文件

1. 创建安装路径

   mkdir -p /usr/local/python/python3

2. 进入指定路径下载python源码

    #操作路径 /usr/local

    wget https://www.python.org/ftp/python/3.10.4/Python-3.10.4.tgz

   解压源码压缩包

   #操作路径 /usr/local

      tar -zxvf Python-3.10.4.tgz

3、安装python3.10.4

     编译安装环境

     #操作路径 /usr/local/Python-3.10.4/

    ./configure --prefix=/usr/local/python/python3

     进行安装python3.10.4

    #操作路径要在/usr/local/Python-3.10.4

    make && make install

    软链接绑定

    ln -s /usr/local/python/python3/bin/python3 /usr/bin/python

注意:软链接绑定是如果提示 /ur/bin/python已存在,说明之前的python2.7的软链接没有删除

验证是否安装成功

python -V

输出下方信息,证明成功了

Python 3.10.4

注意:由于centos7的yum要使用到python2.7.5的环境,我们要指定yum使用的python的版本,不然使用了3.6.8可能会导致yum命令无法使用,修改头部设置为使用python2.7

# 操作路径 /usr/bin/

vim yum

# 修改头部设置如下方

#!/usr/bin/python2.7

若上述不好使,后续可使用 wget 命令进行安装;

3、安装pip工具

因为以后安装python的库要用到pip这个工具,所以也要安装

安装pip

#操作路径 /usr/local

wget https://bootstrap.pypa.io/get-pip.py

python get-pip.py

绑定软连接

ln -s /usr/local/python/python3/bin/pip3 /usr/bin/pip

验证是否安装成功

pip -V

4、安装node、使用npm命令安装crypto-js库

node安装:

下载及安装:

cd /usr/local/

mkdir node

cd node

wget https://nodejs.org/dist/v16.17.0/node-v16.17.0-linux-x64.tar.xz

tar -xvf node-v16.17.0-linux-x64.tar.xz

修改etc下的profile文件

vim /etc/profile

添加以下内容:

export NODE_HOME=/usr/local/node

export PATH=$NODE_HOME/bin:$PATH

重启profile文件

source /etc/profile

npm安装crypto-js库

npm install crypto-js

该库的存放路径为:/usr/local/node_modules

该库主要用于我个人框架中的获取ticket所调用

需要在我的自动化项目框架中的config.yaml文件中配置该路径

二、提交安装的镜像

1.执行命令

docker commit -m="has update" -a="liwenqiang" awd3as34cs centos:v1.0

各个参数说明:

  • -m: 提交的描述信息
  • -a: 指定镜像作者
  • awd3as34cs: ID
  • centos:v1.0: 指定要创建的目标镜像名

 docker images 命令来查看新镜像  centos:v1.0

2、导出镜像

docker save -o my_centos_v1.0.tar centos:v1.0

用的时候导入镜像:

docker load -i my_centos_v1.0

三、项目根目录创建Dockerfile文件,并编辑内容

根目录创建Dockerfile文件:

vi Dockerfile

FROM centos:v1.0

WORKDIR /auto_test_venv

ADD . .

RUN pip install -r package.txt

CMD ["python","run.py"]

FROM:指定的基础镜像名称,如果没有基础镜像,可以写成FROM scratch。

MAINTAINER:指定镜像作者。

EXPOSE:暴露容器运行时的监听端口。

ENV:设置环境变量。

ENTRYPOINT:镜像启动时执行的命令。

WORKDIR:为后续的RUN、CMD、ENTRYPOINT指令配置工作目录。

ADD:把指定文件复制到镜像的某个路径下。

RUN:指令将在当前镜像基础上执行指定命令,并提交为新的镜像,命令较长时可以使用 \ 来换行。

CMD:指定启动容器时执行的命令,每个Dockerfile只能有一条CMD命令。

保存:wq

四、重新构建新镜像

项目根目录下执行:

docker build -t lwq-demo:v1 .

运行镜像即执行自动化测试脚本:        

docker run lwq-demo:v1

  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值