docker安装postgresql 以及源码安装odoo12(全过程) - Go语言中文社区

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
來源:简书
简书著作权归作者所有,任何形式的转载都请联系作者获得授权并注明出处。

版权声明:本文来源CSDN,感谢博主原创文章,遵循 CC 4.0 by-sa 版权协议,转载请附上原文出处链接和本声明。
原文链接:https://blog.csdn.net/quanwei132/article/details/84503052
站方申明:本站部分内容来自社区用户分享,若涉及侵权,请联系站方删除。
  • 发表于 2020-06-27 23:55:58
  • 阅读 ( 1794 )
  • 分类:docker

0 条评论

请先 登录 后评论

官方社群

GO教程

猜你喜欢