???♂? 個人主頁: @AI_magician
??主頁地址: 作者簡介:CSDN內(nèi)容合伙人,全棧領(lǐng)域優(yōu)質(zhì)創(chuàng)作者。
?????景愿:旨在于能和更多的熱愛計算機的伙伴一起成長?。?????
???♂?聲明:本人目前大學(xué)就讀于大二,研究興趣方向人工智能&硬件(雖然硬件還沒開始玩,但一直很感興趣!希望大佬帶帶)
摘要:
感謝華為云提供的測評優(yōu)惠卷,遙遙領(lǐng)先?。?
華為云的云耀云服務(wù)器L實例備受推崇,以其高效、可靠和安全的基礎(chǔ)設(shè)施服務(wù)而聞名。本文將為展示在該服務(wù)器上部署輕量化定制表單服務(wù)為例帶你一文走進該服務(wù)器的方方面面。
上一篇文章我們講述了 【華為云云耀云服務(wù)器L實例評測|云原生】自定制輕量化表單Docker快速部署云耀云服務(wù)器 一款基于pywebio 快速開發(fā)的表單,實現(xiàn)設(shè)置每個校區(qū)每個時間段只能被預(yù)約一次。(可以選擇各種后端框架或者是內(nèi)置服務(wù)器)
本次我們部署成熟應(yīng)用,基于Django. docker. docker-compose 實現(xiàn) !!
Github開源地址??: recruitment-platform
還有通知釘釘機器人!!
Github開源地址??: recruitment-platform
部署教程 ??
快速上手云耀云服務(wù)器 首先進入到服務(wù)器后,我們需要安裝docker環(huán)境。(哈哈哈ssh進來后還有打招呼)
Ubuntu20.04 安裝教程在Docker官方文檔
Document about docker install for ubuntu 這里就不贅述啦
為了測試安裝成功,我們運行docker界的Heeloworld!!
再安裝 docker-compose
apt install docker-compose
拉取github項目命令(該服務(wù)器自帶Git的哦?)
git pull git@github.com:TobeMagic/recruitment-platform.git
安裝后,我們運行docker 命令創(chuàng)建(要在Dockerfile文件目錄下運行!!不然要指定路徑哦),后面大家有需要我可以打包成鏡像上傳到Hub大家就可以直接在docker Hub拉取啦??!
要將APT的鏡像源設(shè)置為國內(nèi)的鏡像源,您可以編輯/etc/apt/sources.list
文件,并將其替換為適合您所在地區(qū)的鏡像源。以下是一個示例,將Debian的鏡像源更改為國內(nèi)的鏡像源(阿里云):
-
使用root權(quán)限或sudo權(quán)限打開
/etc/apt/sources.list
文件:sudo nano /etc/apt/sources.list ```
-
在編輯器中,將文件中的內(nèi)容替換為以下內(nèi)容:
# 默認的鏡像源注釋掉,添加阿里云的鏡像源 deb http://mirrors.aliyun.com/debian/ buster main contrib non-free deb-src http://mirrors.aliyun.com/debian/ buster main contrib non-free deb http://mirrors.aliyun.com/debian-security buster/updates main deb-src http://mirrors.aliyun.com/debian-security buster/updates main deb http://mirrors.aliyun.com/debian/ buster-updates main contrib non-free deb-src http://mirrors.aliyun.com/debian/ buster-updates main contrib non-free deb http://mirrors.aliyun.com/debian/ buster-backports main contrib non-free deb-src http://mirrors.aliyun.com/debian/ buster-backports main contrib non-free ``` 注意,上述示例是針對Debian 10(代碼名稱為Buster)的,如果您使用其他版本的Debian或不同的Linux發(fā)行版,請相應(yīng)地修改鏡像源地址。
-
保存并關(guān)閉文件。在Nano編輯器中,按下
Ctrl + X
,然后按下Y
確認保存,最后按下Enter
退出編輯器。 -
更新APT緩存以使更改生效:
sudo apt update ```
現(xiàn)在,APT的鏡像源已經(jīng)被修改為國內(nèi)的鏡像源。您可以使用apt update
和apt upgrade
等命令來管理軟件包并從國內(nèi)鏡像源進行軟件包的下載和更新。
docker-compose up --build
這次和部署輕量化表單一樣,再次迎來一點小插曲 ???♂?
django 啟動 docker-compose app_1 | django.db.utils.OperationalError: (2003, “Can’t connect to MySQL server on ‘db’ ([Errno 111] Connection refused)”)
這里顯示了數(shù)據(jù)庫無法連接,去查看了一下settings.py文件和docker-compose.yml文件,數(shù)據(jù)庫端口和名稱都是正確的,但是一直無法訪問。具體可以看看下面的內(nèi)容。
docker-compose.yml
# 設(shè)置數(shù)據(jù)庫 容器
db:
image: mysql:8
volumes:
- "./mysql/data:/var/lib/mysql" # 設(shè)置timestamp 可為 null # 設(shè)置字符集 (不是utf8會報錯 # collation 這是排序規(guī)則
# - "./mysql/conf/my.cnf:/etc/mysql/my.cnf"
command: "mysqld --user=root --explicit_defaults_for_timestamp --character-set-server=utf8mb4 --collation-server=utf8mb4_general_ci"
# - -character-set-server=utf8mb4 # 設(shè)置默認字節(jié)
# - -collation-server=utf8mb4_general_ci # 設(shè)置排序
# - -explicit_defaults_for_timestamp=true # 設(shè)置可為 null
# --default-authentication-plugin=mysql_native_password # 使用 5.7 版本的密碼驗證
ports:
- "3306:3306"
restart: always
environment:
- MYSQL_PORT=3306
- MYSQL_ROOT_PASSWORD=123456 # 一定要配置
- MYSQL_DATABASE=django_recruitment
networks:
- db_network
settings文件
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.mysql',
'NAME': 'django_recruitment',
'PASSWORD': '123456',
'PORT': '3306',
'USER': 'root',
'HOST': 'db',
# 'HOST': '127.0.0.1',
'OPTIONS': {'charset': 'utf8mb4'},
},
考慮到應(yīng)該是因為mysql要先等待3306端口服務(wù)或進程啟動并監(jiān)聽,才啟動服務(wù),往前找db容器的報錯
可以發(fā)現(xiàn),這里的錯誤和之前發(fā)的文章所遇見的是一摸一樣的?。 驹圃?| Docker】騰訊云部署Django項目 (服務(wù)器選型、git配置、docker三分鐘部署) 這個是docker-compose啟動中mysql的數(shù)據(jù)掛載過去時lower_case_table_names
設(shè)置與數(shù)據(jù)字典的設(shè)置不一致,有兩種解決方法,不需要持久化,先把該命令行注釋重新構(gòu)建,第二則是設(shè)置添加lower_case_table_names設(shè)置即可
將 my.cnf
文件掛載到 MySQL 容器中的 /etc/mysql/my.cnf
路徑。
在 my.cnf
文件中,添加以下內(nèi)容:
[mysqld]
lower_case_table_names=2
請確保將示例中的 your_password
替換為您自己設(shè)置的 MySQL root 密碼。通過這樣的配置,MySQL 容器將使用自定義的配置文件,并將 lower_case_table_names
設(shè)置為 2。不過到最后還是不行,因為數(shù)據(jù)恢復(fù)中缺少重要日志,需要強力恢復(fù),但試了幾個強度都不行,只能將原來mysql文件刪除了,并配置好對應(yīng)的,my.cnf 以便于部署新環(huán)境對應(yīng)配置數(shù)據(jù)恢復(fù), 以及 錯誤配置 bash-4.4# mysql mysql: [ERROR] unknown variable 'default-storage-engine=INNODB'
default-storage-engine變量在較新的MySQL版本中不再需要顯式設(shè)置,因為默認的存儲引擎已經(jīng)是InnoDB。+
至此終于,終于成功了??!?? 訪問鏈接
接著我們進入到服務(wù)器看業(yè)務(wù)是否流程正常
接下來我們創(chuàng)建管理員,進入到后臺管理頁面
最后總結(jié)了一下,感覺在配置上還是要有改進的,也是感謝這次華為云云耀云服務(wù)器L實例評測
- dockerfile.ymal部署 可以規(guī)則化命名container_name 方便管理
- mysql.conf 和mysql版本一定要管理良好
- 及時做好備份
- 雖然django熱插拔app,在部署需要了解每個app用途!不同方向的app應(yīng)該分出來不同project。
Github開源地址??: recruitment-platform
有問題歡迎大家提出issues! 如果喜歡請點點一個小小的star??! 點贊,關(guān)注收藏! ??文章來源:http://www.zghlxwxcb.cn/news/detail-722562.html
文章來源地址http://www.zghlxwxcb.cn/news/detail-722562.html
??到這里,如果還有什么疑問??
??歡迎私信博主問題哦,博主會盡自己能力為你解答疑惑的!??
??如果對你有幫助,你的贊是對博主最大的支持!!??
到了這里,關(guān)于【華為云云耀云服務(wù)器L實例評測】- 云原生實踐,快捷部署人才招聘平臺容器化技術(shù)方案!的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!