如何解决如何将参数传递给在 Docker 容器中运行的程序?
我是 Docker 的新手,我想使用 odoo Docker 映像。 我想更新模块,通常我会重新启动服务器并重新启动它
odoo -u module_name
但我找不到如何使用 Docker 容器执行此操作。 换句话说,我想使用特定参数在容器内启动应用程序。
我想做这样的事情
docker start odoo -u module_name
怎么做?
解决方法
您可以使用 docker-compose 并在 Odoo 服务中添加以下命令:
tty: true
command: -u target_modules_to_update
如果您没有 docker-compose 文件,请告诉我,我会提供帮助。
,@tjwnuk 您可以在名为 docker-compose.yml 的文件中添加以下代码:
version: '2'
services:
web:
image: odoo:version_number_here
depends_on:
- db
ports:
- "target_port_here:8069"
tty: true
command: -u module_name -d database_name or any config paramter you need to add
volumes:
- odoo:/var/lib/odoo
- ./config/odoo.config:/etc/odoo/odoo.conf
- ./addons-enterprise:/mnt/enterprise-addons
- ./custom_addons:/mnt/extra-addons
restart: always
db:
image: postgres:version_number_here
ports:
- "1432:5432"
environment:
- POSTGRES_DB=db_name
- POSTGRES_USER=db_user
- POSTGRES_PASSWORD=db_password
volumes:
- "odoo-dbs:/var/lib/postgresql/data/pgdata"
restart: always
volumes:
odoo:
odoo-dbs:
你应该有那些目录:
1- config 在这个目录里面你应该有文件名 odoo.config 你也可以在这里添加任何配置
2- addons-enterprise
3- custom_addons
最后,如果你不安装 docker-compose 你可以在下面运行这个命令:
apt 安装 docker-compose
我希望这个回答能帮助你和任何有同样情况的人。
,或者切换到容器并启动另一个 Odoo 实例:
docker exec -ti <odoo_container> bash
odoo -c <path_to_config> -u my_module -d my_database --max-cron-threads=0 --stop-after-init --no-xmlrpc
或切换到数据库容器并将模块设置为状态 to upgrade
:
docker exec -ti <database_container> psql -U <odoo_db_user> <db_name>
UPDATE ir_module_module set state = 'to upgrade' where name = 'my_module';
使用数据库方式需要重启odoo。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。