你用docker做過什么好玩或者有逼格的事情?
使用 Docker 搭建 Jenkins+python3+selenium\helium 項目項目背景用 python3 在本地寫了一個項目,這個項目采用 helium+selenium+chrome 進行界面操作,代碼放在 gitee 上托管?,F(xiàn)在基本功能已經(jīng)實現(xiàn),想在 Linux 服務器上部署項目代碼,實現(xiàn)自動構建。
自動構建解決方案自動構建工具選型:jenkins中間件選型:docker代碼運行環(huán)境:python3腳本運行工具:Chrome 瀏覽器、chromedriver、helium 庫Ⅰ、安裝 dockerLinux 系統(tǒng)中安裝 dockercurl -fsSL https://get.docker.com | bash -s docker --mirror Aliyun
docker 鏡像國內(nèi)加速vim /etc/docker/daemon.json
{
"registry-mirrors": [
"https://registry.docker-cn.com",
"http://hub-mirror.c.163.com",
"https://docker.mirrors.ustc.edu.cn"
]
}
# 重啟服務
systemctl daemon-reload
systemctl restart docker
Ⅱ、安裝 jenkins在 Linux 上任意路徑,創(chuàng)建一個用于存放 Jenkins 文件的文件夾 "jenkins_py"mkdir jenkins_py docker run -itd --name=jenkins_py -p 8989:8080 -p 50001:50000 -v $PWD:/var/jenkins_home --privileged=true -u root jenkins/jenkins
訪問 jenkins:http://ip:8989出現(xiàn)輸入密碼頁面時,獲取密碼:方法 1:# 進入容器docker exec -it -u root jenkins_py /bin/bash
# 查看密碼
cat /var/jenkins_home/secrets/initialAdminPassword
方法 2:# 在當前宿主linux機器上,進入前面自己創(chuàng)建的jenkins_py文件夾
cd secrets
cat initialAdminPassword
復制密碼,填入 Web 頁面的密碼框,在選擇安裝插件頁面,點擊安裝推薦插件,等待插件自動安裝Ⅲ、容器安裝必要軟件進入容器docker exec -it -u root jenkins_py /bin/bash
安裝更新# 安裝更新
apt-get update
# 查看系統(tǒng)
cat /etc/issue
# 此時容器默認的系統(tǒng)為 debain 9
# debain默認的軟件源非常慢, 可以更換為國內(nèi)阿里源
# 安裝vim
apt-get install -y vim
apt-get install -y wget
# 更換源為阿里源
vim /etc/apt/sources.list
deb http://mirrors.aliyun.com/debian/ stretch main non-free contrib
deb-src http://mirrors.aliyun.com/debian/ stretch main non-free contrib
deb http://mirrors.aliyun.com/debian-security stretch/updates main
deb-src http://mirrors.aliyun.com/debian-security stretch/updates main
deb http://mirrors.aliyun.com/debian/ stretch-updates main non-free contrib
deb-src http://mirrors.aliyun.com/debian/ stretch-updates main non-free contrib
deb http://mirrors.aliyun.com/debian/ stretch-backports main non-free contrib
deb-src http://mirrors.aliyun.com/debian/ stretch-backports main non-free contrib
# 更新系統(tǒng)
apt-get update
# 安裝libssl-dev
apt-get install libssl-dev
Ⅳ、配置 Web 自動化環(huán)境下載瀏覽器百度搜索"chrome for linux", 下載適合 debain 版本的 Chrome 瀏覽器把下載的文件上傳到 Linux 機器下載瀏覽器驅動下載 Chrome 瀏覽器 Linux 對應版本的驅動把下載的文件上傳到 Linux 機器Jenkins 容器中,安裝 Chrome 瀏覽器# 把chrome文件,復制到上面創(chuàng)建的 jenkins_py 文件夾
cp google-chrome-stable_current_amd64_85.0.4183.102.deb ./jenkins_py/
# 進入容器
docker exec -it -u root jenkins_py /bin/bash
cd /var/jenkins_home
chmod +x google-chrome-stable_current_amd64_85.0.4183.102.deb
dpkg -i google-chrome-stable_current_amd64_85.0.4183.102.deb
配置瀏覽器驅動# 解壓驅動zip包
unzip chromedriver_linux64.zip
# 拷貝到 jenkins_py文件夾
cp chromedriver ./jenkins_py/
# 進入容器
docker exec -it -u root jenkins_py /bin/bash
cd /var/jenkins_home
chmod +x chromedriver
mv chromedriver /usr/bin/
cp /usr/bin/chromedriver /usr/local/bin/
Ⅴ、安裝 python3安裝 python3apt-get install -y python3
安裝 pip# 下載pip
wget https://bootstrap.pypa.io/get-pip.py
python3 get-pip.py
pip3 install --upgrade --force-reinstall setuptools
修改系統(tǒng)默認 python 版本為 python3cd /usr/bin
ls -l python*
# 查看上面的python3的版本
rm -rf python
ln -s python3.5 pythonpython3.5
# 修改為上面對于的python3版本* 修改pip源
修改 pip 源vim /etc/pip.conf
[global]
trusted-host = mirrors.aliyun.com
index-url = http://mirrors.aliyun.com/pypi/simple/
Ⅵ、jenkins 配置任務創(chuàng)建任務配置 Git配置構建觸發(fā)器(可選)配置構建腳本pip install -r requirements.txt 執(zhí)行項目根目錄中的 requirements.txt 文件,自動安裝項目需要的庫,這樣就不用擔心代碼引入了新庫,而 Jenkins 中不存在,導致報錯了。cp ../../tools.ini $PWD/src/conf 拷貝配置文件。因為 gitee 托管項目時,沒有提交 ini 帶私密信息的配置文件python main.py 用 python 執(zhí)行項目構建注意: 用 docker+jenkins 來運行 selenium 的項目,是無圖形界面的,所以項目中,瀏覽器必須采用無頭模式# 參考代碼
self.options = ChromeOptions()
self.options.add_argument('--headless')
self.options.add_argument('--no-sandbox')
self.options.add_argument('--disable-gpu')
self.options.add_argument('--disable-dev-shm-usage')
start_chrome(headless=True,options=self.options)
好了,項目構建成功。整個構建步驟、方法,你學會了嗎?