简体   繁体   English

在docker run上使用--user选项的Docker Entrypoint错误

[英]Docker Entrypoint Error with --user option on docker run

I discover this problem with a docker run when i want just that my container write as not root files. 当我只想将我的容器写为非根文件时,我发现docker run出现此问题。

When i use this kind of command (where the entrypoint is overided) i don't have any problem : 当我使用这种命令(入口点被覆盖)时,我没有任何问题:

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

It's work and i have access to the container with I have no name! 它正在工作,我无法使用该容器进入I have no name! user account x) 用户帐户x)

But, without overide of the entrypoint like here : 但是,在不覆盖此处入口点的情况下:

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

I have this error : 我有这个错误:

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'

Edit 1 编辑1

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

Ask to me for further information. 向我询问更多信息。

解决了在DockerFile上添加此问题

RUN useradd MYUSERNAME --uid 1001

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM