亚洲视频二区_亚洲欧洲日本天天堂在线观看_日韩一区二区在线观看_中文字幕不卡一区

公告:魔扣目錄網(wǎng)為廣大站長提供免費(fèi)收錄網(wǎng)站服務(wù),提交前請做好本站友鏈:【 網(wǎng)站目錄:http://www.430618.com 】, 免友鏈快審服務(wù)(50元/站),

點(diǎn)擊這里在線咨詢客服
新站提交
  • 網(wǎng)站:51998
  • 待審:31
  • 小程序:12
  • 文章:1030137
  • 會員:747

目錄
  • 一、背景
  • 二、依賴環(huán)境
  • 三、在線制作
    • 3.1 chromedriver
    • 3.2 中文包安裝
    • 3.3 jdk1.8安裝
  • 四、離線制作
    • 五、驗(yàn)證
      • 總結(jié)

        一、背景

        系統(tǒng)有個(gè)功能需要依賴chrome和chromedriver,利用無頭瀏覽器實(shí)現(xiàn)截圖功能,在虛擬機(jī)上能夠正常運(yùn)行,但切換到容器化的環(huán)境,因?yàn)榛A(chǔ)鏡像我們依賴的是openjdk,缺少相關(guān)驅(qū)動(dòng),同時(shí)翻了一下dockerhub,并沒有找到現(xiàn)有的官方鏡像能夠支撐功能的實(shí)現(xiàn),所以需要自己去制作Docker鏡像。

        二、依賴環(huán)境

        制作鏡像首先需要明確鏡像所需要依賴的環(huán)境和作用范圍。在這個(gè)場景中,需要安裝chrome和chromedriver,同時(shí)還得有jdk的環(huán)境以支撐模塊的運(yùn)行,安裝過程中需要解壓縮包,所以還需要unzip、tar工具,同時(shí)還需要下載依賴,所以得有yum環(huán)境。

        一般我們制作鏡像都是依賴于某個(gè)鏡像做為基礎(chǔ)鏡像在其上面來完成的,基礎(chǔ)鏡像這里我選擇的是centos7.9.2009,大小204M,因?yàn)楸旧碓撶R像已經(jīng)包含了tar和yum等基礎(chǔ)運(yùn)行環(huán)境,對于我們來說操作起來會比較方便。鏡像制作分兩中模式,這里我分為在線制作和離線制作,推薦采用離線制作的方式。

        三、在線制作

        3.1 chromedriver

        在線制作就是依賴于某個(gè)基礎(chǔ)鏡像,在其運(yùn)行的基礎(chǔ)上安裝號環(huán)境再重新打包成一個(gè)鏡像。所以首先是拉取centos7.9.2009基礎(chǔ)鏡像到本地。

        docker pull centos:centos7.9.2009

        運(yùn)行基礎(chǔ)鏡像,數(shù)據(jù)卷掛載本地目錄/home/centos/到容器內(nèi)部目錄/home/env/,方便我們上傳一些文件到容器內(nèi)部

        docker run -itd --name centos -v /home/centos/:/home/env/ centos:centos7.9.2009

        chrome、chromedriver和jdk采用離線安裝的方式,上傳相關(guān)文件到宿主機(jī)/home/centos/,進(jìn)入容器可以看到掛載的目錄下也有上傳的文件。

        Docker制作鏡像的兩種方式(在線制作和離線制作)

        centos7.9.2009基礎(chǔ)鏡像沒有unzip工具,使用 yum install -y unzip zip 安裝工具,unzip chrome_rpm.zip 解壓chrome_rpm,使用 rpm -Uvh *.rpm –nodeps –force 進(jìn)行安裝。

        Docker制作鏡像的兩種方式(在線制作和離線制作)

        安裝后會報(bào)找不到 xdg-icon-resource,這個(gè)不影響,安裝完后繼續(xù)處理 chromedriver,將 chromedriver 加壓到指定目錄,同時(shí)授予可執(zhí)行權(quán)限。

        unzip chromedriver_linux64.zip
        mv chromedriver /usr/bin/
        
        # 設(shè)置權(quán)限
        chmod +x /usr/bin/chromedriver
        

        使用 yum 安裝 libxcb

        yum install libxcb

        libxcb 安裝完后使用 /usr/bin/chromedriver 可以看到谷歌驅(qū)動(dòng)安裝成功了

        Docker制作鏡像的兩種方式(在線制作和離線制作)

        3.2 中文包安裝

        使用chrome的過程中發(fā)現(xiàn)截圖后很多中文顯示不了,是因?yàn)榉?wù)器缺少了中文包。檢查容器內(nèi)部是否有中文包,命令不存在說明沒有。

        Docker制作鏡像的兩種方式(在線制作和離線制作)

        yum安裝中文包和字體配置

        yum install fontconfig
        yum groupinstall "fonts"
        

        安裝之后重新驗(yàn)證,如果出現(xiàn)以下內(nèi)容則說明安裝成功

        Docker制作鏡像的兩種方式(在線制作和離線制作)

        3.3 jdk1.8安裝

        jdk的安裝比較簡單,將 jdk 解壓同時(shí)拷貝到 /usr/local/ 下就可以了

        tar -zxvf jdk-8u251-linux-x64.tar.gz
        mv jdk1.8.0_251 /usr/local/
        

        上面只是移動(dòng)了jdk文件的目錄,但是還沒有配置環(huán)境變量,試過直接在容器內(nèi)部配置jdk的環(huán)境變量,但是打包后的鏡像每次拉取都需要手動(dòng)執(zhí)行 source /etc/profile 環(huán)境變量才會生效。網(wǎng)上有的說可以把環(huán)境變量放到 ~/.bashrc 中,但是試了并不生效。想了下,可以依賴docker傳遞環(huán)境變量參數(shù),所以先把安裝了環(huán)境的構(gòu)建成一個(gè)基礎(chǔ)鏡像,通過dockerfile攜帶環(huán)境變量,最終構(gòu)建成一個(gè)完整的基礎(chǔ)鏡像。

        把安裝了環(huán)境的docker容器制作成鏡像,同時(shí)推送到遠(yuǎn)程harbor倉庫

        # docker容器構(gòu)建成鏡像
        docker commit -a "icc" -m "base images centos7.9.2009, include java、chrome and chromedriver" 671d33884ee6 127.0.0.1:10000/icc/openjdk:8-jdk-env
        
        # 推送到遠(yuǎn)程倉庫
        docker push 127.0.0.1:10000/icc/openjdk:8-jdk-env
        

        通過 dockerfile 的方式構(gòu)建基礎(chǔ)鏡像,其中傳遞 JDK 的環(huán)境變量

        FROM 127.0.0.1:10000/icc/openjdk:8-jdk-env
        
        ENV JAVA_HOME=/usr/local/jdk1.8.0_251
        ENV PATH=$PATH:$JAVA_HOME/bin
        ENV CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
        
        WORKDIR /home/icc/
        

        構(gòu)建鏡像并推送到遠(yuǎn)程harbor倉庫

        docker build --tag 127.0.0.1:10000/icc/openjdk:8-jdk-icc ./
        docker push 127.0.0.1:10000/icc/openjdk:8-jdk-icc
        

        Docker制作鏡像的兩種方式(在線制作和離線制作)

        四、離線制作

        離線制作,就是把依賴的環(huán)境都下載,依賴Dockerfile幫我們完成環(huán)境的安裝的鏡像的制作。

        編寫Dockerfile文件

        FROM centos:7
        
        # 安裝chrome
        ADD google-chrome-stable.rpm /usr/local
        RUN yum -y localinstall /usr/local/google-chrome-stable.rpm
        
        # 安裝chromedriver
        ADD chromedriver.tar.gz /usr/bin
        
        # 安裝中文字體
        RUN yum -y groupinstall "fonts"
        
        # 安裝JDK
        ADD jdk-8u251-linux-x64.tar.gz /usr/local/
        
        ENV JAVA_HOME=/usr/local/jdk1.8.0_251
        ENV PATH=$PATH:$JAVA_HOME/bin
        ENV CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
        
        WORKDIR /home/icc/
        

        五、驗(yàn)證

        對于模塊的編排文件來說,只需要把基礎(chǔ)鏡像換一下便可以了

        Docker制作鏡像的兩種方式(在線制作和離線制作)

        在k8s集群上可以看到也已經(jīng)有相應(yīng)的環(huán)境

        Docker制作鏡像的兩種方式(在線制作和離線制作)

        總結(jié)

        分享到:
        標(biāo)簽:兩種 制作 在線 離線 鏡像
        用戶無頭像

        網(wǎng)友整理

        注冊時(shí)間:

        網(wǎng)站:5 個(gè)   小程序:0 個(gè)  文章:12 篇

        • 51998

          網(wǎng)站

        • 12

          小程序

        • 1030137

          文章

        • 747

          會員

        趕快注冊賬號,推廣您的網(wǎng)站吧!
        最新入駐小程序

        數(shù)獨(dú)大挑戰(zhàn)2018-06-03

        數(shù)獨(dú)一種數(shù)學(xué)游戲,玩家需要根據(jù)9

        答題星2018-06-03

        您可以通過答題星輕松地創(chuàng)建試卷

        全階人生考試2018-06-03

        各種考試題,題庫,初中,高中,大學(xué)四六

        運(yùn)動(dòng)步數(shù)有氧達(dá)人2018-06-03

        記錄運(yùn)動(dòng)步數(shù),積累氧氣值。還可偷

        每日養(yǎng)生app2018-06-03

        每日養(yǎng)生,天天健康

        體育訓(xùn)練成績評定2018-06-03

        通用課目體育訓(xùn)練成績評定