Odoo 16的docker部署以及vscode环境配置

news2024/9/21 20:43:31

之前一直使用Odoo源码配置开发环境,安装的步骤比较多,费时。趁着升级到16版本的机会,尝试使用docker快速配置Odoo的VSCode开发环境。

1 系统环境

(1)操作系统:ubuntu 20.04  Alternative downloads | Ubuntu

(2)集成开发工具:vscode   Visual Studio Code - Code Editing. Redefined

2 docker安装

如果之前未安装docker,终端会提示:

Command 'docker' not found, but can be installed with:

sudo snap install docker     # version 20.10.17, or
sudo apt  install docker.io  # version 20.10.21-0ubuntu1~20.04.2

See 'snap info docker' for additional versions.
(1)安装docker,在终端输入:sudo apt install docker.io

(2)检查安装是否成功:sudo docker -v

输出版本信息则表示正常安装。

3 镜像拉取

(1)拉取Odoo镜像:sudo docker pull odoo:16.0

(2)拉取Postgres镜像:sudo docker pull postgres:15.0

(3)查看镜像拉取结果:sudo docker images

4 启动容器

(1)启动Postgres容器:sudo docker run -d -p 5432:5432 -e POSTGRES_USER=odoo16 -e POSTGRES_PASSWORD=odoo16 -e POSTGRES_DB=postgres --name odoo16 postgres:15.0

(2)启动Odoo容器:sudo docker run -d -p 8069:8069 --name odoo16_app --link odoo16:db -t odoo:16.0

(数据库名、用户名、密码、端口等可按需更改)

在浏览器输入127.0.0.1:8069,就可以看到熟悉的Odoo页面了。

5 VSCode连接容器

(1)修改用户权限

sudo chmod o+rw /var/run/docker.sock

sudo groupadd docker

sudo gpasswd -a $USER docker

newgrp docker

(2)安装docker插件:vscode扩展里,搜索“docker“。安装,侧边栏出现容器图标。

在第一步事先修改了用户权限,所不会出现vscode没有权限访问容器的错误了。

通过docker插件,attach操作后可以远程查看containers和images信息。

此时odoo16和postgres15容器尚未启动,红色方框图标。

鼠标在容器名上右键选择启动(先postgres,后odoo)。顺利启动后容器的红色停止图标变成了绿色三角图标。

6 查看odoo运行日志及脚手架创建自定义模块

(1)查看odoo运行日志

在docker插件的odoo图标上,右键选择“View Logs”,在VSCode的终端可以看到当前Odoo容器的运行日志。

(2) 脚手架创建自定义模块

 在docker插件的odoo图标上,右键选择“Attach Shell”,可以进入Odoo容器的终端。

配置文件在容器中的位置是/etc/odoo/odoo.conf,可通过插件在树状结构中查看 (官方odoo镜像没有安装vim\nano等工具)。

可以发现,自定义模块在/mnt/extra-addons目录下。

 切换到模块目录,Odoo容器终端: cd /mnt/extra-addons

 

创建自定义模块,Odoo容器终端: odoo scaffold firstmodule

当前文件夹出现firstmodule模块。

 开发者模式,更新,在应用中检索到“firstmodule”。

到此,环境配置完毕,可以自由玩耍了。

7 小结

这次使用docker配置odoo环境,在VSCode配置上卡了半天,没找到比较匹配直观的教程,记录下过程供今后使用。在走通第一遍后,效率大幅提高,五分种可以搞定,而以往源码方式的配置需要花费半个小时以上,且将来可很方便部署到生产环境。

有些不习惯的是,之前用源码部署配置方式,各类配置文件在哪个目录下可以在源码中快速找到,同时也可以查看自带的模块的代码。现在使用容器方式,目录结构就不同了,也看不到源码,心中有种空荡荡的不踏实的感觉。


 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/594386.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Eclipse 教程 完结中

Eclipse 快捷键 关于快捷键 Eclipse 的很多操作都提供了快捷键功能,我们可以通过键盘就能很好的控制 Eclipse 各个功能: 使用快捷键关联菜单或菜单项使用快捷键关联对话窗口或视图或编辑器使用快捷键关联工具条上的功能按钮 Eclipse 快捷键列表可通过…

可节省60% MCU开发成本的NV080D-S8,单片机语音芯片在恒温碗上的应用

社会在不断进步,科技在不断发展,如今的恒温碗不仅带有温度显示功能,更附带有语音播报,能更好地知晓当前饭菜,变凉或过烫的情况,有效避免伤害宝宝脆弱的肠胃; 广州九芯电子推出了一款&#xff0c…

dynamic-datasource动态数据源学习

学习链接 spring整合mybatis的核心思路 & 数据源动态切换 & 多数据源事务控制 - 自己的链接(本篇文章的上篇) Mybatisplus生成代码配置 & p6spy打印sql & mybatis日志打印 & mybatisplus用法 dynamic-datasource-spring-boot-sta…

LabVIEWCompactRIO 开发指南第六章44 同步模块

同步模块 某些应用(如振动或声音测量)需要通道之间的高电平(低于100nS)同步。本节讨论基于增量Σ的模块和扫描(SAR)模块的时序和同步。任何未被归类为三角积分的NIC系列I/O模块都被归类为SAR。 同步增量西…

ThreadLocal源码

介绍 ThreadLocal是一个线程的本地变量,也就意味着这个变量是线程独有的,是不能与其他线程共享的。这样就可以避免资源竞争带来的多线程的问题。 但是,这种解决多线程安全问题的方式和加锁方式(synchronized、Lock) 是有本质的区…

过来人建议:强烈安利本科生都去学Java编程!现在转行还不晚!

为什么标题这么说呢,因为Java的工资香啊,刚入门的小白就有 1w,转正后更多,而且越老越吃香! 我们学一门技术在身,走到哪里都不怕,java是技术岗,不带销售性质,加班要分公司…

unity与oculus quest开发设置流程

目录 预准备quest项目的构建PC运行参考文章 版本: unity:2021 adb(保证用USB连接PC和头显的时候能允许调试和数据访问) macOS 当USB连接之后,需要带上头显将是否允许数据调试和访问的对话框选择允许。 文件中assets放…

2.6 Hello World 及简单语法规则

2.6 Hello World 及简单语法规则 新建文件夹,用于存放代码 新建一个Java文件 早期我们只是会建立txt文本文件,或者word,Java文件的后缀名是.java 新建Hello.java文件 // 输入Java代码public class Hello{public static void main(String[…

Vue3 小兔鲜:Pinia入门

Vue3 小兔鲜:Pinia入门 Date: May 11, 2023 Sum: Pinia概念、实现counter、getters、异步action、storeToRefs保持响应式解构 什么是Pinia Pinia 是 Vue 的专属状态管理库,可以实现跨组件或页面共享状态,是 vuex 状态管理工具的替代品&…

PHP7 连接数据库 MySQL8.0 报错 Call to undefined function mysqli_connect() 的解决方法

前提 如题所示使用的是PHP7的版本,连接MYSQL8.0数据库遇到的问题,提供我个人的解决办法。 我的报错是:Call to undefined function mysqli_connect() 首先明确 保证PHP与MySQL可以正常使用 访问localhost:80【或者你设置的端口号】是有页面…

shell编程之SNAT与DNAT的应用

SNAT与DNAT的应用 一、SNAT的介绍1.SNAT概述2.SNAT源地址转换过程二、SNAT转换 三、DNAT的介绍1.DNAT概述2.DNAT转换前提条件 四、DNAT的转换五、防火墙规则的备份和还原六、tcpdump抓包工具的运用 一、SNAT的介绍 SNAT(SNAT)一般指源地址转换 1.SNAT概…

VMware安装Centos7图形化GUI系统全过程

1、打开vmware,点击文件然后新建虚拟机 2、然后自定义直接下一步 3、下一步 4、这里我们稍后安装操作系统,继续下一步 5、随后选择Centos7 64位,继续下一步 6、选择你所需要安装的虚拟机存放的位置,虚拟机名字看自己来设置&#x…

docker-安装minio集群

目录 1.服务器列表 2.NTP时间同步 1.服务端 minio_01配置 2.客户端配置-minio_02、minio_03、minio_04配置 3.Minio集群 1.在对应的主机执行对应的语句 2.创建文件夹 3.创建容器 4.访问 5.查看集群 4.nginx代理集群192.168.1.3 1.nginx安装 2.访问代理 1.服务器列…

[web]关于过滤器Filter

前言 为了避免在没有登录的情况下也可以通过路径访问到所有页面, 如果在每一个需要请求的资源里面都通过Session去判断有没有登录的用户对象就需要书写大量的判断代码,此时就可以用到Filter过滤器 作用 让请求的某些资源在之前或之后经过过滤器&#xff…

uni-app路由配置使用和页面跳转传参

uni-app路由配置使用和页面跳转传参 uni-app路由配置使用和页面跳转传参 文章目录 uni-app路由配置使用和页面跳转传参前言一、组件式路由跳转传参二、函数式路由跳转传参总结 前言 UNI-APP学习系列之路由配置使用和页面跳转传参 一、组件式路由跳转传参 组件式路由跳转 示例…

Java设计模式(一)

系列文章目录 单一职责原则 接口隔离原则 依赖倒转原则 文章目录 系列文章目录前言一、单一职责原则1.单一职责原则注意事项和细节 二、接口隔离原则1.接口隔离原则基本介绍(Interface Segregation Principle)2.应传统方法的问题和使用接口隔离原则改进 三、依赖倒转原则1.依赖…

【Linux】——调试器-gdb的使用

序言: 本期,我将带领大家学习的关于linux下的调试器gdb的使用,废话不多说跟着我一起去看看吧!! 目录 前言 (一)背景介绍 1、debug模式和release模式 2、为什么Release不能调试但DeBug可以调…

nDreams CEO:是时候打破市场对VR游戏的错误认知了

自Quest系列头显问世以来,VR游戏市场仿佛被注入了一剂强心针,发展速度远超Rift时代。从Quest 1到现在,已经过去4年左右,现在VR游戏市场又走到了哪呢?在GDC 2023上,资深VR游戏工作室和发行商nDreams公布了一…

django-vue-admin-pro 使用

地址: GitHub - dvadmin-pro/django-vue-admin-pro 一、准备工作 Python > 3.8.0 (推荐3.9版本) nodejs > 14.0 (推荐最新) Mysql > 5.7.0 (可选,默认数据库sqlite3,推荐8.0版本) Redis(可选,最新版)项目运行及部署 |…

Android crash 流程详解(一):JE

源码基于:Android R 0. 前言 App crash(全称为 Application crash),又分 java crash 和 native crash,又称 java layer exception(JE) 和 native layer exception(NE)。对于 crash 在开发过程中或多或少都会遇到,本文将整理总结 …