使用 Docker 搭建 odoo 13 本地環境,適用 win10 與 mac os


最近又開始做 odoo 網站了,原來在 odoo 12 上做的網站在升級為 13 后,網站就被擦除了,因為沒有使用 odoo 的開發功能搭建的網站,而是直接使用 odoo 后台自帶的編輯器寫的靜態文件與樣式,只要升級就會替換掉這個編輯器的模板文件,然后網站內容就沒的了。因此,這次想在本地搭一個 odoo 環境,方便除了開發網站外還可以制作一些模塊主題。

我的電腦是聯想的,系統為 win10.

本地搭建 docker 環境步驟為:

  1. 在本地建立目錄 odoo 目錄,我的目錄是:D:\Code\docker\odoo
  2. 安裝下載 docker ,並注冊 docker id
  3. 安裝 國內鏡像加速器
  4. 安裝 docker 界面管理工具:Portainer
  5. 安裝 python3 (可選)
  6. 安裝 odoo 數據庫工具 PostgreSQL 並生成容器
  7. 安裝 odoo 並生成容器
  8. 配置 odoo 工作目錄與容器目錄,並啟動 odoo
  9. 打開 odoo 后台管理界面 ( 如果VPN是打開狀態,請關閉 )

win 10 下的安裝方法可能與 mac 有所不同。

在本地建立目錄 odoo 目錄

PS C:\Users\baiyy> d:
PS D:\> ls
PS D:\> cd Code
PS D:\Code> cd docker
PS D:\Code\docker> mkdir odoo

安裝下載 docker 

win10 安裝 docker

這個安裝過程比較簡單。

 

在安裝其它工具前,配置國內鏡像,Windows 10 or Mac OS 為例

Windows 10

對於使用 Windows 10 的用戶,在任務欄托盤 Docker 圖標內右鍵菜單選擇 Settings,打開配置窗口后在左側導航菜單選擇 Docker Engine,在右側像下邊一樣編輯 json 文件,之后點擊 Apply & Restart 保存后 Docker 就會重啟並應用配置的鏡像地址了。

  "registry-mirrors": [
    "https://hub-mirror.c.163.com",
    "https://mirror.baidubce.com"
  ]

 

macOS

對於使用 macOS 的用戶,在任務欄點擊 Docker Desktop 應用圖標 -> Perferences,在左側導航菜單選擇 Docker Engine,在右側像下邊一樣編輯 json 文件。修改完成之后,點擊 Apply & Restart 按鈕,Docker 就會重啟並應用配置的鏡像地址了。

  "registry-mirrors": [
    "https://hub-mirror.c.163.com",
    "https://mirror.baidubce.com"
  ]

 

阿里雲的鏡像加速器最好配置上,否則在拉取 Postgresql 時會報錯。

登錄阿里雲 -〉找到  [容器鏡像服務] -〉在鏡像中心,找到 [鏡像加速器] -〉復制 [加速器地址]  ,粘貼到  "registry-mirrors",鏡像加速器數組中。

 

 

安裝 docker 界面管理工具:Portainer

Portainer是一個允許我們通過網頁界面管理Docker資源的工具。

安裝方法,同樣是使用 docker 的鏡像工具。安裝步驟為:

  1. 運行命令來從Docker Hub抓取容器鏡像:docker pull portainer/portainer
  2. 為該鏡像設置 tag :docker tag portainer/portainer portainer  ( 可省略 )
  3. 在 docker 上掛載並啟動 portainer,默認端口為 9000,並將宿主機端口也設置為 9000,同時設置宿主機與容器目錄  :docker run -d -p 9000:9000 -v /var/run/docker.sock:/var/run/docker.sock portainer/portainer
  4. 本地瀏覽 http://localhost:9000/ 並設置本地登錄帳號及密碼

安裝 odoo 數據庫工具 PostgreSQL 並生成容器

odoo 的數據庫為 PostgreSQL ,為方便管理,同樣使用 docker 的鏡像工具下載和安裝。

docker pull postgres:10

 

在配置 PostgreSQL 時,數據庫的默認端口 5432,在安裝過程中需要配置數據庫的用戶名,密碼及數據庫名稱,均使用 變量 通過命令配置,無須再通過 portainer 來設置,命令為:

docker run -p 5432:5432 -d -e POSTGRES_USER=odoo -e POSTGRES_PASSWORD=odoo -e POSTGRES_DB=postgres --name db postgres:10

以上命令解釋為:

  • -p    本地環境主機端口對應容器端口
  • -e    設置環境變量  
    POSTGRES_USER  數據庫登錄用戶名
    POSTGRES_PASSWORD   數據庫登錄密碼
    POSTGRES_DB   數據庫名稱
    --name   容器名稱
  • postgres:10  數據庫版本 10

 

 

 當返回  “Status: Downloaded newer image for postgres:10”  ,並返回它的 id 后,說明安裝成功了。

 

可以在 portainer 的 Image 列表中看到安裝的基本信息:

 

 

也可以在容器 Container 中看到已經啟動的,名為 db 的數據庫:

 

 

 

安裝 odoo 並生成容器

odoo 的默認端口為 8069

odoo 的安裝方式同 PostgreSQL 一樣,使用一條命令將 odoo 的端口號,容器名稱,工作目錄,安裝版本以及連接數據庫都配置好:

docker run -p 8069:8069 --name odoo -v D:/Code/docker/odoo/addons:/mnt/extra-addons --link db:db odoo:13

以上命令解釋為:

  • -p  設置宿主機與容器端口
  • --name  設置容器名稱
  • -v   綁定數據卷 ( Vluse ),設置工作目錄與容器目錄,如果工作目錄中的 addons 下的文件有修改,對應容器 extra-addons 下的文件也會有修改,如果命令中不設置需要在 Portainer 中設置
  • --link  連接數據庫 db,同時設置宿主機數據庫名稱與容器數據庫名稱
  • :13  下載 odoo 13 版本

 

在 mac os 下,需要將工作目錄配置在 docker 中,否則會docker 會報一個不能識別工作目錄的錯,配置方法如下:

 

 配置操作方法

上面的工作目錄指定好后,再執行下面的命令,即可啟動成功:

docker run -p 8069:8069 --name odoo -v /Users/admin/Documents/code/odoo/odoo13/addons:/mnt/extra-addons --link db:db odoo:13

設置好的工作目錄也可以在 UI 界面,容器-〉Volumes-〉host 中看到。 

 

 

 

 

當返回 odoo ID 時,說明安裝成功。

同樣在  Portainer  的 Container 與 Image 中同樣可以看的到,此時,Portainer  中正在運行的鏡像有 3個:

 

 

這時點擊容器中 odoo 的端口 Published Ports 8069,會在瀏覽器中打開 odoo ,默認是無法訪問的:http://0.0.0.0:8069/

 

 

因為本機的 host 文件沒有將 0.0.0.0 指向當前服務器,需要將 0.0.0.0 替換成  localhost 就可以訪問 odoo 了。

 

 登錄之后可以看到 odoo 13 的華麗麗的后台環境:

 

 至此 docker 在本地配置 odoo 13 環境完成了,目前僅是把 docker 中的 odoo 映射到了本地的工具目錄 D:\Code\docker\odoo 中。

接下來做的是使用 docker 的 DockerFile 文件將容器中的 odoo 與工作目錄中的 odoo關聯開發。

 

自啟動

如果需要將 odoo db 一直啟動或是跟隨主機啟動而啟動,不用每次都敲啟動命令,需要這樣設置。

  • 命令行設置:docker run -p 5434:5434 -d -e POSTGRES_USER=odoo -e POSTGRES_PASSWORD=odoo -e POSTGRES_DB=postgres --name db postgres:10 --restart unless-stopped  在命令行尾部添加 --restart unless-stopped
  • portainer 界面設置

 

 

如果有不對的地方,歡迎指正。

切記,如果你的 VPN 是在運行階段,請關閉再跑 odoo 環境!!

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM