日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 >

Docker实现odoo部署

發布時間:2023/12/20 43 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Docker实现odoo部署 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

docker部署odoo

    • 安裝docker,了解docker和docker-compose的一些常用命令
    • docker部署odoo12
    • 直接拉取鏡像
    • 遇到的一些坑

參考文章:

  • https://ruterly.com/2019/05/01/Odoo-with-Docker/
  • https://www.cnblogs.com/qdhxhz/p/9879588.html
  • 這是從未接觸過docker,ubuntu16.04 實現部署odoo12社區版的教程。主要介紹內容為:

    安裝docker,了解docker和docker-compose的一些常用命令

  • 首先,安裝docker
  • apt-get install -y docker docker-compose

    ubuntu默認用的是國內的鏡像,所以下載docker會比較慢,可以更換為阿里的鏡像源

    cd /etc/apt sudo cp sources.list sources.list.bak sudo vim sources.list

    阿里云源為http://mirrors.aliyun.com/ubuntu/
    修改所有的下載源后更新配置即可。

    sudo apt-get update
  • 設置開機自動啟動docker
  • systemctl enable docker
  • docker的一些常用命令
  • systemctl start docker # 啟動docker systemctl restart docker # 重啟dokcer docker ps # 查看所有容器

    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 images #列出當前系統存在的鏡像 docker pull image_name #拉取鏡像 (文中image_name為鏡像名稱) docker ps #列出所有鏡像信息 docker start image_name #啟動某個鏡像 docker stop image_name #停止某個鏡像 docker rm image_name #移除鏡像 (容器必須是停止狀態) docker run -d --name "xiaoxiao" -p 5672:5672 -p 15672:15672 rabbitmq:management#-d 后臺運行#-p 端口映射 (可以有多個 因為該鏡像可能存在多個端口)#rabbitmq:management (格式 REPOSITORY:TAG),如果不指定tag,默認使用最新的#--name 給該容器取個名字

    docker部署odoo12

    以上介紹了docker,現在開始正式部署odoo12。在拉取odoo鏡像之前,我們先拉取postgres,簡而言之,安裝odoo之前安裝postgres。
    compose是一個用于運行和管理多個容器化應用的工具。
    廢話不多說。先建立一個docker-compose.yml的文件,內容為:

    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: $UID:$UID #在終端執行 echo $UID 查看當前用戶的 UID,并將 $UID 替換為該值restart: always

    以下是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 #查看日志

    當容器啟動成功后,我們可以運行以下命令打開 PostgreSQL,之后創建一個新的數據庫用戶:

    然后添加用戶,并賦予創建數據庫的權限

    postgres=# CREATE user admin WITH password '123456'; #odoo/123456,用戶密碼自定義。。。。 CREATE ROLE postgres=# ALTER user admin WITH createdb; ALTER ROLE postgres=#

    退出容器

    exit

    接下來建立odoo12的容器,即在原來的docker-compose.yml文件添加內容,最后的內容為:
    方法一:使用網上的鏡像,較方便,方法同上

    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:image: odoo:12.0command: 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

    方法二:自己重新制作鏡像

    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,內容如下:

    # 默認要拉取的模塊倉庫地址 ADDONS_REPO= # 是否自動拉取關聯模塊,通過 oca_dependencies.txt 定義 FETCH_OCA_DEPENDENCIES=True # 宿主機的 UID TARGET_UID=$UID # ODOO_ 開頭的都是 Odoo 的配置變量,可以自由添加更多的 Odoo 配置變量 ODOO_ADMIN_PASSWD=admin ODOO_DB_USER=admin #除postgres以外的數據庫用戶,需確保已存在此數據庫用戶,上面步驟我們已建立了admin用戶,所以直接用admin用戶吧 ODOO_DB_PASSWORD=123456 #admin數據庫用戶的密碼 # ODOO_DBFILTER=odoo_.* #這是一個數據庫的選擇過濾規則,odoo_.*的意思是只展示odoo_開頭的數據庫,不需要的可以注釋掉啦

    以為就結束了嗎?不!我們還需要建立一個Dockerfile文件,路徑是./build/odoo12/Dockerfile
    我們為 odoo12 指定了 build 的路徑,這是因為我們在開發時,可能會在原始的鏡像上添加新的庫和依賴等,需要通過
    Dockerfile 構建適合項目的運行環境
    ,最簡單的 Dockerfile 看起來是這樣的:這是Ruter大佬的文章中的解釋

    FROM elicocorp/odoo:12.0 MAINTAINER Elico Corp <webmaster@elico-corp.com>

    最后我們可以啟動容器啦!!!!

    docker-compose up -d odoo12

    查看是否啟動成功,如下圖則表示已經成功啟動啦,輸入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:

    遇到的一些坑

  • 將自己的模塊路徑設置到容器里的conf
  • docker ps #查看odoo容器的id docker exec -it id /bin/bash #通過以上id進入odoo容器 ps -aux | grep odoo #查看odoo進程


    從上已知odoo.conf的位置,進行編輯,添加docker-compose.yml文件里的容器路徑即可,/mnt/extra-addons。

    最后重啟odoo容器就成功把自定義模塊的文件讓odoo識別到啦!

    docker-compose restart odoo12 #重啟odoo12容器
  • 建立數據庫用戶的時候忘記給創建數據庫的權限,創建數據庫的時候就會報沒有權限創建數據庫,給權限即可
  • alter user admin createdb;
  • 創建數據庫成功,但跳轉不了界面,那么就是設置了ODOO_DBFILTER,注釋掉即可
  • 啟動不了postgres容器,一直處于restarting的狀態,查看日志報錯信息為

    查看自己的docker-compose.yml文件,是不是添加了 - /etc/passwd:/etc/passwd:ro,注釋掉即可,或者是在宿主機創建一個postgres/123456用戶即可,密碼自定義,需和docker-compose.yml中的一致。
  • 經歷了兩天折騰docker,還有一些內容沒有完全理解透徹,若有不對的地方,歡迎廣大道友指出,謝謝群友的解答以及Ruter大佬的指導。后續更新在個人Harbor服務器上提交鏡像。

    總結

    以上是生活随笔為你收集整理的Docker实现odoo部署的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。