odoo(搭建部署资源、教程)

本地部署odoo16

  • odoo:https://www.odoo.com/documentation/14.0/zh_CN/administration/install/install.html#mac-os

    • https://alanhou.org/odoo14-cookbook/
  • pycharm:https://www.jetbrains.com/pycharm/download/#section=mac

安装其他依赖,这些核心工作帮助我们使用简单命令安装其它Odoo依赖。
  • brew

    brew install freetype
    brew install jpeg
    brew install libpng
    brew install libtiff
    brew install xz
    brew install webp
    brew install node # 安装node
    
  • npm

    npm install -g cnpm --registry=https://registry.npm.taobao.org #如果npm太慢,使用cnpm安装包
    cnpm install -g less less-plugin-clean-css #使用node安装依赖
    sudo cnpm install -g rtlcss
    
安装PostgreSQL
  • 检查brew:

    brew doctor
    brew update
    
  • 安装

    brew install postgres
    
  • 启动 PostgreSQL 作为服务使用;

    brew services start postgresql
    
  • 停止 PostgreSQL

    brew services stop postgresql
    
  • 搭建环境(创建用户和数据库,名字与当前mac用户名字一样)

    sudo -u postgres createuser -s $USER
    createdb $USER
    
    • $(whoami) 用于获取系统用户名
    • -s选项用于授予超级用户权限。
    • Odoo使用psycopg2 Python库来与PostgreSQL数据库建立连接。通过psycopg2库访问PostgreSQL数据库。Odoo使用如下的默认值:
      • 默认psycopg2尝试使用本地连接的当前用户相同的用户名来连接数据库,这会启动无密码认证(在开发环境中这样很好)
      • 本地连接使用域套接字
      • 数据库服务监听5432端口
  • 添加环境变量(要添加两个:一个是brew的、一个是PostgreSQL的;需要按照自己的安装目录来)

    扫描二维码关注公众号,回复: 14978792 查看本文章
    cat ~/.zshrc
    export LC_ALL=en_US.UTF-8
    export LANG=en_US.UTF-8
    export PATH="/opt/homebrew/bin:/opt/homebrew/Cellar/postgresql@14/14.5_5/bin:$PATH"
    
    #使配置生效
    source ~/.zshrc
    
  • 修改密码

    psql -c "alter role $(whoami) with password 'newpassword'"
    
  • 如果想使用不同的数据库用户,则需提供该用户的密码。通过在创建用户时在命令行传递

    • -O:指定创建库的所属用户
    • –P:标记来实现,此时命令行会提示你输入密码。
Git获取源码(-b:指定版本号为14.0,不指定则是最新版本)
git clone -b 14.0 https://gitee.com/mirrors/odoo.git
  • 使用pycharm进入项目,创建虚拟环境,进入虚拟环境然后再安装依赖

    cd odoo
    pip3 install setuptools wheel
    pip3 install -r requirements.txt
    
    • wkhtmltopdf 不是通过 pip 安装的,必须在这里中手动安装 ,进入选择macos的下载,下好后双击安装

      • 用于在Odoo中将销售订单、发票等报告打印为PDF文档。
    • 有些安装包会安装失败需要自己后面手动安装或进行编译安装

      pip install 包名
      
      • 编译安装PyPI下载的包:(https://pypi.org/)
        • 进入包编译:
        python setup.py build
        
        • 安装:
        python setup.py install
        
  • 启动服务

    python3 odoo-bin --addons-path=addons -d 库名 -i base
    
  • 进入系统

    localhost:8069
    
    初始账号密码都是admin
    

docker部署odoo14

参数 解释
-d (–detach) 在后台静默运行容器
-p (–publish) 将指定的容器端口发布映射到宿主机,格式: 宿主机端口:容器端口。小写p
-P (–publish-all) 将容器中所有已被暴露的端口发布映射到宿主机(随机分配,避免端口冲突)大写P
-v (–volume) 将宿主机目录挂载到容器里,格式: 宿主机目录:容器目录
-e (–env) 设置环境变量
–name 为容器分配一个名称
–link 链接添加到另一个容器。–link 连接的容器名:重命名
安装docker
  • brew install docker
    
  • 部署PostgreSQL

    docker pull postgres:13
    docker run -d -p 15432:5432 --name postgresql_13 -v /Users/pert/Documents/odoo/postgresql_13:/var/lib/postgresql/data -e POSTGRES_USER=odoo -e POSTGRES_PASSWORD=odoo -e POSTGRES_DB=postgres postgres:13
    
    • 用户POSTGRES_USER:odoo

    • 密码POSTGRES_PASSWORD:odoo

    • 端口号填写映射到宿主机的端口:15432

    • 不要建/Users/pert/Documents/odoo/postgresql_13这个文件夹

  • 部署odoo

    docker pull --platform linux/amd64  odoo:14.0
    docker run -d -p 18069:8069 --name odoo_14 -v /Users/pert/Documents/odoo/addons:/mnt/extra-addons --link postgresql_13:db odoo:14.0
    
    • 不要建/Users/pert/Documents/odoo/addons这个文件夹

    • --platform linux/amd64:指定处理器,Mac苹果电脑

    • odoo:14.0:指定版本号

    • amd64 图像性能不佳,有时还会出现崩溃行为。这是 Apple Silicon 芯片上 Docker + qemu 的一个已知问题。因此,Docker 建议尽可能避免使用 amd64 映像。

      并非所有映像都可用于 ARM64 架构。您可以添加 --platform linux/amd64 以在仿真下运行 Intel 映像。特别是 mysql 映像不适用于 ARM64。您可以使用 mariadb 映像解决此问题。

    • 本地终端以root身份进入容器并设置root密码,这样在docker软件里就可以进入了root用户了

      docker exec -ti --user root odoo_14 /bin/bash
      passed root
      
    • 服务管理

      docker start odoo_14
      docker stop odoo_14
      docker restart odoo_14
      
  • 部署pgadmin

    docker pull dpage/pgadmin4
    docker run -d --name pgadmin4 -p 15050:80 -e [email protected] -e PGADMIN_DEFAULT_PASSWORD=sll -e PGADMIN_CONFIG_ENHANCED_COOKIE_PROTECTION=True   -e PGADMIN_CONFIG_CONSOLE_LOG_LEVEL=10 dpage/pgadmin4
    
    • 主机名称/地址 一项,需要填写 host.docker.internal 因为pgadmin运行在docker中,所以这里不能写localhost或127.0.0.1。这里除了 host.docker.internal 还能填写宿主机IP。
进一步使用Odoo
  • 指定存储文件的卷,这样容器被删除后数据依然可以保留

    docker run -v odoo-data:/var/lib/odoo -d -p 8069:8069 --name odoo --link db:db -t odoo:14.0
    
  • 指定插件目录

    docker run -v /path/to/addons:/mnt/extra-addons -p 8069:8069 --name odoo --link db:db -t odoo:14.0
    
  • 指定配置文件,替代容器的配置文件

    docker run -v /path/to/config:/etc/odoo -p 8069:8069 --name odoo --link db:db -t odoo:14.0
    
  • 运行多个odoo实例

    docker run -d -p 18070:8069 --name odoo14_01 --link postgresql_12:db odoo:14.0
    docker run -d -p 18071:8069 --name odoo14_02 --link postgresql_12:db odoo:14.0
    
  • 数据库 db_filter隔离

    docker run -d -p 18072:8069 --name odoo14_03 --link postgresql_13:db --dbfilter=odoo_db_03
    
  • 查看容器odoo中的文件

    docker exec -it -u root odoo bash
    
  • 查看odoo的源码

    cd /usr/lib/python3/dist-packages/odoo
    
  • 查看docker容器odoo最新10条日志

    docker logs -f -t --since="2018-09-04" --tail=10 odoo:12
    
  • 查看容器中服务的进程(1b0f78a03cd1是docker ps 看到的CONTAINER ID)

    docker top 1b0f78a03cd1
    
  • 挂在本地文件到docker上(将本地的/home/odoo/addons目录下的模块挂载到docker的/mnt/extra-addons目录下)

    sudo docker run -v /home/odoo/addons:/mnt/extra-addons  -p 8069:8069 --name odoo11 --link db:db -t odoo
    
  • 删除镜像83eccbc7dc0c是docker images 看到的IMAGE ID)

    docker rmi -f 83eccbc7dc0c
    
  • 删除容器odoo(先将服务停了docker stop odoo)

    docker rm odoo
    
安装包
  • 更新apt-get指令

    apt-get update
    
  • 安装yum命令

    apt-get  install  vim 
    apt-get  install  yum 
    

我总结了几种方式改配置文件

1.我上述的 docker容器内安装yum,vim等命令

2.可以cp 复制,将容器内的文件复制出来,在复制进去

3.通过容器卷技术 -v 挂载

4.别人或者你自己的配置好的镜像

odoo:14源码安装
  • 安装包

    python setup.py install
    pip uninstall PyPDF2
    
    pip install PyPDF2==1.26.0 -i https://mirrors.aliyun.com/pypi/simple/
    pip install openpyxl  -i https://mirrors.aliyun.com/pypi/simple/
    pip install wechatpy  -i https://mirrors.aliyun.com/pypi/simple/
    pip install networkx  -i https://mirrors.aliyun.com/pypi/simple/
    pip install pypeg2  -i https://mirrors.aliyun.com/pypi/simple/
    pip install requests  -i https://mirrors.aliyun.com/pypi/simple/
    pip3 install pandas  -i https://mirrors.aliyun.com/pypi/simple/
    pip install --upgrade tencentcloud-sdk-python -i http://pypi.douban.com/simple/ --trusted-host pypi.douban.com --trusted-host pypi.douban.com
    pip install cryptography -i https://mirrors.aliyun.com/pypi/simple/
    pip install chinese_calendar -i https://mirrors.aliyun.com/pypi/simple/
    pip install xlrd -i https://mirrors.aliyun.com/pypi/simple/
    pip install chardet -i https://mirrors.aliyun.com/pypi/simple/
    
    • 需要将dingtalk包加到虚拟环境中的site-packages中
  • 启动

    ./odoo-bin --limit-memory-hard 0 --addons-path=/Users/pert/Downloads/odoo-14.0/addons,/Users/pert/Downloads/odoo-14.0/odoo/addons,/Users/pert/Downloads/odoo-14.0/xzkj  -d lol --db_user pert --db_password sunset --save --config myodoo.cfg --stop-after-init
    
    • –addons-path:指定插件路径
    • -d:指定数据库
    • –db_user:数据库用户名
    • –db_password:数据库密码
    • –save --config:将这个启动命令创建一个配置文件为myodoo.cfg
    • –stop-after-init:创建好后停止项目启动
  • 使用配置文件启动

    ./odoo-bin -c myodoo.cfg
    
  • css问题

    pip install libsass 
    
  • 注释掉odoo源码 odoo/service/server.py 中

    def set_limit_memory_hard():
        if os.name == 'posix' and config['limit_memory_hard']:
            rlimit = resource.RLIMIT_RSS if platform.system() == 'Darwin' else resource.RLIMIT_AS
            soft, hard = resource.getrlimit(rlimit)
            # resource.setrlimit(rlimit, (config['limit_memory_hard'], hard))
    
    • 或者启动加

      --limit-memory-hard 0
      

猜你喜欢

转载自blog.csdn.net/s_frozen/article/details/129179656
今日推荐