1.Odoo安裝(Docker版)

1.1前言

????????這里安裝直接用Docker安裝,因為它比較方便和快捷。Odoo的鏡像路徑在這里

1.2簡介

????????Odoo(以前稱為OpenERP)是一套開源商業應用程序。

1.3Docker拉取鏡像的命令

docker pull odoo

1.4詳細說明

1.4.1支持的標簽及對應的Dockerfile鏈接

1.4.2參考

  • 獲得幫助

the Docker Community Forumsthe Docker Community Slack或者Stack Overflow

  • 提問題

https://github.com/odoo/docker/issues

  • 維護者

Odoo

amd64

  • 發布鏡像細節

repo-info repo's repos/odoo/ directory (history)

  • 鏡像更新

official-images PRs with label library/odoo
official-images repo's library/odoo file (history)

  • 描述的源地址

docs repo's odoo/ directory (history)

  • 支持的Docker版本

the latest release (down to 1.6 on a best-effort basis)

1.4.3Odoo是什么

????????Odoo,從前被稱為OpenERP,它是一套用Python編寫的開源商業應用程序并且是根據AGPL許可證發布。這套應用程序涵蓋了從網站/電子商務到制造,庫存和會計的所有業務需求,所有這些都是無縫集成的。這是軟件第一次成功實現這樣的功能覆蓋。Odoo是世界上安裝最多的商業軟件。Odoo被全球2.000.000用戶使用,范圍從非常小的公司(1個用戶)到非常大的公司(30萬用戶)。

1.4.4如何使用鏡像

????????該鏡像需要一個正在運行的PostgreSQL服務
啟動一個PostgreSQL服務

docker run -d -e POSTGRES_USER=odoo -e POSTGRES_PASSWORD=odoo --name db postgres:9.4

運行docker ps看下PostgreSQL服務是否已經運行了

root@iZuf635go40n72xorw3fs2Z:~/docker# docker ps
CONTAINER ID????????IMAGE????????COMMAND????????CREATED????????STATUS????????PORTS????????NAMES
a671aa10826f????????postgres:9.4????????"docker-entrypoint.s…"????????13 seconds ago????????Up 12 seconds????????5432/tcp????????db

可以看到PostgreSQL服務已經起來了。


啟動一個Odoo的實例

docker run -p 8069:8069 --name odoo --link db:db -t odoo

這里需要注意一下,運行的PostgreSQL服務容器的別名必須是db,這樣Odoo實例才能通過別名連接到PostgreSQL服務容器。

運行docker ps查看Odoo是否啟動成功:

docker ps.png

以上說明運行成功,訪問一下網頁看看:
odoo.png

可以看到能夠正常訪問網站,說明已經啟動成功啦。


停止和重啟Odoo實例

docker stop odoo
docker start -a odoo

停止和重啟PostgreSQL服務
????????當PostgreSQL服務重啟時,那么連接該服務的Odoo實例也需要重啟,因為PostgreSQL服務地址改變了,所以連接也被打斷了。
????????重新啟動PostgreSQL服務器不會影響創建的數據庫。


運行一個自定義配置的Odoo服務
????????在啟動服務時使用綁定卷可以覆蓋默認的配置文件(文件位置:/etc/odoo/openerp-server.conf)。假如你在/path/to/config/openerp-server.conf有一個自定義的配置文件,然后運行下面命令進行綁定卷操作進行重寫:

docker run -v /path/to/config:/etc/odoo -p 8069:8069 --name odoo --link db:db -t odoo

????????請使用配置模板文件來編寫你自己的配置文件,因為維護者已經在Docker容器中設置了一些運行Odoo的參數。
????????你也可以直接在命令行中指定Odoo的參數。但是這些參數必須在命令行的關鍵字--后面出現,就像下面一樣:

docker run -p 8069:8069 --name odoo --link db:db -t odoo -- --db-filter=odoo_db_.*

安裝自定義插件
????????Odoo插件在Docker容器中的目錄位置為/mnt/extra-addons,你可以通過綁定該目錄地址從而達到安裝自定義插件的效果,命令如下:

docker run -v /path/to/addons:/mnt/extra-addons -p 8069:8069 --name odoo --link db:db -t odoo

運行多個Odoo實例

docker run -p 8070:8069 --name odoo2 --link db:db -t odoo
docker run -p 8071:8069 --name odoo3 --link db:db -t odoo

????????請注意,當主機和容器端口不一致(如8070和8069),為了簡便的使用郵件和報告等功能,其中一個需要設置,設置位置Settings->Parameters->System Parameters,web.base.url參數設為該容器端口(例如127.0.0.1:8069)。


環境變量
????????為了更加輕易地連接到PostgreSQL服務,你可以調整以下的環境變量。

  • HOST:PostgreSQL服務的地址。如果你使用PostgreSQL容器,那就設置為容器的名字。默認為db
  • PORT:PostgreSQL服務監聽的端口。默認為5432
  • USER:Odoo服務連接到PostgreSQL服務的用戶名。如果你使用PostgreSQL容器,那就設置與POSTGRES_USER一樣的值。默認為odoo
  • PASSWORD:Odoo服務連接到PostgreSQL服務對應上面用戶的密碼。如果你使用PostgreSQL容器,那就設置與POSTGRES_PASSWORD一樣的值。默認為odoo

使用Docker compose一鍵部署Odoo
????????配置一個最簡單的docker compose運行文件docker-compose.yml

version: '2'
services:
????????web:
????????????????image: odoo:10.0
????????????????depends_on:
????????????????????????- db
????????????????ports:
????????????????????????- "8069:8069"
????????db:
????????????????image: postgres:9.4
????????????????environment:
????????????????????????- POSTGRES_PASSWORD=odoo
????????????????????????- POSTGRES_USER=odoo

????????如果默認的PostgreSQL服務認證不適合你,你可以對環境參數進行調整:

version: '2'
services:
????????web:
????????????????image: odoo:10.0
????????????????depends_on:
????????????????????????- mydb
????????????????ports:
????????????????????????- "8069:8069"
????????????????environment:
????????????????????????- HOST=mydb
????????????????????????- USER=odoo
????????????????????????- PASSWORD=myodoo
????????mydb:
????????????????image: postgres:9.4
????????????????environment:
????????????????????????- POSTGRES_PASSWORD=odoo
????????????????????????- POSTGRES_USER=myodoo

????????這里還有一個最新的例子,例子中包含了如何綁定自定義插件,如何使用自定義配置文件和如何對odoo和PostgreSQL數據文件進行綁定卷:

version: '2'
services:
????????web:
????????????????image: odoo:10.0
????????????????depends_on:
????????????????????????- db
????????????????ports:
????????????????????????- "8069:8069"
????????????????volumes:
????????????????????????- odoo-web-data:/var/lib/odoo
????????????????????????- ./config:/etc/odoo
????????????????????????- ./addons:/mnt/extra-addons
????????db:
????????????????image: postgres:9.4
????????????????environment:
????????????????????????- POSTGRES_PASSWORD=odoo
????????????????????????- POSTGRES_USER=odoo
????????????????????????- PGDATA=/var/lib/postgresql/data/pgdata
????????????????volumes:
????????????????????????- odoo-db-data:/var/lib/postgresql/data/pgdata
volumes:
????????odoo-web-data:
????????odoo-db-data:

????????想要啟動你的odoo實例,你需要先進入到創建的docker-compose.yml文件所在的目錄,然后輸入:

docker-compose up -d

如何升級或者說更新鏡像
????????Odoo鏡像會定期更新,以便使用最新的版本。請注意,從一個舊的版本升級到一個新的版本,是一個非常復雜的過程,這個過程需要一個精心設計的遷移腳本(詳見Odoo Enterprise Upgrade page或者community project,這兩個都是致力于寫這些腳本的網站)。
????????假設你在一個名為old-odoo的Odoo實例上創建了數據庫,現在你新下載了一個Odoo鏡像,你想要讓新的鏡像有權力去訪問old-odoo創建的數據庫。
????????默認情況,Odoo 8.0使用一個文件夾存儲附件(位置:/var/lib/odoo/filestore/)。我們應當在運行新的Odoo實例時綁定舊的Odoo實例的卷。

docker run --volumes-from old-odoo -p 8070:8069 --name new-odoo --link db:db -t odoo
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容