irpas技术客

Docker中运行Odoo+PostgreSQL + pgAdmin 4;各种报错处理过程。_年轻,不是你努力而得来的奖赏_docker pgadmin4

大大的周 4082

目录

背景:

资产情况:

操作步骤:

1:安装docker

2:配置镜像加速器

3:拉取postgres数据库镜像

4:安装pg数据库管理软件pgadmin4

5:拉取Odoo镜像

6:进入odoo系统

安装过程报错处理:

1:docker安装报错:

2:pgadmin4无法连接本地docker? pg数据库

3:odoo无法挂载pg数据库

4:启动postgres(pg)数据库报错,postgres数据库无法启动

5:pgadmin4无法启动,由于缺少环境变量

6:使用scp进行拷贝文件



背景:

Odoo,以前称为 OpenERP,是一套用 Python 编写并在 LGPL 许可下发布的开源商业应用程序。这套应用程序涵盖了所有业务需求,从网站/电子商务到制造、库存和会计,所有这些都无缝集成。这是有史以来第一次软件编辑器能够达到这样的功能覆盖范围。Odoo 是世界上安装最多的商业软件。Odoo 被全球 2.000.000 名用户使用,从非常小的公司(1 名用户)到非常大的公司(30 万名用户)

资产情况:

1:一台linux服务器;2核4G,cento7.6

操作步骤: 1:安装docker

1.1操作命令

yum -y install docker systemctl enable docker systemctl restart docker 2:配置镜像加速器

2.1 centos

sudo mkdir -p /etc/docker sudo tee /etc/docker/daemon.json <<-'EOF' { "registry-mirrors": ["https://jwrmyfx1.mirror.aliyuncs.com"] } EOF sudo systemctl daemon-reload sudo systemctl restart docker

2.2?Ubuntu

sudo mkdir -p /etc/docker sudo tee /etc/docker/daemon.json <<-'EOF' { "registry-mirrors": ["https://jwrmyfx1.mirror.aliyuncs.com"] } EOF sudo systemctl daemon-reload sudo systemctl restart docker 3:拉取postgres数据库镜像 mkdir /home/pgdata docker run --name db -e POSTGRES_USER=odoo -e POSTGRES_PASSWORD=fds@r342DKL -e POSTGRES_DB=postgres -p 15432:5432 -v /home/pgdata:/var/lib/postgresql/data -d -it --privileged postgres:13

第一步会读取本地镜像是否有PG数据库,没有的话,会自动去官网拉取。

3.1 效果展示:

3.2 查看postgres运行状态:状态up,

状态up,并不带程序可以正常访问,还需要测试端口连通性

3.3 命令解释:

run ???????? 创建并运行一个容器 --name db? ? ? ?? 指定容器的名称,可以自己定 -e POSTGRES_PASSWORD=xxx? ??POSTGRES_USER=xxx 设置环境变量,指定数据库的用户名和密码,用户名为xx,密码为:xx -p 15432:5432 ? 指定端口:前面为映射的端口号,后面为镜像的端口号 -v /home/pgdata:/var/lib/postgresql/data 指定宿主机的目录和原数据目录;如果容器被移除,文件存储就会丢失。防止这种情况的首选方法是使用名为volume的 Docker -d postgres:13 ? 指定镜像名称以及版本号,不知道默认拉取最新版本 PS:postgres镜像默认的用户名为postgres 4:安装pg数据库管理软件pgadmin4

4.1 拉取pgadmin4镜像

docker run --name pgadmin4 -p 15080:80 \ -e 'PGADMIN_DEFAULT_EMAIL=xx' \ -e 'PGADMIN_DEFAULT_PASSWORD=xx' \ -e 'PGADMIN_CONFIG_ENHANCED_COOKIE_PROTECTION=True' \ -e 'PGADMIN_CONFIG_LOGIN_BANNER="Authorised users only!"' \ -e 'PGADMIN_CONFIG_CONSOLE_LOG_LEVEL=10' \ -d dpage/pgadmin4

4.2 效果展示

?

?状态up,并不带程序可以正常访问,还需要测试端口连通性

5:拉取Odoo镜像 mkdir /var/lib/odoo docker run -v odoo-data:/var/lib/odoo -d -p 18069:8069 --name odoo --link db:db -t odoo

5.1 查看程序是否正常,程序为up

状态up,并不带程序可以正常访问,还需要测试端口连通性

5.2 命令解释:

运行 Postgres 的容器的别名必须是 db 以便 Odoo 能够连接到 Postgres 服务器。

命令中-p是将本地机器的18069端口映射到容器的8069端口,即本地机器的18069端口的流量会映射到容器的8069端口,当您在本地机器访问http://127.0.0.1:18069时,就会访问到容器中

使用命名卷保存数据 当 Odoo 容器按上述方式创建时,odoo 文件存储在容器内创建。如果容器被移除,文件存储就会丢失。防止这种情况的首选方法是使用名为volume的 Docker 。

5.3 停止和重启 Odoo 实例

docker stop odoo docker start -a odoo

5.4 效果展示

6:进入odoo系统

安装过程报错处理: 1:docker安装报错:

出现报错:??Cannot connect to the Docker daemon at unix:///var/run/docker.sock. Is the docker daemon running?

处理办法:启动重启docker服务

sudo service docker restart

2:pgadmin4无法连接本地docker? pg数据库

报错:pgadmin4无法连接本地docker? pg数据库,暂时未解决,之后更新解决办法。

3:odoo无法挂载pg数据库

报错:Database connection failure: could not translate host name "db" to address: Name or service not known

输入的命令有误:

不是:docker run -p 18069:8069 ?-d --name odoo? -t odoo:15 ?--link db_01

而是:

docker run -p 18069:8069 -d --name odoo -t odoo:15 --link db_01:db

4:启动postgres(pg)数据库报错,postgres数据库无法启动

报错:cannot access '/docker-entrypoint-initdb.d/': Operation not permitted

命令:

docker run --name db -e POSTGRES_USER=odoo -e POSTGRES_PASSWORD=odoo?-e POSTGRES_DB=postgres -p 15432:5432 -d postgres:12

???????

解决办法:报错提示,权限不够。加上参数 --privileged 来增加权

命令:

docker run --name db -e POSTGRES_USER=odoo -e POSTGRES_PASSWORD=xx -e POSTGRES_DB=postgres -p 15432:5432 -v /home/pgdata:/var/lib/postgresql/data -d -it --privileged postgres:13

服务正常启动

参考链接:https://blog.csdn.net/weixin_42123737/article/details/87984996

5:pgadmin4无法启动,由于缺少环境变量

报错:You need to define the PGADMIN_DEFAULT_EMAIL and PGADMIN_DEFAULT_PASSWORD environment variables.

提示我们需要添加默认环境变量

命令:

docker run -d -p 15050:5050 --name pgadmin -e SERVER_MODE=true -e PGADMIN_SETUP_EMAIL=2636795918@qq.com -e PGADMIN_SETUP_PASSWORD=xxx -v /home/pgadmin4:/data dpage/pgadmin

报错:

You need to define the PGADMIN_DEFAULT_EMAIL and PGADMIN_DEFAULT_PASSWORD environment variables.

效果展示:

?修改命令:

docker run -d -p 15050:5050 --name pgadmin -e PGADMIN_SETUP_EMAIL=xx@qq.com -e PGADMIN_SETUP_PASSWORD=xx -e PGADMIN_DEFAULT_EMAIL=xx@qq.com -e PGADMIN_DEFAULT_PASSWORD=xx -v /home/pgadmin4:/data dpage/pgadmin4

修改后效果:

6:使用scp进行拷贝文件 scp -r? root@香港服务器IP地址:/opt/odoo/odoo14/? /opt/odoo/

安装过程中参考的链接:

附上docker官网原文链接:Docker Hub

docker安装postgresSQL和设置自定义数据目录_蓝色心灵-海的博客-CSDN博客_docker postgres 安装

centos,Ubuntu,安装odoo连接:Odoo 14安装简明教程 | Alan Hou的个人博客

在Docker中运行PostgreSQL + pgAdmin 4 - 云+社区 - 腾讯云


1.本站遵循行业规范,任何转载的稿件都会明确标注作者和来源;2.本站的原创文章,会注明原创字样,如未注明都非原创,如有侵权请联系删除!;3.作者投稿可能会经我们编辑修改或补充;4.本站不提供任何储存功能只提供收集或者投稿人的网盘链接。

标签: #Docker #pgadmin4 #背景Odoo以前称为 #OpenERP是一套用 #Python #编写并在 #LGPL #许可下发布的开源商业应用程序