Docker API测试环境打包镜像(mac)

TODO:使用docker技术,打包API自动化测试环境镜像并上传至私有仓库
ENV:jenkins,python3.7



安装docker

mac相比windows安装更简单一些,只需一行命令就搞定啦。下载会有些慢,耐心等待。

brew cask install docker

如果没有brew,请参考:Mac 下安装 Homebrew

下载完成后,启动栏会多一个docker的图标,点击启动。

此时命令行输入docker info就可以看到docker的基本信息。


配置私有仓库

因为公司有单独的私有仓库,所以还需要进行配置才可以正常访问。
进入这个页面:Preferences - Daemon - Basic,开启 Experimental features,点击 “+”,添加私有仓库地址即可。docker会自动重启,启动成功后,即可正常访问。
Docker API测试环境打包镜像(mac)

制作镜像

有两种方法:

  • 通过dockerfile进行自动build;
  • 先拉取jenkins镜像,再手动安装python。

一般都是通过dockerfile来进行构建,由于环境依赖不多,先用比较low的办法吧。(其实是因为不会写dockerfile

1.拉取jenkins镜像:docker pull jenkins,默认是从官方仓库拉取最新镜像。拉取成功后可以通过docker images查看镜像。
Docker API测试环境打包镜像(mac)

2.运行jenkins容器

docker run --name myjenkins -p 8080:8080 -v /var/jenkins_home jenkins

–name:自定义命名
-p:端口映射,格式为:主机(宿主)端口:容器端口
-v:挂载目录
jenkins:基础镜像

运行后在web查看,浏览器输入127.0.0.1:8080即可进入jenkins页面,如果需要输入**,则根据提示进入容器对应路径查看**填入即可。

如何进入正在运行的容器?

打开一个新的iterm窗口,输入如下命令:

普通用户(仅访问):docker exec -it <container_id> bash
root用户(管理员):docker exec -it -u root <container_id> bash

进入容器命令行交互模式,进入对应路径查看**

[email protected]:/$ cd /var/jenkins_home/secrets/
[email protected]:~/secrets$ cat initialAdminPassword

拿到**,创建完管理员账号,正常访问~

下载python3.7

还需要安装python,首先查看所需要的版本:点击这里进入版本列表

进入jenkins容器命令交互模式,下载:

wget https://www.python.org/ftp/python/3.7.0/Python-3.7.0.tar.xz

等待下载完成,进行解压:

tar xvf Python-3.7.0.tar.xz

进入Python-3.7.0目录,配置安装路径:

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

执行编译安装:

make && make install

没能正常编译成功,心塞~~接下来写写遇到的问题。

遇到的问题

安装过程中遇到如下问题,报错日志:

configure: error: in `/usr/local/python3/Python-3.7.0': configure: error: no acceptable C compiler found in $PATH See `config.log' for more details

是因为执行./configure --prefix=/usr/local/python3时编译缺少gcc环境,解决方法如下:

  • 配置debian源
  • 安装gcc,应该就能正常编译成功了吧。我在运维小哥哥的建议下,没安装gcc,直接apt-get install python3,安装成功。
  • 安装pip apt-get install python3-pip

更新镜像

语法
docker commit [OPTIONS] CONTAINER [REPOSITORY[:TAG]]
-a:提交人
-m:备注信息
-p:commit时,将容器暂停

实例

mbp:~ lanzy$ docker commit -a "lanzy" -m "api test env" 7b0dc4b05174 apitestenv:v1
sha256:4e72402053e88362efc783a67c5b2aac32c7f3ace95e0fb968ff7826f71c337b

此时再次查看现有镜像,出现刚才提交的镜像。
Docker API测试环境打包镜像(mac)

提交至私有仓库

docker push $path

$path:为私有仓库链接地址。


至此,新的镜像就做出来了~~

dockerfile的写法后续还会继续学习ing~~