如何使用额外的 pip 包正确扩展基础 odoo docker 图像?

How to extend base odoo docker image correctly with additional pip packages?

我需要扩展基本的 odoo 图像安装一些 python 包。我有一个与 odoo docker 图像相关的问题。

我尝试编写自己的继承 odoo:latest 的 Dockerfile 并在其上安装我的 pip 包,但它对我不起作用。问题是在构建阶段一切似乎都工作得很好,但我在 pip list 输出中看不到我的模块。

这是我的 Dockerfile

FROM odoo:latest

RUN pip3 install remote-pdb

我已经用那个命令构建了我的镜像

docker build -f Dockerfile-odoo -t odoo-extended .

并有下一个输出

Sending build context to Docker daemon  2.993GB
Step 1/2 : FROM odoo:latest
 ---> 027465548874
Step 2/2 : RUN pip3 install remote-pdb
 ---> Running in ce7e075dacf4
Collecting remote-pdb
  Downloading https://files.pythonhosted.org/packages/72/4d/976e45067b791c0012ee060ba615a95122ba4152dce2cf5d4f57847eef84/remote_pdb-2.0.0-py2.py3-none-any.whl
Installing collected packages: remote-pdb
Successfully installed remote-pdb-2.0.0
Removing intermediate container ce7e075dacf4
 ---> 9e315e30ccbb
Successfully built 9e315e30ccbb
Successfully tagged odoo-extended:latest

运行 带有我的新图像的容器 docker run -it --rm odoo-extended bash 并试图 pip3 list 没有显示我的 remote-pdb

DEPRECATION: The default format will switch to columns in the future. You can use --format=(legacy|columns) (or define a format=(legacy|columns) in your pip.conf under the [list] section) to disable this warning.
argh (0.26.2)
Babel (2.3.4)
beautifulsoup4 (4.5.3)
chardet (2.3.0)
decorator (4.0.11)
docopt (0.6.2)
docutils (0.13.1)
feedparser (5.1.3)
gevent (1.1.2)
greenlet (0.4.11)
html2text (2016.9.19)
Jinja2 (2.8)
libsass (0.12.3)
lxml (3.7.1)
Mako (1.0.6)
MarkupSafe (0.23)
mock (2.0.0)
num2words (0.5.10)
odoo (12.0.post20190816)
ofxparse (0.14)
passlib (1.7.0.post20170423015548)
pathtools (0.1.2)
pbr (1.10.0)
Pillow (4.0.0)
pip (9.0.1)
psutil (5.0.1)
psycopg2 (2.7.6.1)
pydot (1.0.29)
pyldap (2.4.25.1)
pyparsing (2.1.10)
PyPDF2 (1.26.0)
pyserial (3.2.1)
python-dateutil (2.5.3)
python-stdnum (1.5)
pytz (2016.7)
pyusb (1.0.0)
PyYAML (3.12)
qrcode (5.3)
reportlab (3.3.0)
requests (2.12.4)
roman (2.0.0)
setuptools (33.1.1)
six (1.10.0)
suds-jurko (0.7.dev0)
urllib3 (1.19.1)
vatnumber (1.2)
vobject (0.9.3)
watchdog (0.8.3)
Werkzeug (0.11.15)
XlsxWriter (0.9.6)
xlwt (1.3.0)

我希望安装模块,但不知道为什么我看不到它。扩展其他图像效果很好。有什么想法吗?

似乎 docker 基本图像用户是 odoo。试试这个

FROM odoo:latest
user root
RUN pip3 install remote-pdb
user odoo

然后运行并验证

docker run -it --rm odoo-extended bash -c "pip3 list | grep remote-pdb"