CentOS 7.3上使用Docker部署Odoo 11
本教程是公司内部培训教程,转载请注明出处!
CentOS 7.3上使用Docker部署Odoo 11,以下操作是在阿里云ECS上进行的。
一、 升级内核
高版本的内核对docker的原生支持会好一些,所以在CentOS 上部署Docker应用,升级一下内核比较好
1、导入key (可选)
2、安装elrepo的yum源
3、 查看可用 (可选)
yum --enablerepo=elrepo-kernel list | grep kernel*
4、安装内核 (安装 long term)
yum --enablerepo=elrepo-kernel install kernel-lt -y
5. 修改启动顺序
vim /etc/default/grub (将GRUB_DEFAULT=saved 改成 GRUB_DEFAULT=0)
grub2-mkconfig -o /boot/grub2/grub.cfg (保存修改)
grub2-mkconfig -o /boot/grub2/grub.cfg (保存修改)
重启之后,可以查看一下内核版本
二、 安装 Docker (使用阿里云镜像)
1. 设定 yum 源,添加 /etc/yum.repos.d/docker.repo,内容如下:
[dockerrepo]
name=Docker Repository
enabled=1
gpgcheck=1
gpgkey=https://yum.dockerproject.org/gpg
2. 安装docker-engine
yum provides '*/applydeltarpm'
yum -y install deltarpm
yum -y install docker-engine-selinux-17.03.0.ce
yum -y install docker-engine-17.03.0.ce (需要指定版本)
3. 启动并查看版本信息
systemctl enable docker
systemctl start docker
docker info
三、下载镜像文件
1. 下载 Odoo源代码
Odoo社区版源代码可以http://nightly.odoo.com网站下载。Linux下可以直接使用下面的命令:
curl -O http://nightly.odoo.com/11.0/nightly/src/odoo_11.0.20181110.tar.gz
2. 配置Docker加速器
某些镜像仓库访问起来速度很慢,国内目前有阿里云开通了镜像服务(https://dev.aliyun.com),可以自行注册。注册并登录之后,注意关注帮助信息,它会提示帐号的加速方法。
首先执行下来操作:
首先执行下来操作:
cp -n /lib/systemd/system/docker.service /etc/systemd/system/docker.service
然后修改该文件,配置加速器(具体参数由阿里云帐号给出)
然后修改该文件,配置加速器(具体参数由阿里云帐号给出)
3. 登陆到阿里云的Registry
docker login --username=xxxx registry.cn-hangzhou.aliyuncs.com
4. 通过下载指定的镜像地址,下载Docker镜像
docker pull registry.cn-hangzhou.aliyuncs.com/odoo_test/odoo11:pyh0731Y18
该镜像是我们鹏云汇公司自定义的Odoo11镜像,先存放于阿里云镜像仓库,并可以公开下载。该镜像加入了中文字体(带中文的报表不会乱码),并增加了源代码的挂载点,使得我们可以自由更换源代码的版本(参考下面第6点说明)。
5. 运行 PostgreSQL server (没有镜像会自动下载)
docker run -d -e POSTGRES_USER=odoo -e POSTGRES_PASSWORD=odoo --name db postgres:9.6.8
首先查看容器用户ID,运行下列命令:(注:下列命令的docker_image需要换成相应的image ID)
chown -R 104:104 /opt/odoo/runtime/odoo11 /opt/odoo/addons /opt/odoo/src/odoo
如不出意外,Odoo就可以运行起来了!
6. 运行 Odoo 实例
docker run -v /opt/odoo/runtime/odoo11:/var/lib/odoo -v /opt/odoo/addons:/mnt/extra-addons -v /opt/odoo/src/odoo:/usr/lib/python3/dist-packages/odoo -p 8069:8069 --name odoo11 --link db:db -t 5cd94d160443
注:/usr/lib/python3/dist-packages/odoo 就是该镜像文件中新增的用于挂载源代码的挂载点。其它挂载点是原本就有的。7. 修改被挂载的本地文件夹权限
当挂载了本地文件夹之后,容器运行时容易出现权限访问的问题。此时需要将本地文件夹的权限赋予容器用户。首先查看容器用户ID,运行下列命令:(注:下列命令的docker_image需要换成相应的image ID)
docker run -ti --rm --entrypoint="/bin/bash" docker_image -c "whoami && id"
命令运行结束之后,会输出类似 uid = 104。该结果就是容器内部用户的uid。
最后用该uid修改相应的文件夹权限:命令运行结束之后,会输出类似 uid = 104。该结果就是容器内部用户的uid。
chown -R 104:104 /opt/odoo/runtime/odoo11 /opt/odoo/addons /opt/odoo/src/odoo
如不出意外,Odoo就可以运行起来了!
本教程是公司内部培训教程,转载请注明出处!