
Understand why and how to use Dacher, and compare it to virtual machines, then build a custom odoo docker image version 13 with addons, persistence, and docker compose.
Discover how Docker containerization isolates applications to guarantee identical libraries, frameworks, and operating systems across developer laptops, development servers, and production, solving version mismatches and ensuring consistent behavior.
Compare container and virtual machine architectures, explaining how docker containers package code with dependencies, share the host OS kernel, and run isolated processes, versus VMs with OS and slower boot.
Install Docker on Ubuntu by downloading the package and removing any old versions. Add the official repository, then pull a sample image and verify the service runs.
Install Docker on CentOS by removing old versions, adding the Docker repository, and completing the installation; test the setup by starting the Docker service and pulling the image.
Install Docker Desktop on Windows 10 by downloading the official installer, restarting to complete setup, then verify Docker Desktop runs and use the shell to pull and test images.
Install docker on macOS via Docker Desktop, download from the docker docs, replace an old version if needed, launch the app, and verify it runs from the terminal.
Learn how to pull the latest official Odoo Docker image, run it locally, and access the app via browser by mapping ports and handling image tags.
A dockerfile defines commands to build an image; use docker build with a current directory context and optional -f and -t flags for base image, packages, ports, and entry point.
Clone official odoo docker repository from github and create a temporary folder for building the image, using version 13 with the proper entry point, configuration file, and executable wait script.
Sign up for docker hub, verify your email, and sign in with your docker id. Create a public repository, enable publishing, and note the repository address for future image uploads.
Build a custom Odoo Docker image from the official Dockerfile by updating the maintainer and then run it with a Postgres container to enable later publishing.
Explain how to base a custom Odoo docker image on a Debian slim image, set the maintainer and shell, configure utf-8, and install and clean up packages in the dockerfile.
Install the PostgreSQL client package in a docker image by configuring the PostgreSQL apt repository and key, then installing and cleaning up to use the client in the build.
Install the Odoo package in a local docker image by setting the version to 13.10, fetching the repository, configuring access keys, installing, and cleaning up build files.
Mount volumes and expose ports for an Odoo docker image, copy the local entrypoint and configuration, set file ownership and user, and define the start command via an entrypoint script.
Install an additional python package into your custom Odoo docker image using apt-get, then complete the build to reach version 1.1.
Enable volume sharing by mounting a host data folder into the Odoo container, so sessions, files, and assets persist across multiple containers for reliable login and load balancing.
Learn to run an Odoo Docker image manually with addons mounted from a local folder, enabling custom addons to be detected and installed inside the container.
Learn how to run an Odoo docker image in the background using docker run -d, attach volumes, and view real-time logs with docker logs -f.
Enter the container shell with the exec command, explore the filesystem, and inspect the entry point, the config, and host-mounted data.
Learn to run a docker container with a custom odoo config by using an external config file in a mounted folder, edit it, and verify with logs.
Stop, start, and restart your odoo docker containers by using docker stop with container id or name, listing containers with docker ps -a, and applying config changes with docker restart.
Learn to run a second container with inline arguments in a custom Odoo docker image, using local level debug and a db filter to limit databases via command line options.
Publish the trained image to Docker Hub by logging in and pushing to the repository, then pull and run it on another computer.
Delete unused docker containers to maintain a clean local environment, selecting the valid or latest containers and removing the others by name with a simple command.
Explore how the entrypoint.sh startup logic reads host, user, and password from env vars or defaults, validates config with check_config, and supports scaffold or startup flows.
Learn how to pass environment variables to a custom Odoo Docker image at runtime, using -e to configure Postgres host, user, and password.
Install docker compose, make it executable on Linux, link the file for system access, and verify that docker compose is active.
Learn to create and use a docker compose file to start, stop, and pull the latest docker images for your custom Odoo setup, including detaching the console.
Learn how a docker compose yml file defines web and database services, uses a postgres:10 image, sets environment variables for user, password, and an empty database, and exposes ports.
Learn to mount local addon folders in an Odoo docker image by configuring volumes in docker compose, mapping host folders for addons, config, and database data to the container.
Install and verify a mounted addon in your Odoo Docker image by enabling debug mode, loading the addons folder, and ensuring the system scans the addon inside the container.
Create a dedicated addons folder, gather and embed selected addons into the Odoo Docker image, so they're ready to install without config changes.
Explore how the copy command copies all contents from the source into the image, includes the config addon, and places the addons folder so it gets scanned inside the container.
Rebuild our custom Odoo Docker image by updating from version 1.1 to 1.2, ensuring custom items stay inside, and mounting the local config folder with addons and the conflict file.
Learn how to test and install Odoo addons inside a custom docker image, including running containers, accessing the database, enabling addons, and launching a help desk workflow.
Configure a Docker Hub repository to private, restricting access to assigned team members via the repository settings in the Docker Hub dashboard.
Control access to your odoo docker image repository by adding or removing collaborators: click the collaborator icon, enter the user name, and grant or revoke access for anyone you choose.
Download the latest Odoo source code from the nightly site to build a custom docker image using the community edition. Extract the source and copy it into the image.
Add additional required packages in the dockerfile to enable compiling the audio source code alongside building Python packages for your custom Odoo docker image.
Copy the source code and audio folder into the Odoo docker image. Replace the audio installation steps with the audio package and ensure all content is included before building.
Create an Odoo user inside the docker image and set its password to configure access in your custom Odoo docker setup.
Install python packages and manage requirements to build a custom Odoo Docker image, including copying source code and handling necessary compilation.
Prepare the /var/lib/odoo directory by creating the required folder and assigning the correct ownership to ensure reliable access to assets during dockerized Odoo setup.
Configure a default user for a custom Odoo Docker image by setting the entry point, handling volumes and port exposure, and creating the user before building the new image.
Copy the executable from the setup folder in the audio source code into the container's order folder, edit it, and set it to executable.
Edit the entrypoint.sh script to define the startup behavior and executable file inside the Docker image, then build the custom Odoo Docker image.
Execute the build to create a custom Odoo docker image, install required packages and python dependencies, run setup commands, and verify a successful local image.
Edit the docker-compose file to use image 1.3, then build and run the container, verify in the browser, manage instances, and copy the audio file from the setup folder.
Identify and fix build warnings in your custom Odoo docker image by aligning required binary and dependencies, installing the necessary requirements, then rebuild the image and run to verify.
Create and initialize a GitHub repository, add and commit project files, and push to GitHub, preparing the docker file and entry point for the custom Odoo image.
Remove the hidden .git folder from the cloned repository before proceeding with git add, git commit, and git push as demonstrated earlier.
Learn how to configure Docker Hub by linking your GitHub or Bitbucket repository, choosing build rules, and specifying the Dockerfile and build context to build a custom Odoo Docker image.
Push changes to GitHub and test the auto build to verify a new Odoo docker image is created. Monitor progress on the site and wait for completion.
So, you have reached at a point to implement Odoo not in the default standard way.. Where your Odoo implementation has required many instances running in parallel and can't be handled with a single or two servers anymore.. And the decision is to utilize Docker, as it can be scaled and managed easily as the client request increased dramatically.
Then, this course is for you..
Docker will reduce the complexity of implementing a software system that requires many supporting subsystems, libraries, external program, where sometimes a small difference of minor version or setting can cause the whole system failed to work.
Docker will solve the ‘it works in my laptop’ problem we commonly face while working with developers.
I will teach you how to start creating your custom Odoo Docker Image, begins with running the official one that we got from Odoo, then tweak it to suit your needs and start generating your custom image. Direct to the point, not that much theory.
Then I will also teach you how to integrate your custom image to a Github repository (Gitlab works as well), so that every commit to the repository will automatically create a new image version..
Or, when you need to pull the repository on every docker container restart..
Or, when you need to clone the repository on every docker container restart..
I will teach you all of those practical things step by step, no need for any prior knowledge of Docker, just a little bit of Linux standard commands.
Please also check my other course on how to manage the docker containers in Kubernetes environment to achieve the autoscaling and zero downtime for our Odoo instances.
Hope you find this course useful for you daily jobs.
See you soon on the class!