Docker容器内P4实例run_login()后password属性未更新致命令失败
Docker容器中P4Python调用
run_login()后password属性未同步问题 在Docker容器内,对已连接的P4实例调用run_login()方法时,ticket文件能正常更新,但实例的password属性未同步更新,导致后续需要有效ticket的命令(如p4.run_fstat())执行失败。容器外执行相同操作时,ticket文件更新的同时password属性会自动同步为ticket值。
容器内已正确配置以下P4环境变量:
- P4CONFIG
- P4TRUST
- P4TICKETS
手动将p4.password修改为ticket文件中的最新值后,p4.run_fstat()可正常运行。且容器内外的p4python与Python版本完全一致。
复现代码示例
(----) bash-4.4# python Python 3.12.5 (main, Aug 14 2024, 05:08:31) [Clang 18.1.8 ] on linux Type "help", "copyright", "credits" or "license" for more information. >>> import P4 >>> p4 = P4.P4() >>> p4.password '<P4CONFIG defined password>' >>> p4.connect() P4 [----] connected >>> p4.run_login() [{'User': '----', 'TicketExpiration': '----'}] >>> p4.password '<P4CONFIG defined password>' >>> p4.run_fstat("//barf") Traceback (most recent call last): File "<stdin>", line 1, in <module> File "/----/lib/python3.12/site-packages/P4.py", line 530, in <lambda> return lambda *args, **kargs: self.run(cmd, *args, **kargs) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/----/lib/python3.12/site-packages/P4.py", line 647, in run raise e File "/----/lib/python3.12/site-packages/P4.py", line 641, in run result = P4API.P4Adapter.run(self, *flatArgs) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ P4.P4Exception: Perforce password (P4PASSWD) invalid or unset. >>> p4.run_fstat("//valid/depot/path.txt") Traceback (most recent call last): File "<stdin>", line 1, in <module> File "/----/lib/python3.12/site-packages/P4.py", line 530, in <lambda> return lambda *args, **kargs: self.run(cmd, *args, **kargs) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/----/lib/python3.12/site-packages/P4.py", line 647, in run raise e File "/----/lib/python3.12/site-packages/P4.py", line 641, in run result = P4API.P4Adapter.run(self, *flatArgs) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ P4.P4Exception: Perforce password (P4PASSWD) invalid or unset. >>>
内容的提问来源于stack exchange,提问作者hz3d
相关产品推荐
相关产品推荐

