【问题标题】:Docker Entrypoint Error with --user option on docker rundocker run 上带有 --user 选项的 Docker 入口点错误
【发布时间】:2019-01-03 14:27:04
【问题描述】:

当我希望我的容器写为非根文件时,我发现 docker run 存在这个问题。

当我使用这种命令(入口点被覆盖)时,我没有任何问题:

docker run -u `id -u $USER` --entrypoint  bash -it --rm -v somepath:somepathincontainer IMAGE

它工作正常,我可以使用I have no name! 用户帐户 x) 访问容器

但是,没有像这里这样的入口点的覆盖:

docker run -u `id -u $USER` -it --rm -v somepath:somepathincontainer IMAGE

我有这个错误:

Traceback (most recent call last):
  File "/usr/local/bin/readmapper", line 4, in <module>
__import__('pkg_resources').run_script('MYTOOL==1.0.1', 'MYTOOL')
  File "/usr/lib/python3/dist-packages/pkg_resources/__init__.py", line 719, in run_script
    self.require(requires)[0].run_script(script_name, ns)
  File "/usr/lib/python3/dist-packages/pkg_resources/__init__.py", line 1504, in run_script
    exec(code, namespace, namespace)
  File "/usr/local/lib/python3.5/dist-packages/MYTOOL-1.0.1-py3.5.egg/EGG-INFO/scripts/MYTOOL", line 5, in <module>
    from MYTOOL import FUNC1, FUNC2, FUNC3
  File "/usr/local/lib/python3.5/dist-packages/MYTOOL-1.0.1-py3.5.egg/MYTOOL/FUNC3.py", line 6, in <module>
    import pandas as pd
  File "/usr/local/lib/python3.5/dist-packages/pandas/__init__.py", line 42, in <module>
    from pandas.core.api import *
  File "/usr/local/lib/python3.5/dist-packages/pandas/core/api.py", line 10, in <module>
    from pandas.core.groupby.groupby import Grouper
  File "/usr/local/lib/python3.5/dist-packages/pandas/core/groupby/__init__.py", line 2, in <module>
    from pandas.core.groupby.groupby import (
  File "/usr/local/lib/python3.5/dist-packages/pandas/core/groupby/groupby.py", line 49, in <module>
    from pandas.core.frame import DataFrame
  File "/usr/local/lib/python3.5/dist-packages/pandas/core/frame.py", line 74, in <module>
    from pandas.core.series import Series
  File "/usr/local/lib/python3.5/dist-packages/pandas/core/series.py", line 80, in <module>
    import pandas.plotting._core as gfx
  File "/usr/local/lib/python3.5/dist-packages/pandas/plotting/__init__.py", line 11, in <module>
    from pandas.plotting._core import boxplot
  File "/usr/local/lib/python3.5/dist-packages/pandas/plotting/_core.py", line 45, in <module>
    from pandas.plotting import _converter
  File "/usr/local/lib/python3.5/dist-packages/pandas/plotting/_converter.py", line 8, in <module>
    import matplotlib.units as units
  File "/usr/lib/python3/dist-packages/matplotlib/__init__.py", line 1133, in <module>
    rcParams = rc_params()
  File "/usr/lib/python3/dist-packages/matplotlib/__init__.py", line 967, in rc_params
    fname = matplotlib_fname()
  File "/usr/lib/python3/dist-packages/matplotlib/__init__.py", line 796, in matplotlib_fname
    configdir = _get_configdir()
  File "/usr/lib/python3/dist-packages/matplotlib/__init__.py", line 649, in _get_configdir
    return _get_config_or_cache_dir(_get_xdg_config_dir())
  File "/usr/lib/python3/dist-packages/matplotlib/__init__.py", line 626, in _get_config_or_cache_dir
    return _create_tmp_config_dir()
  File "/usr/lib/python3/dist-packages/matplotlib/__init__.py", line 555, in _create_tmp_config_dir
    tempdir = os.path.join(tempdir, 'matplotlib-%s' % getpass.getuser())
  File "/usr/lib/python3.5/getpass.py", line 170, in getuser
    return pwd.getpwuid(os.getuid())[0]
KeyError: 'getpwuid(): uid not found: 1001'

编辑 1

I have no name!@c9368637178d:/$ id
uid=1001 gid=0(root) groups=0(root)

请向我询问更多信息。

【问题讨论】:

  • 错误信息似乎很清楚:您的任意用户 ID 不在容器中的 /etc/passwd 中。
  • 你说得对 =)

标签: python docker docker-entrypoint docker-run


【解决方案1】:

在 DockerFile 上添加这个解决了

RUN useradd MYUSERNAME --uid 1001

【讨论】:

    猜你喜欢
    • 2021-10-09
    • 2020-07-09
    • 1970-01-01
    • 2019-05-01
    • 2017-07-13
    • 2021-02-04
    • 2020-01-08
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多