Skip to content

Instantly share code, notes, and snippets.

@ilmir-k
Last active December 22, 2022 15:42
Show Gist options
  • Save ilmir-k/427e827a76d2a6e8acf4406af7712a47 to your computer and use it in GitHub Desktop.
Save ilmir-k/427e827a76d2a6e8acf4406af7712a47 to your computer and use it in GitHub Desktop.
templates to run dockers

TEMPLATE 15.0

# launch:

DB_CONTAINER=db-odoo-15
ODOO_CONTAINER=odoo-15
ODOO_BRANCH=15.0
docker run -d -e POSTGRES_USER=odoo -e POSTGRES_PASSWORD=odoo -e POSTGRES_DB=postgres --name $DB_CONTAINER postgres:12.0

docker run \
-p 15069:8069 \
-p 15072:8072 \
-v /root/addons15/:/mnt/extra-addons/ \
--name $ODOO_CONTAINER \
--link $DB_CONTAINER:db \
-t odoo:$ODOO_BRANCH -- --db-filter=.*

# ------TEMPLATE 1------

# parameters:

DB_CONTAINER=db-new-multi
ODOO_CONTAINER=new-multi
ODOO_BRANCH=10.0

# run docker container for postgresql:

docker run -d -e POSTGRES_USER=odoo -e POSTGRES_PASSWORD=odoo -e POSTGRES_DB=postgres --name $DB_CONTAINER postgres:9.5

# run docker container for odoo:

docker run \
-p 8069:8069 \
-p 8072:8072 \
-e ODOO_MASTER_PASS=admin \
-v /home/odoo-server/odoo-10.0/website-addons/:/mnt/addons/it-projects-llc/website-addons/ \
--name $ODOO_CONTAINER \
--link $DB_CONTAINER:db \
-t itprojectsllc/install-odoo:$ODOO_BRANCH -- -d multi-website --db-filter ^%d$

# ------TEMPLATE 2------

# mount themes # parameters:

DB_CONTAINER=db-11
ODOO_CONTAINER=odoo-11
ODOO_BRANCH=11.0

# run docker container for postgresql:

docker run -d -e POSTGRES_USER=odoo -e POSTGRES_PASSWORD=odoo -e POSTGRES_DB=postgres --name $DB_CONTAINER postgres:9.5

# run docker container for odoo:

docker run \
-p 9069:8069 \
-p 9072:8072 \
-e ODOO_MASTER_PASS=admin \
-v /home/odoo-server/odoo-11.0/website-addons/:/mnt/addons/it-projects-llc/website-addons/ \
-v /home/ilmir/enterprise-11/addons/:/mnt/addons/extra/enterprise-11/ \
-v /home/odoo-server/themes/$ODOO_BRANCH/:/mnt/addons/extra/themes/ \
--name $ODOO_CONTAINER \
--link $DB_CONTAINER:db \
-t itprojectsllc/install-odoo:$ODOO_BRANCH -- -d odoo11 --db-filter=.*

# ------TEMPLATE 3------

# mount OCA repo # parameters:

DB_CONTAINER=db-multi-footer
ODOO_CONTAINER=multi-footer
ODOO_BRANCH=10.0

# run docker container for postgresql:

docker run -d -e POSTGRES_USER=odoo -e POSTGRES_PASSWORD=odoo -e POSTGRES_DB=postgres --name $DB_CONTAINER postgres:9.5

# run docker container for odoo:

docker run \
-p 8069:8069 \
-p 8072:8072 \
-e ODOO_MASTER_PASS=admin \
-v /home/odoo-server/OCA/website/:/mnt/addons/OCA/website/ \
--name $ODOO_CONTAINER \
--link $DB_CONTAINER:db \
-t itprojectsllc/install-odoo:$ODOO_BRANCH -- -d multifooter --db-filter=.*

# update addons path:

docker exec -i -u root -t $ODOO_CONTAINER /bin/bash -c "export UPDATE_ADDONS_PATH='yes'; bash /install-odoo-saas.sh" && docker restart $ODOO_CONTAINER

# docker pull to update docker image:

docker pull itprojectsllc/install-odoo

# clean docker:

docker volume rm $(docker volume ls -f dangling=true -q)

# To upgrade docker container, i.e. to launch a container with new parameters (e.g. -u all), you should run docker using --rm key:

docker run --rm \
--link db-odoo-$VERSION:db  \
-t itprojectsllc/install-odoo:$VERSION-dev \
--  \
--stop-after-init --workers=0 \
-d $NAME --db-filter=.* \
-u all

Run container together with WDB container (wdb debugger):

docker run \
--name quartet-11.0 \
--link wdb:wdb -e WDB_SOCKET_SERVER=wdb -e WDB_NO_BROWSER_AUTO_OPEN=True \
-p 8069:8069 -p 8072:8072 -e ODOO_MASTER_PASS=master \
--link db-odoo-11.0:db \
-v ~/docker/odoo-11.0/Quartet:/mnt/addons/extra/Quartet \
-t itprojectsllc/install-odoo:11.0-dev \
-- \
-d quartet --db-filter=^%d$


docker run -d -p 1984:1984 --name wdb kozea/wdb

If you have the error "404 The requested URL was not found ...", make sure that:

1. you run dockerwith correct --load modules, for example "--load=web,base_session_store_psql,ir_attachment_url" but not just --load=ir_attachment_url

2. you use correct parameters:
* --db-filter=^%d$ when running container
* set proxy_mode = True in the config file

Symbolic Link

#

sudo ln -s /etc/nginx/sites-available/odoo_nginx.conf /etc/nginx/sites-enabled/

Docker-compose

# launch the containers:

docker-compose run -d web

# turn off the containers:

docker-compose down

# restart:

docker-compose restart web

# connect to db container:

docker-compose run --rm web psql -h db -U odoo -d postgres

Create and link docker volume

# it helps when you want to link filestore to odoo container. For example, you remove odoo container and want to create a new one with linking to the existing DB container. There might be a case when you have broken images due to the filestore is not linked to odoo container - so the volume would help in this.

# Create volume:

docker volume create --name odoo15-web-data

# Link volume to the created container using -v odoo15-web-data:/var/lib/odoo:

docker run \
-p $PORT_ODOO:8069 \
-p $PORT_LONGPOLLING:8072 \
-e ODOO_MASTER_PASS=admin \
-v $FOLDER:/mnt/extra-addons \
-v $FOLDER_ENT:/mnt/enterprise-15.0 \
-v odoo15-web-data:/var/lib/odoo \
--name $ODOO_CONTAINER \
--link $DB_CONTAINER:db \
-t odoo:$ODOO_BRANCH \
-- -d $CLIENT_DB --db-filter=.*

Error: relation "ir_module_module" does not exist

# Fix for the error Error: relation "ir_module_module" does not exist is to execute the following comman in terminal:

docker exec -it $CONTAINER_NAME odoo -i base -d $DB_NAME --stop-after-init

Upgrade module(s) within container

# Open container terminal:

docker exec -u root -it $CONTAINER_NAME bash

# execute /usr/bin/odoo -p $PORT_NUMBER -d $DB_NAME -u $MODULE_NAME:

 /usr/bin/odoo -p 15069 -d website_demo -u base
(here we use the port 15069 where the container launched, the database 'website_demo' and upgrading the module 'base')
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment