Docker实现odoo部署
docker部署odoo
- 安裝docker,了解docker和docker-compose的一些常用命令
- docker部署odoo12
- 直接拉取鏡像
- 遇到的一些坑
參考文章:
這是從未接觸過docker,ubuntu16.04 實現(xiàn)部署odoo12社區(qū)版的教程。主要介紹內(nèi)容為:
安裝docker,了解docker和docker-compose的一些常用命令
ubuntu默認(rèn)用的是國內(nèi)的鏡像,所以下載docker會比較慢,可以更換為阿里的鏡像源
cd /etc/apt sudo cp sources.list sources.list.bak sudo vim sources.list阿里云源為http://mirrors.aliyun.com/ubuntu/
修改所有的下載源后更新配置即可。
docker [run|start|stop|restart|kill|rm|pause|unpause] #容器生命周期管理
docker [ps|inspect|top|attach|events|logs|wait|export|port] #容器操作運維
docker [commit|cp|diff] #容器rootfs命令
docker [login|pull|push|search] #鏡像倉庫
docker [images|rmi|tag|build|history|save|import] #本地鏡像管理
舉些栗子:
docker部署odoo12
以上介紹了docker,現(xiàn)在開始正式部署odoo12。在拉取odoo鏡像之前,我們先拉取postgres,簡而言之,安裝odoo之前安裝postgres。
compose是一個用于運行和管理多個容器化應(yīng)用的工具。
廢話不多說。先建立一個docker-compose.yml的文件,內(nèi)容為:
以下是postgresql和postgis的配置:
version: '2.0' services:postgres:image: kartoza/postgis:9.6-2.4# build: kartoza/postgis:9.6-2.4ports:- "5432:5432"volumes:- ./volumes/postgres:/var/lib/postgresql/9.5/dataenvironment:# psql 用戶- POSTGRES_USER=postgres# psql 密碼- POSTGRES_PASSWORD=123456user: 0:0restart: always啟動容器,查看日志:
docker-compose up -d postgres #啟動容器 提示! 使用docker-compose命令要在docker-compose目錄下使用 docker-compose ps #查看容器 docker-compose logs -f #查看日志當(dāng)容器啟動成功后,我們可以運行以下命令打開 PostgreSQL,之后創(chuàng)建一個新的數(shù)據(jù)庫用戶:
然后添加用戶,并賦予創(chuàng)建數(shù)據(jù)庫的權(quán)限
退出容器
exit接下來建立odoo12的容器,即在原來的docker-compose.yml文件添加內(nèi)容,最后的內(nèi)容為:
方法一:使用網(wǎng)上的鏡像,較方便,方法同上
方法二:自己重新制作鏡像
version: '2.0' services:postgres:image: postgres:9.5ports:- "5432:5432" volumes:- ./volumes/postgres:/var/lib/postgresql/9.5/dataenvironment:# psql 用戶- POSTGRES_USER=postgres# psql 密碼- POSTGRES_PASSWORD=123456user: 0:0restart: alwaysodoo12:build: ./build/odoo12command: startports:- "8069:8069"- 127.0.0.1:8072:8072links:- postgres:dbvolumes:- ./volumes/odoo12/additional_addons:/opt/odoo/additional_addons- ./volumes/odoo12/addons:/opt/odoo/sources/odoo/addons- ./volumes/odoo12/filestore:/opt/odoo/data/filestore- ./volumes/odoo12/sessions:/opt/odoo/data/sessions- ./volumes/odoo12/ssh:/opt/odoo/ssh:ro- ./volumes/odoo12/myaddons:/mnt/extra-addons #這是放自定義模塊的文件夾env_file:- ./env/odoo12.envrestart: always從上可知,我們需要新建一個env,./env/odoo12.env,內(nèi)容如下:
# 默認(rèn)要拉取的模塊倉庫地址 ADDONS_REPO= # 是否自動拉取關(guān)聯(lián)模塊,通過 oca_dependencies.txt 定義 FETCH_OCA_DEPENDENCIES=True # 宿主機(jī)的 UID TARGET_UID=$UID # ODOO_ 開頭的都是 Odoo 的配置變量,可以自由添加更多的 Odoo 配置變量 ODOO_ADMIN_PASSWD=admin ODOO_DB_USER=admin #除postgres以外的數(shù)據(jù)庫用戶,需確保已存在此數(shù)據(jù)庫用戶,上面步驟我們已建立了admin用戶,所以直接用admin用戶吧 ODOO_DB_PASSWORD=123456 #admin數(shù)據(jù)庫用戶的密碼 # ODOO_DBFILTER=odoo_.* #這是一個數(shù)據(jù)庫的選擇過濾規(guī)則,odoo_.*的意思是只展示odoo_開頭的數(shù)據(jù)庫,不需要的可以注釋掉啦以為就結(jié)束了嗎?不!我們還需要建立一個Dockerfile文件,路徑是./build/odoo12/Dockerfile
我們?yōu)?odoo12 指定了 build 的路徑,這是因為我們在開發(fā)時,可能會在原始的鏡像上添加新的庫和依賴等,需要通過
Dockerfile 構(gòu)建適合項目的運行環(huán)境,最簡單的 Dockerfile 看起來是這樣的:這是Ruter大佬的文章中的解釋
最后我們可以啟動容器啦!!!!
docker-compose up -d odoo12查看是否啟動成功,如下圖則表示已經(jīng)成功啟動啦,輸入ip地址加8069端口就可以訪問啦~~
直接拉取鏡像
要是有鏡像或者是有自己的私有倉庫,可以直接用image,然后方式鏡像地址名稱tag,如下,這樣就不用像上面一樣新建./env/odoo12.env和Dockerfile文件了。
version: '2.0' services:postgres:image: kartoza/postgis:9.6-2.4# build: kartoza/postgis:9.6-2.4ports:- "5432:5432"volumes:- ./volumes/postgres:/var/lib/postgresql/9.5/dataenvironment:# psql 用戶- POSTGRES_USER=postgres# psql 密碼- POSTGRES_PASSWORD=123456user: 0:0restart: alwaysodoo12:image: 10.10.1.83/odoo/odoo12:v1.0.0command: startports:- "8069:8069"- 127.0.0.1:8072:8072links:遇到的一些坑
從上已知odoo.conf的位置,進(jìn)行編輯,添加docker-compose.yml文件里的容器路徑即可,/mnt/extra-addons。
最后重啟odoo容器就成功把自定義模塊的文件讓odoo識別到啦!
查看自己的docker-compose.yml文件,是不是添加了 - /etc/passwd:/etc/passwd:ro,注釋掉即可,或者是在宿主機(jī)創(chuàng)建一個postgres/123456用戶即可,密碼自定義,需和docker-compose.yml中的一致。
經(jīng)歷了兩天折騰docker,還有一些內(nèi)容沒有完全理解透徹,若有不對的地方,歡迎廣大道友指出,謝謝群友的解答以及Ruter大佬的指導(dǎo)。后續(xù)更新在個人Harbor服務(wù)器上提交鏡像。
總結(jié)
以上是生活随笔為你收集整理的Docker实现odoo部署的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 用matlab求上三角矩阵的逆,现代科学
- 下一篇: Linux命令 - rm命令