前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >在debian10用docker 快速部署odoo 12

在debian10用docker 快速部署odoo 12

原创
作者头像
DPCloudX
修改2019-07-26 17:45:41
2.7K0
修改2019-07-26 17:45:41
举报
文章被收录于专栏:bebian

安装Docker及docker-compose

代码语言:javascript
复制
yum install -y docker docker-compose

systemctl enable docker # 开机自动启动docker
systemctl start docker # 启动docker
systemctl restart docker # 重启dokcer
systemctl stop docker

# 验证docker是否安装成功
docker run --rm hello-world

设置Docker 加速

tencent cloud

代码语言:javascript
复制
sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<-'EOF'
{
  "registry-mirrors": ["https://wkumpv63.mirror.aliyuncs.com"]
}
EOF
sudo systemctl daemon-reload
sudo systemctl restart docker

使用docker-compose.yml运行容器

目录结构

配置文件(docker-compose.yml)

代码语言:javascript
复制
version: '3'
services:
  web:
    image: odoo:12.0
    container_name: odoo
    depends_on:
      - db
    ports:
      - "8069:8069"
    networks:
      - "odoonetwork"
    volumes:
      - odoo-web-data:/var/lib/odoo
      - ./config:/etc/odoo
      - ./addons:/mnt/extra-addons
  web_odoo:
    image: odoo:10.0
    container_name: odoo10
    depends_on:
      - db
    ports:
      - "8010:8069"
    networks:
      - "odoonetwork"
    volumes:
      - odoo10-web-data:/var/lib/odoo
      - ./config10:/etc/odoo
      - ./addons10:/mnt/extra-addons
  web_odoo11:
    image: odoo:11.0
    container_name: odoo11
    depends_on:
      - db
    ports:
      - "8011:8069"
    networks:
      - "odoonetwork"
    volumes:
      - odoo11-web-data:/var/lib/odoo
      - ./config11:/etc/odoo
      - ./addons11:/mnt/extra-addons
  db:
    image: postgres:10
    container_name: pgsql
    ports:
      - "5432:5432"
    networks:
      - "odoonetwork"
    environment:
      - POSTGRES_DB=postgres
      - POSTGRES_PASSWORD=odoo
      - POSTGRES_USER=odoo
      - PGDATA=/var/lib/postgresql/data/pgdata
    volumes:
      - odoo-db-data:/var/lib/postgresql/data/pgdata
  jenkins:
    restart: always
    image: jenkins/jenkins:lts
    container_name: jenkins
    ports:
      - "8080:8080"
      - "50000:50000"
    networks:
      - "odoonetwork"
    volumes:
      - ./data:/var/jenkins_home
networks:
  odoonetwork:
    driver: bridge
volumes:
  odoo-web-data:
  odoo-db-data:
  odoo10-web-data:
  odoo11-web-data:

odoo配置文件

配置文件可以从这里找到相应的版本:https://github.com/odoo/docker/tree/master/12.0

路径:addons/odoo.conf

代码语言:javascript
复制
[options]
addons_path = /mnt/extra-addons,/usr/lib/python2.7/dist-packages/odoo/addons
;data_dir = /var/lib/odoo
admin_passwd = admin
csv_internal_sep = ,
db_maxconn = 64
db_name = False
db_template = template1
dbfilter = .*
debug_mode = False
email_from = False
limit_memory_hard = 2684354560
limit_memory_soft = 2147483648
limit_request = 8192
limit_time_cpu = 60
limit_time_real = 120
list_db = True
log_db = False
log_handler = [':INFO']
log_level = info
logfile = None
longpolling_port = 8072
max_cron_threads = 2
osv_memory_age_limit = 1.0
osv_memory_count_limit = False
smtp_password = False
smtp_port = 25
smtp_server = localhost
smtp_ssl = False
smtp_user = False
workers = 0
xmlrpc = True
xmlrpc_interface =
xmlrpc_port = 8069
xmlrpcs = True
xmlrpcs_interface =
xmlrpcs_port = 8071

Docker启动命令

代码语言:javascript
复制
docker-compose up -d
docker-compose stop
# 停止某一个容器
docker ps -a # 查看当前所有容器
docker stop <CONTAINER ID or NAMES>
docker start <CONTAINER ID or NAMES>
docker restart <CONTAINER ID or NAMES>

PostgreSQL 管理

docker仓库:https://hub.docker.com/_/postgres/

代码语言:javascript
复制
docker exec -tiu postgres <postgres_container_name> psql
docker exec -ti <postgres_container_name> psql -U <postgres_user>
# 推荐使用如下方式,它不会干扰主容器
docker run -it --link <postgres_container_name>:postgres --rm postgres sh -c 'exec psql -h "$POSTGRES_PORT_5432_TCP_ADDR" -p "$POSTGRES_PORT_5432_TCP_PORT" -U <postgres_user>'
# 备份\删除数据库\恢复

# To backup
docker exec -u <your_postgres_user> <postgres_container_name> pg_dump -Fc <database_name_here> > db.dump

# To drop db
docker exec -u <your_postgres_user> <postgres_container_name> psql -c 'DROP DATABASE <your_db_name>'

# To restore
docker exec -i -u <your_postgres_user> <postgres_container_name> pg_restore -C -d postgres < db.dump

Odoo 容器参数说明

代码语言:javascript
复制
# 进入odoo容器
docker exec -u 0 -it 28854cf96877 bash
# 安装依赖
pip install xmltodict

服务器的默认配置文件位于(/etc/odoo/odoo.conf),若你有一个自定义的配置文件位于(/path/to/config/odoo.conf),那么你的运行命令就该是如下这样。

代码语言:javascript
复制
docker run -v /path/to/config:/etc/odoo -p 8069:8069 --name odoo --link db:db -t odoo

当然,你也可以直接指定内联的Odoo参数,这些参数必须在前面加上 --,如下所示:

代码语言:javascript
复制
docker run -p 8069:8069 --name odoo --link db:db -t odoo --db-filter=odoo_db_.*

当然,运行Odoo,大部分时候是需要运行我们自己开发的模块,在docker中运行的时候,我们可以使用如下方式将其加载。

代码语言:javascript
复制
docker run -v /path/to/addons:/mnt/extra-addons -p 8069:8069 --name odoo --link db:db -t odoo

升级docker版本

代码语言:javascript
复制
docker run --volumes-from old-odoo -p 8070:8069 --name new-odoo --link db:db -t odoo

防火墙设置(不需要设置)

代码语言:javascript
复制
firewall-cmd --zone=public --add-port=8069/tcp --permanent
firewall-cmd --reload

Docker 维护命令

代码语言:javascript
复制
# 查看容器信息
docker info

# 查看镜像列表
docker images

# 启动、停止
docker stop <id/container_name>
docker start <id/container_name>
docker kill <id/container_name>

# 查看正在运行的容器
docker ps -a

# 查看容器日志
docker logs <id/container_name>

# 实时查看日志输出
docker logs -f <id/container_name> (类似 tail -f) (带上时间戳-t)

# 启动容器以后台方式运行(更通用的方式)
docker run -d -it image_name

# 显示一个运行的容器里面的进程信息
docker top Name/ID  

# 移除镜像
docker stop <id/container_name>
docker rm  <id/container_name> 

# 完全删除镜像
docker rmi <id> 

# 制作镜像(根据容器id来创建新的镜像
docker commit 93639a83a38e  wsl/javaweb:0.1

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 安装Docker及docker-compose
  • 设置Docker 加速
  • 使用docker-compose.yml运行容器
    • 配置文件(docker-compose.yml)
      • odoo配置文件
        • Docker启动命令
          • PostgreSQL 管理
            • Odoo 容器参数说明
            • 防火墙设置(不需要设置)
            • Docker 维护命令
            相关产品与服务
            容器镜像服务
            容器镜像服务(Tencent Container Registry,TCR)为您提供安全独享、高性能的容器镜像托管分发服务。您可同时在全球多个地域创建独享实例,以实现容器镜像的就近拉取,降低拉取时间,节约带宽成本。TCR 提供细颗粒度的权限管理及访问控制,保障您的数据安全。
            领券
            问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档