成人在线亚洲_国产日韩视频一区二区三区_久久久国产精品_99国内精品久久久久久久

您的位置:首頁(yè)技術(shù)文章
文章詳情頁(yè)

詳解Django+Vue+Docker搭建接口測(cè)試平臺(tái)實(shí)戰(zhàn)

瀏覽:103日期:2022-09-30 11:48:27
一. 開(kāi)頭說(shuō)兩句

大家好,我叫林宗霖,是一位測(cè)試工程師,也是全棧測(cè)開(kāi)訓(xùn)練營(yíng)中的一名學(xué)員。

在跟著訓(xùn)練營(yíng)學(xué)習(xí)完Docker容器技術(shù)系列的課程后,理所應(yīng)當(dāng)需要通過(guò)實(shí)操來(lái)進(jìn)行熟悉鞏固。正好接口自動(dòng)化測(cè)試平臺(tái)需要遷移到新的測(cè)試服務(wù)器上,就想要體驗(yàn)一番Docker的“一次構(gòu)建,處處運(yùn)行”。這篇文章簡(jiǎn)單介紹了下這次部署的過(guò)程,其中使用了Dockerfile定制鏡像和Docker-Compose多容器編排。

二. 項(xiàng)目介紹

項(xiàng)目采用的是前后端分離技術(shù)來(lái)實(shí)現(xiàn)的,前端是Vue+ElementUI,后端是Django+DRF,數(shù)據(jù)庫(kù)是MySQL,當(dāng)前部署版本沒(méi)有其他中間件。

2.1 安裝docker和docker-compose

下述所有操作,皆在Centos 7環(huán)境下進(jìn)行

1.清理或卸載舊版本:

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

2.更新yum庫(kù)

sudo yum install -y yum-utilssudo 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.啟動(dòng)Docker服務(wù)

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的權(quán)限

sudo chmod +x /usr/local/bin/docker-compose2.2 Dockerfile定制python容器

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

把django項(xiàng)目依賴包文件requirements.txt也放在該目錄下

創(chuàng)建Dockerfile文件:vim Dockerfile

Dockerfile內(nèi)容:(注意:注釋別跟在語(yǔ)句后面,有些語(yǔ)句執(zhí)行時(shí)會(huì)因此出現(xiàn)問(wèn)題):

# 基礎(chǔ)鏡像FROM python:3.6.8# 把輸出及時(shí)重定向到文件,替代python -uENV PYTHONUNBUFFERED 1# 創(chuàng)建目錄并切換工作目錄RUN mkdir /code && mkdir /code/dbWORKDIR /code# 添加文件ADD ./requirements.txt /code/# 執(zhí)行命令RUN pip install -r requirements.txt# 添加文件ADD . /code/2.3 編寫Docker Compose容器編

排同樣的目錄,創(chuàng)建docker-compose.yml文件:vim docker-compose.yml,內(nèi)容(編排Python容器和Mysql容器)

# docker compose版本version: '3.9'# 服務(wù)信息services: # mysql容器,名字自定義 db: image: mysql:5.7 expose: - '3306' volumes: - ./db:/var/lib/mysql #設(shè)置數(shù)據(jù)庫(kù)表的數(shù)據(jù)集 command: [ ’--character-set-server=utf8’, ’--collation-server=utf8_unicode_ci’ ] environment: - MYSQL_DATABASE=xxxx - MYSQL_ROOT_PASSWORD=yyyy restart: always # django服務(wù) web: # 基于本路徑的Dockerfile創(chuàng)建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' # 當(dāng)前服務(wù)所依賴的服務(wù),會(huì)先啟動(dòng)依賴服務(wù)再啟動(dòng)當(dāng)前服務(wù) depends_on: - db # 容器ip是可變的,替代配置文件中mysql的HOST的值;名字和上面的mysql容器服務(wù)的名字一致 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項(xiàng)目setting.py文件中的mysql的host,改成上面web節(jié)點(diǎn)中l(wèi)inks的值

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

執(zhí)行命令

所在路徑:和Dockerfile等文件同個(gè)路徑下構(gòu)建容器:docker-compose build運(yùn)行容器:docker-compose up 或者 后臺(tái)運(yùn)行容器:docker-compose up -d

2.4 Vue項(xiàng)目的搭建

vue使用傳統(tǒng)的搭建方式即可:

服務(wù)器配置node npm環(huán)境

安裝全局pm2

修改項(xiàng)目中api的host為服務(wù)器的ip或域名

打包vue項(xiàng)目:npm run build編寫個(gè)app.js啟動(dòng)腳本,主要目的是是讀取dist目錄下的單頁(yè)面文件(index.js),監(jiān)聽(tīng)8080端口

const fs = require(’fs’);const path = require(’path’);const express = require(’express’);const app = express();app.use(express.static(path.resolve(__dirname, ’./dist’)))//讀取目錄下的單頁(yè)面文件(index.js),監(jiān)聽(tīng)8080端口。app.get(’*’, function(req, res) { const html = fs.readFileSync(path.resolve(__dirname, ’./dist/index.html’), ’utf-8’) res.send(html)})app.listen(8080);

把打包好的dist目錄、app.js、package.json復(fù)制到項(xiàng)目目錄下

進(jìn)入項(xiàng)目目錄,安裝依賴:npm install

啟動(dòng)服務(wù):pm2 start app.js5、最終效果

運(yùn)行容器日志:

詳解Django+Vue+Docker搭建接口測(cè)試平臺(tái)實(shí)戰(zhàn)

瀏覽器訪問(wèn)http://ip:8080并登錄:

詳解Django+Vue+Docker搭建接口測(cè)試平臺(tái)實(shí)戰(zhàn)

三、總結(jié)

這個(gè)項(xiàng)目組成目前還比較簡(jiǎn)單,只用了2個(gè)容器進(jìn)行編排。但是以此為例,在搭建更多容器時(shí),我們首先根據(jù)項(xiàng)目組成定制不同的容器,然后規(guī)劃好容器之間的是組織關(guān)系和依賴關(guān)系,相信也是能順利搭建起來(lái)的。

到此這篇關(guān)于詳解Django+Vue+Docker搭建接口測(cè)試平臺(tái)實(shí)戰(zhàn)的文章就介紹到這了,更多相關(guān)Django+Vue+Docker搭建接口測(cè)試 內(nèi)容請(qǐng)搜索好吧啦網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持好吧啦網(wǎng)!

標(biāo)簽: Vue
相關(guān)文章:
成人在线亚洲_国产日韩视频一区二区三区_久久久国产精品_99国内精品久久久久久久
久久av资源站| 欧美日韩91| 色综合久久综合网欧美综合网| 国产亚洲一区二区在线观看| 久久精品导航| 成人永久免费视频| 亚洲第一激情av| 久久精品一区二区| 在线观看免费成人| 好吊一区二区三区| 国产乱子伦一区二区三区国色天香 | 国产精品初高中害羞小美女文| 免费亚洲电影| 合欧美一区二区三区| 黄一区二区三区| 亚洲品质自拍视频网站| 日韩一区二区在线观看视频 | 一区二区三区四区中文字幕| 日韩欧美123| 91福利社在线观看| 亚洲一区网站| 91丝袜美腿高跟国产极品老师| 人人精品人人爱| 亚洲视频狠狠干| 国产三级精品三级| 欧美本精品男人aⅴ天堂| 欧美日韩三级在线| 色欧美日韩亚洲| 伊人蜜桃色噜噜激情综合| 国产91精品在线观看| 亚洲国产美国国产综合一区二区| 久久精品一级爱片| 日韩三级精品电影久久久| 欧洲人成人精品| 久久精品女人| 亚洲制服少妇| 99精品国产99久久久久久福利| 成人国产精品免费网站| 久久99久久精品| 蜜桃在线一区二区三区| 午夜精品久久久久久久蜜桃app| 国产三级精品三级在线专区| 欧美日韩在线一区二区| 久久蜜桃资源一区二区老牛| 激情婷婷欧美| 日韩视频在线观看国产| 一区二区视频在线观看| 欧美日韩国产高清| 美女视频免费一区| 免费黄网站欧美| 日本女优在线视频一区二区| 日本色综合中文字幕| 香港成人在线视频| 国产91丝袜在线观看| 国产成人亚洲精品青草天美| 九色porny丨国产精品| 美女被吸乳得到大胸91| 裸体健美xxxx欧美裸体表演| 蜜臀av一级做a爰片久久| 裸体健美xxxx欧美裸体表演| 精品一区二区三区免费| 久久99精品国产麻豆不卡| 日本网站在线观看一区二区三区 | 亚洲乱亚洲高清| 久久精品二区三区| 91精品免费在线| 日韩欧美色电影| 久久午夜羞羞影院免费观看| 久久理论电影网| 亚洲国产成人自拍| 亚洲激情图片小说视频| 日韩专区欧美专区| 国产一区亚洲一区| 99久久99久久精品免费观看| 欧美日韩精品一本二本三本| 日韩亚洲在线| 欧美日韩一区二区三区在线| 欧美成人福利视频| 国产精品亲子伦对白| 亚洲国产综合在线| 国产一区欧美一区| 欧美96在线丨欧| 久久精品观看| 欧美精品一区二区在线观看| 亚洲老妇xxxxxx| 国产一区二区三区免费播放| 91视频观看视频| av不卡在线看| 欧美日韩高清一区二区不卡 | 国产精品99久久久久久有的能看| 99re这里只有精品首页| 亚洲精品1234| 欧美三级三级三级| 国产精品―色哟哟| 九九九精品视频| 国产一区久久| 91精品欧美福利在线观看| 亚洲欧洲性图库| 免费在线视频一区| 国产精品99一区二区| 日本丰满少妇一区二区三区| 欧美精品一区二| 午夜电影网一区| 91农村精品一区二区在线| 欧美综合国产| 亚洲国产激情av| 国产一区二区精品久久| 亚洲性色视频| 91精品福利在线一区二区三区| 中文字幕日韩一区二区| 国产在线精品一区二区不卡了| 一级成人国产| 久久久久久久综合日本| 美女www一区二区| 亚洲作爱视频| 26uuu精品一区二区三区四区在线| 亚洲图片欧美视频| 视频一区视频二区中文字幕| 色悠悠亚洲一区二区| 欧美三级在线| 国产精品一区二区在线观看网站| 不卡一区中文字幕| 欧美精品系列| 日韩美一区二区三区| 裸体歌舞表演一区二区| 国产日韩欧美一区二区三区在线观看 | 秋霞电影网一区二区| 国产精品成人免费| 欧美zozozo| 欧美亚洲动漫精品| 国产欧美二区| 欧美freesex交免费视频| 看电视剧不卡顿的网站| 亚洲精品乱码久久久久久黑人 | 亚洲五月六月丁香激情| 欧美fxxxxxx另类| 精品国一区二区三区| 在线视频一区二区三区| 影音先锋久久精品| 不卡的电视剧免费网站有什么| 男女性色大片免费观看一区二区 | 91污片在线观看| 91精品久久久久久久久99蜜臂| 日韩国产高清影视| 欧美亚洲禁片免费| 麻豆精品国产91久久久久久| 在线亚洲免费视频| 极品销魂美女一区二区三区| 欧美色老头old∨ideo| 国模套图日韩精品一区二区| 欧美一区二区三区四区视频| 成人免费高清在线| 久久久久国产精品免费免费搜索| 成人黄动漫网站免费app| 久久亚洲一区二区三区四区| 国产一区二区无遮挡| 亚洲精品欧美在线| 亚洲欧美日韩精品在线| 日本在线不卡一区| 欧美日韩国产色站一区二区三区| 久久99精品久久只有精品| 日韩一区二区高清| 欧美精品成人| 亚洲精品乱码久久久久久久久| 久久久999| 国产精品自产自拍| 中文字幕av一区 二区| 日韩精品中文字幕在线一区| 欧美在线一二三四区| 在线观看成人小视频| 久热这里只精品99re8久| 亚洲一区二区三区涩| 91久久精品国产91久久性色tv| 欧美日韩国产免费观看 | 色综合久久久久综合99| 亚洲一卡久久| 一区二区毛片| 亚洲综合999| 亚洲欧美日本日韩| 国产精品自拍一区| 亚洲日本成人在线观看| 欧美在线一区二区三区| 91色视频在线| 天堂一区二区在线免费观看| 日韩精品在线网站| 国产美女一区| 国产剧情一区在线| 亚洲靠逼com| 91精品国产手机| 亚洲无线一线二线三线区别av| 欧美a级一区二区| 国产亚洲视频系列| 久久精品综合| 欧美午夜免费影院| 日本sm残虐另类| 国产女同互慰高潮91漫画| 欧美自拍偷拍一区| 国内精品久久久久久久97牛牛| 美女一区二区视频| 国产精品护士白丝一区av|