首页 技术 正文
技术 2022年11月9日
0 收藏 335 点赞 4,304 浏览 7094 个字

2019日 星期一

安装docker

windows系统,参考 docker官方文档

Mac系统,参考 docker官方文档

构建自定义ODOO镜像

标准ODOO镜像可能不包含特别的python模块,或者Linux工具,此时需要 自定义 Odoo镜像

dockerfile

编写dockerfile,例如加入需要的python库

  10.1 git:(master) cat Dockerfile

FROM odoo:10.0

MAINTAINER Odoo S.A. <info@odoo.com>

USER root

COPY ./pip.conf
/root/.pip/pip.conf

RUN set -x; \

pip install pypinyin pypdf

# Set default user when running the
container

USER odoo

ENTRYPOINT [“/entrypoint.sh”]

CMD [“odoo”]

说明: 上面的自定义镜像,是在Odoo10 基础上,安装了 pypinyin 模块,为了使用本地pip镜像,例如 pip.conf 内容

  10.1 git:(master) cat pip.conf

[global]

index-url=http://mirrors.aliyun.com/pypi/simple/

[install]

trusted-host=mirrors.aliyun.com

构建镜像

基于dockerfile构建镜像

  10.1 git:(master) docker build . -t odoo:10.1

Sending build context to Docker daemon  3.072kB

Step 1/8 : FROM
odoo:10.0

—> 50bfb7575fe2

Step 2/8 :
MAINTAINER Odoo S.A. <info@odoo.com>

—> Using cache

—> 353b1366ee28

Step 3/8 : USER
root

—> Using cache

—> 27ec1ca1072c

Step 4/8 : COPY
./pip.conf /root/.pip/pip.conf

—> Using cache

—> ebdd6547d4e1

Step 5/8 : RUN
set -x;     pip install pypinyin pypdf

—> Using cache

—> 72edd5d9d792

Step 6/8 : USER odoo

—> Using cache

—> 0cc904972ec2

Step 7/8 :
ENTRYPOINT [“/entrypoint.sh”]

—> Using cache

—> e4738346b7a3

Step 8/8 : CMD
[“odoo”]

—> Using cache

—> 793edee6ab30

Successfully built 793edee6ab30

Successfully tagged odoo:10.1

这样,就会建立odoo:10.1 镜像

比如 docker images查看镜像

  10.1 git:(master) docker images

REPOSITORY                      TAG                 IMAGE ID            CREATED             SIZE

odoo                            10.1                793edee6ab30        3 days ago          894MB   <<<<<

<none>                          <none>              2ebbc09b340c        4 days ago          888MB

<none>                          <none>              5e1be85e3ee9        4 days ago          894MB

<none>                          <none>              cd0e2acac50b        4 days ago          536MB

<none>                          <none>              317e442f4416        4 days ago          561MB

<none>                          <none>              7d6ae7c50fb6        4 days ago          549MB

<none>                          <none>              73c08dfaaf64        4 days ago          546MB

pycharm_helpers                 PY-183.6156.16      0430ed2d37ee        6 days ago          37.1MB

odoo                            13.0                b77d7d215af3        7 days ago          1.14GB

<none>                          <none>              7b449bc0b8bd        7 days ago          535MB

odoo                            11.0                ac8c1f2da96a        11 days ago         1.07GB

odoo                            12.0                a914ad271b31        11 days ago         1.15GB

<none>                          <none>              687217ff7424        2 weeks ago         84.1MB

postgres                        12                  f88dfa384cc4        2 weeks ago         348MB

odoo                            10.0                50bfb7575fe2        2 weeks ago         888MB

debian                          stretch-slim        c2f145c34384        2 weeks ago         55.3MB

debian                          buster-slim         105ec214185d        2 weeks ago         69.2MB

debian                          latest              8e9f8546050d        2 weeks ago         114MB

busybox                         latest              19485c79a9bb        2 months ago        1.22MB

shadowsocks/shadowsocks-libev   latest              4ae4e89442e8        2 months ago        17.4MB

dpage/pgadmin4                  latest              15aebd95450f        3 months ago        237MB

postgres                        10                  897b33033d64        3 months
ago        230MB

postgres                        11                  53912975086f        3 months
ago        312MB

mplatform/mquery                latest              0e11d82ddb1d        2 years ago         7.11MB

使用docker compose编排 Odoo

odoo是基于多个服务,用docker compose 对这些服务进行编排,会比较方便。

编写 docker-compose.yml

编写 docker-compose.yml 文件,内容如下

  odoo10c cat docker-compose.yml

version: ‘3.3’

services:

# Web Application Service
Definition

# ——–

#

# All of the information needed to
start up an odoo web

# application container.

web:

image: odoo:10.1

depends_on:

– db

– pgadmin

# Port Mapping

# ——–

#

# Here we are mapping a port
on the host machine (on the left)

# to a port inside of the
container (on the right.) The default

# port on Odoo is 8069, so
Odoo is running on that port inside

# of the container. But we
are going to access it locally on

# our machine from
localhost:9000.

ports:

– 9000:8069

# Data Volumes

# ——–

#

# This defines files that we
are mapping from the host machine

# into the container.

#

# Right now, we are using it
to map a configuration file into

# the container and any extra
odoo modules.

volumes:

– ./config:/etc/odoo

# – ./addons:/mnt/extra-addons


../../git-repo/geely-mts:/mnt/extra-addons

# Odoo Environment Variables

# ——–

#

# The odoo
image uses a few different environment

# variables when running to
connect to the postgres

# database.

#

# Make sure that they are
the same as the database user

# defined in the db container environment variables.

environment:

– HOST=db

– USER=odoo

– PASSWORD=odoo

# Database Container Service
Definition

# ——–

#

# All of the information needed to
start up a postgresql

# container.

db:

image: postgres:11

# Database Environment Variables

# ——–

#

# The postgresql
image uses a few different environment

# variables when running to
create the database. Set the

# username and password of
the database user here.

#

# Make sure that they are
the same as the database user

# defined in the web
container environment variables.

environment:

– POSTGRES_PASSWORD=odoo

– POSTGRES_USER=odoo

– POSTGRES_DB=postgres  #
Leave this set to postgres

pgadmin:

image: dpage/pgadmin4

depends_on:

– db

environment:

PGADMIN_DEFAULT_EMAIL: ${PGADMIN_DEFAULT_EMAIL:-admin}

PGADMIN_DEFAULT_PASSWORD: ${PGADMIN_DEFAULT_PASSWORD:-admin}

volumes:

– pgadmin:/root/.pgadmin

ports:

– “${PGADMIN_PORT:-5050}:80”

volumes:

pgadmin:

说明:

1.       在 Odoo 服务,使用自定义的镜像,例如 Odoo:10.1

2.       编排了 PG服务

3.       编排 PGADMIN 方便对PG
进行管理

测试 docker-compose.yml

使用 docker-compose 启动 Odoo, 运行命令

  odoo10c docker-compose up

odoo10c_db_1 is up-to-date

odoo10c_pgadmin_1 is up-to-date

Recreating odoo10c_web_1 … done

Attaching to odoo10c_db_1,
odoo10c_pgadmin_1, odoo10c_web_1

pgadmin_1  | NOTE: Configuring authentication for
SERVER mode.

pgadmin_1  |

pgadmin_1  | [2019-11-03 13:02:57 +0000] [1] [INFO]
Starting gunicorn 19.9.0

pgadmin_1  | [2019-11-03 13:02:57 +0000] [1] [INFO]
Listening at: http://[::]:80 (1)

第一次运行 docker-compose 时,会创建相关的容器,上面的例子显示更新容器,是因为容器之前已经创建好。

此时,用浏览器访问  http://127.0.0.1:9000
即可访问到 Odoo服务 ; 访问  http://127.0.0.1:5050
即可访问到 pgadmin

 Odoo镜像说明

个目录,用于挂载到 Odoo容器用做 volume,其中:addons挂载到 /mnt/extra-addons , 以及  config 挂载到 /etc/odoo

Odoo容器默认使用 /etc/odoo/odoo.conf 作为配置文件。

,如果要自定义配置,修改 config/odoo.conf 文件即可,可以从 odoo docker 项目拷贝 原始 配置文件 作为 config/odoo.conf  ;2,如果要挂载自定义的ADDONS,挂载到 addons 目录即可。

Pycharm 调用 docker compose 远程运行Odoo

配置pycharm 使用 docker compose

使用 pycharm 将 Odoo 模块项目导入

在 preference ,选择 项目解释器

在项目解释器, 点击 ⚙️图标,选择 ADD

在弹窗,选择 docker compose

在 server 处,选择 docker 服务器,或者 新建docker 服务器。

注意:

如果是 windows平台,需要 关闭Docker  TLS ,如何关闭,具体 参考PYcharm官方文档,或者docker
文档

在 configuration file 选择前面建立的服务编排  docker-compose.yml
文件

在 service 选择 web。  注意, Pycharm 自动识别出
编排文件包含的所有服务,并且按字母排序

然后,点击OK 确认。

pycharm将会 去docker容器,侦测python的版本,完成后,远程解释器将会配置如下图所示

使用 远程解释器运行 Odoo

 建立 开发专用 Odoo配置

因为 pycharm
会将 项目 挂载到 容器的 /opt/project 下,如Odoo默认的 extra-addons不同;

所以,需要为 开发建立一个专用的 配置文件,例如  config/odoo-dev.conf

注意,这个文件存放在 docker-compose.yml文件目录

在这个 文件里面将   addons_path 指向  /opt/project

例如

addons_path = /opt/project

备注:

项目被挂载到 /opt/project 时由pycharm 生成的 docker compose 所指定

 配置 run configuration

在 run 菜单,选择 edit configuration,在弹窗

在 脚本 输入  /usr/bin/odoo

在 参数 输入 -c /etc/odoo/odoo-dev.conf

在 python 解释器,选择 前面建立的 远程python

运行 Odoo

点击 run  按钮,运行 Odoo

pycharm将 调用 docker compose 运行Odoo,如图

相关推荐
python开发_常用的python模块及安装方法
adodb:我们领导推荐的数据库连接组件bsddb3:BerkeleyDB的连接组件Cheetah-1.0:我比较喜欢这个版本的cheeta…
日期:2022-11-24 点赞:878 阅读:9,492
Educational Codeforces Round 11 C. Hard Process 二分
C. Hard Process题目连接:http://www.codeforces.com/contest/660/problem/CDes…
日期:2022-11-24 点赞:807 阅读:5,907
下载Ubuntn 17.04 内核源代码
zengkefu@server1:/usr/src$ uname -aLinux server1 4.10.0-19-generic #21…
日期:2022-11-24 点赞:569 阅读:6,740
可用Active Desktop Calendar V7.86 注册码序列号
可用Active Desktop Calendar V7.86 注册码序列号Name: www.greendown.cn Code: &nb…
日期:2022-11-24 点赞:733 阅读:6,493
Android调用系统相机、自定义相机、处理大图片
Android调用系统相机和自定义相机实例本博文主要是介绍了android上使用相机进行拍照并显示的两种方式,并且由于涉及到要把拍到的照片显…
日期:2022-11-24 点赞:512 阅读:8,132
Struts的使用
一、Struts2的获取  Struts的官方网站为:http://struts.apache.org/  下载完Struts2的jar包,…
日期:2022-11-24 点赞:671 阅读:5,295