<output id="qn6qe"></output>

    1. <output id="qn6qe"><tt id="qn6qe"></tt></output>
    2. <strike id="qn6qe"></strike>

      亚洲 日本 欧洲 欧美 视频,日韩中文字幕有码av,一本一道av中文字幕无码,国产线播放免费人成视频播放,人妻少妇偷人无码视频,日夜啪啪一区二区三区,国产尤物精品自在拍视频首页,久热这里只有精品12

      Django+Vue+Docker搭建接口測試平臺實戰

      一. 開頭說兩句

      大家好,我叫林宗霖,是一位測試工程師,也是全棧測開訓練營中的一名學員。

      在跟著訓練營學習完Docker容器技術系列的課程后,理所應當需要通過實操來進行熟悉鞏固。正好接口自動化測試平臺需要遷移到新的測試服務器上,就想要體驗一番Docker的“一次構建,處處運行”。這篇文章簡單介紹了下這次部署的過程,其中使用了Dockerfile定制鏡像和Docker-Compose多容器編排。

      二. 項目介紹

      項目采用的是前后端分離技術來實現的,前端是Vue+ElementUI,后端是Django+DRF,數據庫是MySQL,當前部署版本沒有其他中間件。

      2.1 安裝docker和docker-compose

      下述所有操作,皆在Centos 7環境下進行

      1.清理或卸載舊版本

      sudo yum remove docker \
                        docker-client \
                        docker-client-latest \
                        docker-common \
                        docker-latest \
                        docker-latest-logrotate \
                        docker-logrotate \
                        docker-engine
      

      2.更新yum庫

      sudo yum install -y yum-utils
      sudo yum-config-manager \
          --add-repo \
          https://download.docker.com/linux/centos/docker-ce.repo
      

      3.安裝最新版本

      sudo yum install docker-ce docker-ce-cli containerd.io
      

      4.啟動Docker服務

      sudo systemctl start docker
      

      5.下載docker compose安裝包

      采用curl安裝的方式比直接用pip安裝好處是不怕缺少某些依賴

      sudo curl -L "https://github.com/docker/compose/releases/download/1.28.6/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
      

      6.修改docker compose的權限

      sudo chmod +x /usr/local/bin/docker-compose
      

      2.2 Dockerfile定制python容器

      1. 首先把需要部署的django項目代碼放到特定目錄下(這里是/data/test_object

      2. 把django項目依賴包文件requirements.txt也放在該目錄下

      3. 創建Dockerfile文件:vim Dockerfile

      4. Dockerfile內容:(注意:注釋別跟在語句后面,有些語句執行時會因此出現問題):

      # 基礎鏡像
      FROM python:3.6.8
      
      # 把輸出及時重定向到文件,替代python -u
      ENV PYTHONUNBUFFERED 1
      
      # 創建目錄并切換工作目錄
      RUN mkdir /code && mkdir /code/db
      WORKDIR /code
      
      # 添加文件
      ADD ./requirements.txt /code/
      
      # 執行命令
      RUN pip install -r requirements.txt
      
      # 添加文件
      ADD . /code/
      

      2.3 編寫Docker Compose容器編排

      1. 同樣的目錄,創建docker-compose.yml文件:vim docker-compose.yml,內容(編排Python容器和Mysql容器)
      # docker compose版本
      version: "3.9"
      
      # 服務信息
      services:
      
        # mysql容器,名字自定義
        db:
          image: mysql:5.7
          expose:
            - "3306"
          volumes:
            - ./db:/var/lib/mysql
          #設置數據庫表的數據集
          command: [
            '--character-set-server=utf8',
            '--collation-server=utf8_unicode_ci'
            ]
          environment:
            - MYSQL_DATABASE=xxxx
            - MYSQL_ROOT_PASSWORD=yyyy
          restart: always
      
      
        # django服務
        web:
          # 基于本路徑的Dockerfile創建python容器
          build: .
          command: bash -c "python ./test_plat_form/manage.py migrate && python ./test_plat_form/manage.py runserver 0.0.0.0:8000"
          volumes:
            - .:/code
          ports:
            - "8000:8000"
          expose:
            - "8000"
          # 當前服務所依賴的服務,會先啟動依賴服務再啟動當前服務
          depends_on:
            - db
          # 容器ip是可變的,替代配置文件中mysql的HOST的值;名字和上面的mysql容器服務的名字一致
          links:
            - db
          volumes:
            - ./files/suites:/code/test_plat_form/suites
            - ./files/debugs:/code/test_plat_form/debugs
            - ./files/reoprts:/code/test_plat_form/reports
            - ./files/run_log:/code/test_plat_form/run_log
      

      修改django項目setting.py文件中的mysql的host,改成上面web節點中links的值

      DATABASES = {
          'default': {
              'ENGINE': 'django.db.backends.mysql',
              'NAME': 'xxxx',
              'USER': 'root',
              'PASSWORD': 'yyyy',
              'HOST': 'db',  # 這里進行修改
              'PORT': 3306
          }
      }
      

      執行命令

      所在路徑:和Dockerfile等文件同個路徑下
      構建容器:docker-compose build
      運行容器:docker-compose up 或者 后臺運行容器:docker-compose up -d

      2.4 Vue項目的搭建

      vue使用傳統的搭建方式即可:

      • 服務器配置node npm環境
      • 安裝全局pm2
      • 修改項目中api的host為服務器的ip或域名
      • 打包vue項目:npm run build
      • 編寫個app.js啟動腳本,主要目的是是讀取dist目錄下的單頁面文件(index.js),監聽8080端口
      const fs = require('fs');
      const path = require('path');
      const express = require('express');
      const app = express();
      
      app.use(express.static(path.resolve(__dirname, './dist')))
      //讀取目錄下的單頁面文件(index.js),監聽8080端口。
      app.get('*', function(req, res) {
          const html = fs.readFileSync(path.resolve(__dirname, './dist/index.html'), 'utf-8')
          res.send(html)
      })
      
      app.listen(8080);
      
      1. 把打包好的dist目錄、app.js、package.json復制到項目目錄下
      2. 進入項目目錄,安裝依賴:npm install
      3. 啟動服務:pm2 start app.js

      5、最終效果

      運行容器日志:
      容器啟動日志

      瀏覽器訪問http://ip:8080并登錄:

      接口測試平臺

      三、總結

      這個項目組成目前還比較簡單,只用了2個容器進行編排。但是以此為例,在搭建更多容器時,我們首先根據項目組成定制不同的容器,然后規劃好容器之間的是組織關系和依賴關系,相信也是能順利搭建起來的。

      posted @ 2021-04-28 09:30  狂師  閱讀(1821)  評論(0)    收藏  舉報
      主站蜘蛛池模板: 久久月本道色综合久久| 免费无码高H视频在线观看| 91偷自国产一区二区三区 | 日日麻批免费40分钟无码| 成人国产精品免费网站| 亚洲日韩国产二区无码| 国产区成人精品视频| 东京热一精品无码av| 99在线精品国自产拍中文字幕| 特黄 做受又硬又粗又大视频| 好硬好湿好爽再深一点动态图视频| 成人又黄又爽又色的视频| 中文字幕人妻无码一区二区三区| 国产视频一区二区在线看| 中文字幕人妻不卡精品| 顶级欧美熟妇xx| 国产精品免费无遮挡无码永久视频| 中文字幕有码无码AV| 亚洲成a人片在线观看久| 国产免费AV片在线看| 日韩中文字幕有码av| av天堂久久精品影音先锋| 加勒比无码av中文字幕| 精品国产熟女一区二区三区| 色国产视频| 亚洲综合黄色的在线观看| 婷婷久久香蕉五月综合加勒比| 午夜福利啪啪片| 久久热这里这里只有精品| 日韩中文字幕人妻精品 | 99热成人精品热久久66| 国产精品久久久久久福利| 国产精品中文字幕自拍| 人人澡人人妻人人爽人人蜜桃| 国产无遮挡真人免费视频| 免费无遮挡毛片中文字幕| 亚洲国产成人精品无色码| 日本三级香港三级人妇99| 亚洲人成色99999在线观看| 亚洲码亚洲码天堂码三区| 亚洲午夜无码久久久久小说|