We were still trying to make the auto reload feature work with the 8.0
way in the dockerfile 9 and 10. This patch install the dependency used
in Odoo 9-10 (watchdog instead of pyinotify) and remove the
"auto-reload" key from the default configuration file, as the new syntax
is "--dev=reload".
The auto-reload is now disabled by default (it didn't work, let's not
bother someone that does not need it). The easiest way to use it is to
pass the arguments to the odoo process as:
docker run -p 8069:8069 --name odoo --link db:db -t odoo:[9.0|10.0] -- --dev=reload
fixes#84fixes#98
When using an Odoo subcommand, the name of this subcommand has to be in
first position in the arguments list. Just pass the postgres config at
the end of the command... except for the scaffold one.
Fixes#83
We tried to remove usage of environment variables to set the connection
parameters to the postgres database but we omit the case when they're
set in the config file
related to a3d207fFixes#80
When nothing is passed as argument to the docker container, the
entrypoint will receive the content of the CMD of the dockerfile. In
this case we have to pass the database configuration arguments, else
Odoo won't run correctly. This is the case when you run the command of
our documentation:
``` docker run -p 8069:8069 --name odoo --link db:db -t odoo ```
However, it should still be possible to run custom command (like `ls /`).
Defaulting USER to postgres does not make sense as odoo prevents
creating a database with the user `postgres` (however, there's a bug
that allows it when set by environment variable, but still it does not
work later because Odoo does not use the environment variable to find
the databases in the `list_dbs` method).
Defaulting PASSWORD to odoo makes sense because it's what we set in
the documentationm and is even mandatory since we chose to pass the pg
connections parameters[1] and we did not set a default value for it.
[1] a3d207f2d4
Do not assume that Odoo will handle correctly the PG* environment
variables, because it won't.
We also rename the PG* variables in order to avoid confusion since we do
not export them anymore.
The entry points of the Odoo docker images require the presence of the
following environment variables:
- DB_PORT_5432_TCP_ADDR
- DB_PORT_5432_TCP_PORT
- DB_ENV_POSTGRES_USER
- DB_ENV_POSTGRES_PASSWORD
We use them to set the PGHOST, PGPORT, PGUSER and PGPASSWORD environment
variable that will then be read by Odoo in order to connect to the
database server.
As the first ones are automatically created by Docker when we use the linking
system, it's not possible to run Odoo without the linking system and,
for example, with Docker compose.
In order to make it work with Docker compose and keep the backward
compatibility with the linking system, we have to provide sane
fallbacks to the assignation of the PGHOST, PGPORT, PGUSER and
PGPASSWORD environment variable.
We do that in this commit by defaulting the assignation of the postgres
host to "db" and the port to "5432" because, if you follow our image
documentation, that's what you get. We also introduce the handling of
two others environment variable in the Odoo entry point: POSTGRES_USER
and POSTGRES_PASSWORD. They will be used as fallbacks for
DB_ENV_POSTGRES_USER and DB_ENV_POSTGRES_PASSWORD.
ie python-gevent and psycogreen. As psycogreen is not packaged in
debian jessie we have to install it with pip. As python-gevent is in the
recommanded packaged of odoo and we don't install them, we install it
explicitely.
* Odoo version 10 created. Release 20161007.
* Fixed old path.
* Fixed startup command.
* Changed to new naming convention and environment variables.
Closes#75
Moving the extra addons folder before the odoo addons folder in the addons_path
allows to use custom implementation of a given addon (if there are two addons
with the same name, one in extra-addons, the other in openerp/addons, the first
one will take priority over the second one which will simply be ignored).
Set auto-reload to True in the default configuration so that update of
python and xml files does not need a restart of the server.
auto-reload options requires python-pyinotify to be installed.