您当前的位置:首页 > 电脑百科 > 程序开发 > 容器

使用 pycharm调试docker环境运行的Odoo

时间:2020-08-06 11:28:29  来源:  作者:

安装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镜像会在 在 docker-compose.yml 所在目录建立 2个目录,用于挂载到 Odoo容器用做 volume,其中:addons挂载到 /mnt/extra-addons , 以及 config 挂载到 /etc/odoo

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

 

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

Pycharm 调用 docker compose 远程运行Odoo

 

配置pycharm 使用 docker compose

 

使用 pycharm 将 Odoo 模块项目导入

使用 pycharm调试docker环境运行的Odoo

 

 

在 preference ,选择 项目解释器

使用 pycharm调试docker环境运行的Odoo

 

 

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

在弹窗,选择 docker compose

使用 pycharm调试docker环境运行的Odoo

 

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

注意:

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

使用 pycharm调试docker环境运行的Odoo

 

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

 

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

 

然后,点击OK 确认。

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

使用 pycharm调试docker环境运行的Odoo

 

使用 远程解释器运行 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 所指定

使用 pycharm调试docker环境运行的Odoo

 

 

配置 run configuration

 

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

使用 pycharm调试docker环境运行的Odoo

 

在 脚本 输入 /usr/bin/odoo

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

 

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

 

运行 Odoo

 

点击 run 按钮,运行 Odoo

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

使用 pycharm调试docker环境运行的Odoo

 

转载注明原作者 /by Jeffery



Tags:pycharm   点击:()  评论:()
声明:本站部分内容及图片来自互联网,转载是出于传递更多信息之目的,内容观点仅代表作者本人,如有任何标注错误或版权侵犯请与我们联系(Email:2595517585@qq.com),我们将及时更正、删除,谢谢。
▌相关推荐
现在的开发工具太多了,而且每个开发工具都致力于做成最好用最智能的工具,所以功能越堆越多,越怼越智能。安装这些开发工具比较烧脑,经常需要经过许多配置步骤。作为一个 Python 开发者来说,好多人光是这些配置都要弄半天。...【详细内容】
2021-10-11  Tags: pycharm  点击:(47)  评论:(0)  加入收藏
1 如果你是web开发工程师那就选择pycharm。针对大型的web框架修改调试,还是需要个大型IDE。2 如果你是数据处理工程师那就选择spyder或者anaconda。安装后就处理好集成环境。...【详细内容】
2021-09-17  Tags: pycharm  点击:(233)  评论:(0)  加入收藏
今天JetBrains正式发布了Python开发工具PyCharm 2021.1最新版。码农老杨第一时间安装体验,新增的CodeWithMe可以和好基友边撸代码边视频了。WSL的增强支持可以直接在WSL里跑...【详细内容】
2021-04-09  Tags: pycharm  点击:(379)  评论:(0)  加入收藏
PyCharm 是一种 Python IDE,可以帮助程序员节约时间,提高生产效率。那么具体如何使用呢?本文从 PyCharm 安装到插件、外部工具、专业版功能等进行了一一介绍,希望能够帮助到大家...【详细内容】
2020-10-19  Tags: pycharm  点击:(86)  评论:(0)  加入收藏
Pycharm 作为一款针对 Python 的编辑器,配置简单、功能强大、使用起来省时省心,对初学者友好,这也是为什么编程教室一直推荐新手使用 Pycharm 的原因。 本文我们将介绍 pycharm...【详细内容】
2020-09-11  Tags: pycharm  点击:(49)  评论:(0)  加入收藏
前言小伙伴们平时在远程连接服务器的时候,大多数应该都是使用 Xshell。其实对于在咱们经常写 python 的小伙伴,我们还有一个使用起来更加方便,并且功能更加强大的工具来连接服...【详细内容】
2020-08-16  Tags: pycharm  点击:(302)  评论:(0)  加入收藏
安装dockerwindows系统,参考 docker官方文档Mac系统,参考 docker官方文档构建自定义ODOO镜像标准ODOO镜像可能不包含特别的python模块,或者Linux工具,此时需要 自定义 Odoo镜像...【详细内容】
2020-08-06  Tags: pycharm  点击:(82)  评论:(0)  加入收藏
在Python Console中执行,会报错,错误提示与代码匹配不上。例如:runfile(&#39;D:/project/python/example/pythonExample/LanguageExample/ObjectOrient/biz_handle.py&#39;, wd...【详细内容】
2020-07-09  Tags: pycharm  点击:(111)  评论:(0)  加入收藏
Python作为深度学习和人工智能学习的热门语言,学习一门语言,除了学会其简单的语法之外还需要对其进行运行和实现,才能实现和发挥其功能和作用。下面来介绍运行Python代码常用到...【详细内容】
2020-06-14  Tags: pycharm  点击:(46)  评论:(0)  加入收藏
Windows系统下PyCharm更换Terminal默认ssh方法背景   Windows系统下PyCharm更换Terminal对git不友好,没有Tab键提示功能。解决办法保证WIN系统中已经安装git[走默认安装]地...【详细内容】
2020-06-11  Tags: pycharm  点击:(60)  评论:(0)  加入收藏
▌简易百科推荐
一、为什么要搭建主从架构呢1.数据安全,可以进行数据的备份。2.读写分离,大部分的业务系统来说都是读数据多,写数据少,当访问压力过大时,可以把读请求给到从服务器。从而缓解数据...【详细内容】
2021-12-15  实战Java    Tags:Docker   点击:(10)  评论:(0)  加入收藏
在网页中渲染公式一直是泛学术工具绕不开的一个功能,最近更新产品功能,正巧遇到了这个需求,于是使用容器方式简单实现了一个相对靠谱的公式渲染服务。分享出来,希望能够帮到有类...【详细内容】
2021-12-01  编程菌zfn    Tags:Docker   点击:(10)  评论:(0)  加入收藏
1.1 docker命令直接部署1.1.1 拉取镜像docker pull wurstmeister/zookeeperdocker pull wurstmeister/kafka1.1.2 启动zookeeper容器docker run -d --name myzookeeper -p 2...【详细内容】
2021-11-15  无    Tags:docker   点击:(47)  评论:(0)  加入收藏
01 前言 顺着docker的发展,很多测试的同学也已经在测试工作上使用docker作为环境基础去进行一些自动化测试,这篇文章主要讲述我们在docker中使用浏览器进行自动化测试如果可以...【详细内容】
2021-10-29  小码哥聊软件测试    Tags:Docker   点击:(42)  评论:(0)  加入收藏
因为你懂得的原因,下载docker镜像速度非常喜感,故收集几个国内常用的docker镜像。Docker中国区官方镜像地址:https://registry.docker-cn.com网易163的镜像http://hub-mirror.c...【详细内容】
2021-10-28  抓蛙程序猿    Tags:docker   点击:(48)  评论:(0)  加入收藏
环境:Spring5.3.10通常,应用程序开发人员不需要对ApplicationContext实现类进行子类化。相反,SpringIOC容器可以通过插入特殊集成接口的实现来扩展。使用BeanPostProcessor自定...【详细内容】
2021-10-26  Java网络研发架构师    Tags:Spring   点击:(33)  评论:(0)  加入收藏
我们在很多场景下都需要做笔记,来对抗遗忘,一份好的笔记不仅能在需要的时候供我们查阅,也能帮助我们归纳整理知识提高做事效率。 目前市面上有很多云笔记软件,体验上各有不同,但...【详细内容】
2021-10-11  运维贼船    Tags:docker   点击:(61)  评论:(0)  加入收藏
1. Nacos官网Nacos Docker 快速开始2. Clone 项目git clone https://github.com/nacos-group/nacos-docker.git3. cd 到nacos-docker 路径下 直接启动即可cd nacos-dockerdo...【详细内容】
2021-09-16  程序狗爱化妆    Tags:Nacos   点击:(109)  评论:(0)  加入收藏
今天不做保姆级教程,分享奶爸常用、好用的Docker应用。有了这些Docker,Nas的可玩性会大幅提高,有时候奶爸也在想,刨去官方套件不考虑的话,Nas真的是差不多。如果小伙伴们有需要,后...【详细内容】
2021-09-03  晋升奶爸的垃圾佬    Tags:Docker   点击:(167)  评论:(0)  加入收藏
环境要求 ubuntu系统:20.04 docker版本:20.10.7 redis版本:6.0.6步骤由于我这里已经有相应的redis镜像,这里就不记录了,关于docker一些基础知识可以看我以前的笔记开启3台re...【详细内容】
2021-07-26  石老师小跟班    Tags:Redis主从复制   点击:(117)  评论:(0)  加入收藏
最新更新
栏目热门
栏目头条