docker安裝postgresql 以及源碼安裝odoo12(全過程)

-------------------通用命令
實時查看docker容器日誌
docker container {stop|start} nexus
docker container {stop|start} redis
docker ps -a:列出所有的容器
docker rm 容器名:移除容器
$ sudo docker logs -f -t --tail 100 redis 【redis容器名稱】

firewall-cmd --zone=public --add-port=8069/tcp --permanent 或者可以直接添加端口

firewall-cmd --reload 重載防火牆

注意 :如果你複製命令是否,命令報錯,可能是從網頁複製過去 格式有問題,我遇到一個坑“空格、- 都需要重新替換”

複製注意前後空格、複製注意前後空格、複製注意前後空格

複製注意前後空格、複製注意前後空格、複製注意前後空格

複製注意前後空格、複製注意前後空格、複製注意前後空格

說9遍
一、----------------------docker 安裝postgresql11
1,下載docker pull postgresql
2,所有postgresql配置文件和數據數據文件位於:掛在數據
/var/lib/postgresql/data 
我們要重新指定容器外的路徑
mkdir -p /home/postgresql11/data
3,運行postgres
docker run --name postgres -e POSTGRES_PASSWORD=postgresql@wings@2018 -v /home/postgresql10/data:/var/lib/postgresql/data  -p 5432:5432 -d postgres
4 連接數據庫
之前的準備工作都已完成,下一步就是從外部訪問數據庫了。 
這一步就很常規了:
psql -U postgres -h 192.168.100.172 -p 54321
注意: 
postgres鏡像默認的用戶名爲postgres, 
登陸口令爲創建容器是指定的值。
5,登陸docker容器
docker exec -it postgres /bin/bash

6,創建數據庫和用戶
$ su - postgres
$ createuser -P -d -U postgres odoo;  密碼【輸入密碼】
$ psql
$ postgres=# create database odoo with owner=odoo encoding='UTF8';
$ postgres=# \q
7 退出容器 
 exit;

二、安裝版本:nodejs 10.13.0

安裝依賴

sudo yum install gcc gcc-c++

2,從源碼下載Nodejs

cd /usr/local/src
wget https://npm.taobao.org/mirrors/node/v10.13.0/node-v10.13.0.tar.gz

3解壓 nodejs 安裝包

tar xvf node-v10.13.0.tar.gz

4,進入解壓的 node 文件夾,開始編譯

cd node-v10.13.0/
./configure
make

5 安裝

sudo make install

6,驗證是否正確安裝

node -v

7 odoo 官網要求安裝 rtlcss

npm install -g rtlcss

注:是否要安裝其他的未知。

三 、安裝odoo

Odoo 12已正式發佈,在 GithubNigthly 均可下載源碼,此前在博客上發佈了Ubuntu 快速安裝配置Odoo 12,本文探討 CentOS 上安裝 Odoo 12的相關內容。

sudo yum -y update
sudo yum -y install epel-release
# 添加Software Collections (SCL) 安裝 Python
sudo yum -y install centos-release-scl
sudo yum -y install rh-python36
# 或直接執行(可能需要提前執行yum -y groupinstall "Development tools")
sudo yum -y install python36 python36-devel
# 又或者
curl -O https://www.python.org/ftp/python/3.6.7/Python-3.6.7rc2.tgz
tar xf Python-3.6.7rc2.tgz
cd Python-3.6.7rc2
./configure
make
sudo make install
# 安裝其它所需依賴
sudo yum -y install git gcc wget nodejs-less libxslt-devel bzip2-devel openldap-devel libjpeg-devel freetype-devel

添加新用戶(可選)

sudo useradd -m -U -r -d /opt/odoo -s /bin/bash odoo

或者 創建好用戶 添加 

chmod -R 777 /opt/odoo/

 

注意:Odoo 12要求安裝 PostgreSQL 10否則會出現報錯:

Database creation error: relation "ir_model" does not exist LINE 1: SELECT * FROM ir_model WHERE state='manual' 

安裝Wkhtmltopdf

wget https://downloads.wkhtmltopdf.org/0.12/0.12.5/wkhtmltox-0.12.5-1.centos7.x86_64.rpm
sudo yum localinstall wkhtmltox-0.12.5-1.centos7.x86_64.rpm
# 中文字體
yum install -y wqy*

安裝Sass

yum install -y sassc

安裝 Odoo

用戶準備

不設置執行後述操作時會報出xxx is not in the sudoers file. This incident will be reported.

su - root
visudo
# 在root    ALL=(ALL)       ALL下添加相應用戶
odoo    ALL=(ALL)       ALL

安裝及配置

需要安裝python3 隔離環境

mkdir /opt/virtualenvs

chmod -R 777 /opt/virtualenvs

查找 find / -name virtualenvwrapper.sh

我的路徑是:/usr/local/bin/virtualenvwrapper.sh

# 切換用戶
sudo su - odoo
cd /opt/odoo
wget http://nightly.odoo.com/12.0/nightly/src/odoo_12.0.latest.tar.gz
# 或git clone https://www.github.com/odoo/odoo --depth 1 --branch 12.0 /opt/odoo/odoo12

unzip odoo-12.0.zip 或者 tar -zxvf odoo_12.0.latest.tar.gz
mv odoo-12.0 odoo12

# 當前使用 nightly 版本有一個坑,需要自行添加 odoo-bin 文件【在github下載不存在此坑】
sudo vi odoo12/odoo-bin
#!/usr/bin/env python3

# set server timezone in UTC before time module imported
__import__('os').environ['TZ'] = 'UTC'
import odoo

if __name__ == "__main__":
    odoo.cli.main()
#添加執行權限【root執行】
chmod +x /opt/odoo/odoo12/odoo-bin
#環境搭建
python36 -m venv odoo12-venv 
source odoo12-venv/bin/activate【激活虛擬環境】【deactivate   # 退出當前的虛擬環境】

# 或者 Virtualenvwrapper(使用這種方法/etc/systemd/system/odoo12.service也需調整)
curl "https://bootstrap.pypa.io/get-pip.py" -o "get-pip.py"
python36 get-pip.py 
pip3 install virtualenvwrapper
# vi ~/.bashrc
export WORKON_HOME=/opt/virtualenvs
export VIRTUALENVWRAPPER_PYTHON=/usr/bin/python36
source /usr/local/bin/virtualenvwrapper.sh 
#重載.bashrc
source  ~/.bashrc

# 安裝依賴包
cd /opt/odoo

pip3 install -i https://pypi.douban.com/simple -r odoo12/requirements.txt
deactivate 【deactivate   # 退出當前的虛擬環境】

# 創建自定義插件目錄
cd /opt/odoo
mkdir odoo12/local-addons

# 創建配置文件(<a href="https://www.jianshu.com/p/abf366d7319e" target="_blank" rel="noopener" data-mce-href="https://www.jianshu.com/p/abf366d7319e">配置項詳解參考</a>)
# odoo11/odoo-bin --help也可進行查看
sudo vi /etc/odoo12.conf

[options]
; This is the password that allows database operations:
# 此處密碼請自行修改
admin_passwd = superadmin_passwd
db_host = False
db_port = False
db_user = odoo
db_password = False
; addons_path = /opt/odoo/odoo12/odoo/addons
; If you are using custom modules
addons_path = /opt/odoo/odoo12/addons,/opt/odoo/odoo12/local-addons

odoo12.conf 文件內容參數 請參考官網

 

添加服務

sudo vi /etc/systemd/system/odoo12.service

[Service]
Type=simple
SyslogIdentifier=odoo12
PermissionsStartOnly=true
User=odoo
Group=odoo
WorkingDirectory=/opt/odoo
Environment=/opt/odoo/odoo12-venv/bin/activate
ExecStart=/opt/odoo/odoo12-venv/bin/python3 /opt/odoo/odoo12/odoo-bin -c /etc/odoo12.conf
# ExecStart=/usr/bin/scl enable rh-python36 -- /opt/odoo/odoo12-venv/bin/python3 /opt/odoo/odoo12/odoo-bin -c /etc/odoo12.conf
StandardOutput=journal+console

[Install]
WantedBy=multi-user.target

# 啓動服務
sudo systemctl daemon-reload
sudo systemctl start odoo12

firewall-cmd --zone=public --add-port=8069/tcp --permanent 或者可以直接添加端口

firewall-cmd --reload  重載防火牆

PS: (1)如果出現ERROR odoo odoo.modules.loading: Database odoo not initialized, you can force it with `-i base` 

解決方案:我在配置文件中增加了 dbfilter ,成功。不要默認

dbfilter = odoo12

第二個解決方案:在GitHub上有人說增加 -i base參數【沒成功】

/opt/odoo/odoo12-venv/bin/python3 /opt/odoo/odoo12/odoo-bin -i base -c /etc/odoo12.conf【啓動命令,需要在虛擬環境執行,寫在odoo12.service】

 

PS:(2)運行多環境odoo

cp /etc/odoo12.conf /etc/odoo8079.conf

[options]
; This is the password that allows database operations:
# 此處密碼請自行修改
admin_passwd = dfasdfasfsadf
db_host = 127.0.0.1
db_port = 5432
db_user = odoo
db_password = fdasfassafads
dbfilter = odoo79
; addons_path = /opt/odoo/odoo12/odoo/addons
; If you are using custom modules
addons_path = /opt/odoo/odoo12/addons,/opt/odoo/odoo12/local-addons
;指定用來存儲日誌的文件
logfile = /opt/odoo/odoo12/data/openerp-server8079.log
data_dir = /opt/odoo/data


到虛擬隔離環境執行如下啓動命令[root執行報錯,需要用odoo用戶]
su - odoo
cd /opt/odoo
source odoo12-venv/bin/activate

/opt/odoo/odoo12-venv/bin/python3 /opt/odoo/odoo12/odoo-bin  -c /etc/odoo8079.conf
後臺啓動
nohup /opt/odoo/odoo12-venv/bin/python3 /opt/odoo/odoo12/odoo-bin  --config=/etc/odoo8079.conf &

nohup /opt/odoo/odoo12-venv/bin/python3 /opt/odoo/odoo12/odoo-bin -c /etc/odoo8079.conf &

啓動命令 -c參數 與 --config 功能一樣。

PS:(3) 不要亂加參數

xmlrpc = True
xmlrpc_interface =
千萬不要增加,好多參數 都是odoo10之前的參數,odoo12 不可用,官方文檔沒有扎到,如果增加不可用參數 後臺無任何log

瀏覽器報錯

錯誤:provisional headers are shown 

docker 安裝odoo 傳送門,這個方便簡單

參考如下內容:
作者:矢寸心
鏈接:https://www.jianshu.com/p/ac5f2f93976d
來源:簡書
簡書著作權歸作者所有,任何形式的轉載都請聯繫作者獲得授權並註明出處。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章