Ubuntu 22.04 用Docker容器安装ODOO17
自己从模板机克隆一台机出来,修改ip地址远程连接上,以odoo98为例子
搭建结构:
一、安装Docker
注:现在所有操作都在Ubuntu
执行
注:所谓容器就是在Ubuntu新建一个干净的环境去部署东西
1.1、安装基础环境
整合命令:
apt install vim-gtk podman-docker -y
ps:vim-gtk是带图形界面的,vim不带纯文本模式
1.2、拉取 Ubuntu 镜像
docker pull ubuntu
1.3、创建主机和容器共享目录
# 创建
mkdir -p /Users/fish/develop
# 授权读写
chmod -R 777 /Users/fish/develop
1.4、创建容器
docker run -it -p 18880:8880 -p 18888:8888 \
-v /Users/fish/develop:/home/develop \
--name odoo ubuntu
-p
参数用于映射端口,将容器内的端口 8888 映射到主机的端口 18888,并在浏览器中访问时使用http://localhost:18888
。-v
参数用于挂载主机文件夹到容器内,实现文件共享。
此时你会发现,主机名字改变了:
输入exit
退出容器:
1.5、Docker容器启停
启动名为 "odoo" 的容器
docker start odoo
进入容器内部的 bash shell
docker exec -it odoo bash
二、使用容器搭建odoo
如果下载慢,可以参考Ubuntu更新软件源(阿里、华为、清华源)笔记
把源全部加进去就快了
2.1、进入容器
docker exec -it odoo bash
2.2、容器内安装必要环境
update
更新更新本地软件包的源 and upgrade
根据源更新包
apt update -y && apt upgrade -y
安装一些环境软件:
apt install mc tzdata vim -y
选择06,亚洲
选择70,上海
这里如果更改时区:【默认不改直接下一步】
dpkg-reconfigure tzdata
刷新环境变量:
source /etc/profile
2.3、安装依赖和配置 PostgreSQL
安装依赖:【一条也别漏】
apt -y install postgresql python3 python3-pip git wkhtmltopdf python3-lxml python3-ldap python3-pillow python3-psycopg2 python3-gevent
PS:看不懂看看就行,
如果不在这里安装 python(bold部分)需要的元件,
postgresql
python3
python3-pip
git
python3-lxml
python3-ldap
python3-pillow
python3-psycopg2
python3-gevent
后面pip也装不起来这些模块,或是很难装
网上一大堆在解释怎么从 pip 安装,都是因為不了解ubuntu, 都是错的,。
debian系列這幾個都需使用 apt安裝。
2.4、在系统环境变量添加UTF-8
编辑:
vim /etc/profile
export LANG=C.UTF-8 # 在最后一行添加,最后一行快捷键:G ,O编辑下一行
更新:
source /etc/profile
2.5、增加User ODOO及ODOO系統
mkdir /home/odoo && useradd -d /home/odoo -s /bin/bash odoo
chown -R odoo.odoo /home/odoo
创建名为odoo的用户,并为其创建一个家目录。
然后,将家目录的所有权分配给odoo用户
2.6、切换到 PostgreSQL 用户并创建用户
1、切换到 PostgreSQL:
su postgres
2、启动 PostgreSQL 服务器:
service postgresql start # 启动服务
service postgresql status # 检查状态
systemctl enable postgresql # 开机自启动
3、进入 PostgreSQL 数据库管理工具:
psql
启动后的样子
postgres@88369f01b6a4:/$ service postgresql start
* Starting PostgreSQL 14 database server
postgres@88369f01b6a4:/$ psql ## 主要看这里下面的
psql (14.11 (Ubuntu 14.11-0ubuntu0.22.04.1))
Type "help" for help.
postgres=# // 后面的命令在这里操作
4、在数据库中创建odoo用户:
create user odoo superuser;
5、使用\q
退出 PostgreSQL
Type "help" for help.
postgres=# \q ## 退出命令
postgres@88369f01b6a4:/$ ## 可以看到有变化
2.7、修改数据库的访问权限
修改 PostgreSQL 对数据库的访问权限,这里的14是版本号,检查自己的版本
vim /etc/postgresql/14/main/pg_hba.conf
在大约90行添加odoo
用户,将odoo用户改为免密登入,方便以后的操作
三、下载 ODOO
先在容器切换root用户!!!,先在容器先切换root用户!!!,先在容器先切换root用户!!!
很重要,很重要,很重要,很重要
在容器内切换root用户下载ODOO
3.1、在Docker容器中切换root用户
注意这里 直接切换肯定不行的,因为刚才在x用户
postgres@88369f01b6a4:/$ exit # 先退出postgres用户
exit
root@88369f01b6a4:/#
3.2、下载/上传ODOO源码文件
以下两种方法二选一
把源码从github
上下载到opt
目录上
cd /opt
git clone https://github.com/odoo/odoo.git -b 17.0 --depth=1
具体版本可以自行去Git下载:https://github.com/odoo/odoo
从宿主机上传ODOO16源码到Docker容器
执行过程:先从win主机 ==> Ubuntu ==> Docker容器
下载:
官方地址:https://github.com/odoo/odoo
123网盘:https://www.123pan.com/s/lfKDVv-ySQNH.html提取码:1122
上传Ubuntu:
可以使用Xftp
上传到Ubuntu opt
目录
上传容器:
先查看容器ID:
docker exec -it odoo bash # 重新进入容器,主机名就是容器ID
得到的id: 9d1b6052e67e
在Ubuntu终端执行:
docker cp Ubuntu软件位置 Docker容器ID:上传目录
docker cp /opt/odoo16.zip 9d1b6052e67e:/opt/
3.3、修改文件
cd /opt/odoo/ # 切换
vim requirements.txt # 修改
将以下文件注释掉:
1. python3-lxml
2. python3-ldap
3. python3-pillow
4. python3-psycopg2
5. python3-gevent
注释完保存退出
3.4、pip 安装ODOO必要组件
cd /opt/odoo/
pip install -r requirements.txt
3.5、将 ~/.local/bin
目录添加到当前用户的 PATH 环境变量中
# 要从root用户切换进来
su odoo
vim ~/.profile
添加:
export PATH=~/.local/bin:$PATH
3.6、配置odoo.conf文件
# 切换回容器的root
# 如果已经在odoo用户,用户exit退回到root
cd /opt/odoo
vim odoo.conf
添加:
[options]
db_host = False
db_port = False
db_user = odoo
db_password = False
addons_path = /opt/odoo/addons,/opt/odoo/odoo/addons,/home/develop
http_port=8888
3.7、启动odoo
# 从容器的root用户 切换回odoo用户
su odoo
$ cd /opt/odoo
$ ./odoo-bin -c odoo.conf
四、配置Host
4.1、Ubuntu配置
vim /etc/hosts
192.168.10.98 odoo98
4.2、windows配置host
把这个文件拖到桌面
C:\Windows\System32\drivers\etc
添加如下再拖回去:
192.168.10.98 odoo98
五、网页操作
http://odoo98:18888/
或
192.168.10.98:18888
注册:记得截图后面找不回来的。
使用刚才注册的邮箱登录
成功进入主页