通过docker export和import 升级镜像文件

背景

现版本的web自动化的CI/CD触发执行时,用例时间相较于以前大幅度增加,然后并没有web自动化用例的提交和维护,排查原因决定升级服务器中的Chrome版本看是否能有效减少时间。

升级思路

echo "------------------------run_branch.sh params------------------------"
	echo "ACCOUNT=${ACCOUNT}"
	echo "PASSWORD=${PASSWORD}"
  echo "MODULES=${MODULES}"
  echo "MOD_MODULES=${MOD_MODULES}"
  echo "URL=${URL}"
	echo "DOCKER_LOG_PATH=${DOCKER_LOG_PATH}"
	echo "DOCKER_LOG_FILE=${DOCKER_LOG_FILE}"
	echo ""

    docker run -d -v /dev/shm:/dev/shm -v /var/log:/var/log --rm --name ${DOCKER_LOG_FILE} \
        docker/robot-web-evn:latest bash -c \
        "/opt/run_branch.sh -B ${TEST_BRANCH} -P '-M ${MOD_MODULES} -U ${URL} -R -A ${ACCOUNT} -P ${PASSWORD} -D $DOCKER_LOG_PATH'"

从这段shell中知道在服务器上执行时,会针对不同模块都会起一个新的container,所以我们需要在image中修改Chrome的版本并且升级对应的Chromedriver。

docker镜像的导入和导出

查看正在运行的实例

--docker ps -a
root@localhost ~]# docker ps -a
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS              PORTS               NAMES
87cf238c109b        877e53b69c39        "bash"              5 weeks ago         Up 5 weeks                              optimistic_wing

查看服务器上面的镜像

[root@localhost ~]# docker images
REPOSITORY                  TAG                 IMAGE ID            CREATED             SIZE
docker/robot-web-evn        latest              877e53b69c39        9 months ago        1.73GB
stf-poc_nginx               latest              5b74c4e40526        9 months ago        127MB
stf-poc_storage-temp        latest              9269390e9255        9 months ago        950MB
nginx                       latest              9beeba249f3e        9 months ago        127MB
nginx                       mainline            9beeba249f3e        9 months ago        127MB
jenkinsci/blueocean         latest              9393ec9589f7        9 months ago        568MB
rethinkdb                   latest              cba833c1e775        9 months ago        125MB
ubuntu                      16.04               005d2078bdfa        10 months ago       125MB
openstf/stf                 latest              a65a9b509967        10 months ago       950MB
pseudomuto/protoc-gen-doc   latest              044fcab256f7        12 months ago       98MB
rethinkdb                   2.3                 3bf9f80966f0        14 months ago       126MB
sorccu/adb                  latest              7123ee61b746        2 years ago         30.5MB
openstf/ambassador          latest              b1f0eb8297cf        5 years ago         6.46MB

基于imageid:877e53b69c39有两个对应的容器实例,所以我们可以进入某一个容器对容器里面的文件作出修改后然后导出为tar文件再将该文件import为image。
执行

docker exec -it 87cf238c109b /bin/bash

进入容器里面,我们需要知道Chrome的路径,查看Dockerfile

FROM ubuntu:16.04

MAINTAINER homer

RUN mkdir -p /home

WORKDIR /opt

RUN echo && cd /home  \
    && apt-get update \
    && apt-get install -y python3.6 curl git vim wget \
#    && curl https://bootstrap.pypa.io/get-pip.py -o get-pip3.py \
#    && python3.6 get-pip3.py \
    && apt-get install python3-pip \
    && pip3 install --upgrade pip \
    && pip install -r packages.txt \

在根目录下有一个home的文件夹会去下载各种安装包

root@87cf238c109b:/# cd home
root@87cf238c109b:/home# ls
# 结果
google-chrome-stable_current_amd64.deb

去usr/local/bin目录查看当前Chrome版本

google-chrome -version

未升级之前的版本号为55

由于之前已经安装过了Chrome的依赖所以我们只需要下载最新的安装包

wget https://dl.google.com/linux/direct/google-chrome-stable_current_amd64.deb

然后将安装包解压,会自动覆盖当前的chrome版本,插件什么的都不会变

sudo dpkg -i ./google-chrome-stable_current_amd64.deb

此时再查看版本号为

Google Chrome 88.0.4324.182 

再去网站找到与当前版本符合的Chromedriver

wegt http://npm.taobao.org/mirrors/chromedriver/88.0.4324.96/chromedriver_linux64.zip

将下载的文件解压,放在如下位置

unzip chromedriver_linux64.zip
/usr/bin/chromedriver

容器的文件修改后我们可以退出容器做导出操作

[root@localhost ~]# docker export -o optimistic_wing.tar optimistic_wing

其中-o表示输出到文件,optimistic_wing.tar为目标文件,optimistic_wing是源容器名(name);
导出完毕后用这个tar文件导入为一个新的镜像

[root@localhost ~]# docker import optimistic_wing.tar docker/robot-web-evn

成功之后执行 docker image可以看到新建了一个镜像。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值