Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/docker/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
&引用;logname:无登录名“;运行dpkg-i时在Docker容器内_Docker_Dpkg - Fatal编程技术网

&引用;logname:无登录名“;运行dpkg-i时在Docker容器内

&引用;logname:无登录名“;运行dpkg-i时在Docker容器内,docker,dpkg,Docker,Dpkg,我需要在Ubuntu18.04 Docker容器中安装SDK包,但我经常遇到这个问题: theuser@e9fa4f39e0f0:/src/spinnaker$ sudo dpkg -i libspinnaker_2.2.0.48_arm64.deb (Reading database ... 52013 files and directories currently installed.) Preparing to unpack libspinnaker_2.2.0.48_arm64.deb

我需要在Ubuntu18.04 Docker容器中安装SDK包,但我经常遇到这个问题:

theuser@e9fa4f39e0f0:/src/spinnaker$ sudo dpkg -i libspinnaker_2.2.0.48_arm64.deb
(Reading database ... 52013 files and directories currently installed.)
Preparing to unpack libspinnaker_2.2.0.48_arm64.deb ...
Unpacking libspinnaker (2.2.0.48) over (2.2.0.48) ...
logname: no login name
dpkg: warning: old libspinnaker package post-removal script subprocess returned error exit status 1
dpkg: trying script from the new package instead ...
logname: no login name
dpkg: error processing archive libspinnaker_2.2.0.48_arm64.deb (--install):
 new libspinnaker package post-removal script subprocess returned error exit status 1
logname: no login name
dpkg: error while cleaning up:
 new libspinnaker package post-removal script subprocess returned error exit status 1
Errors were encountered while processing:
 libspinnaker_2.2.0.48_arm64.deb

我尝试了各种解决方法,设置USER、SUDO_USER、LOGNAME,使用“-u”开关将容器运行到我的uid/gid,所有这些方法都会得到相同的LOGNAME错误。有解决方法吗?

我对最新的spinnaker api版本也有同样的问题

问题是postinst调用logname来查找主目录的位置,并安装一些配置文件。在docker构建上下文中,没有登录的用户

我骇人听闻的做法是用“echo root”覆盖logname可执行文件。 e、 g:

spinnaker.dat的内容(为了避免从preinst脚本中得到提示)包括:


你能包括你的图片的Dockerfile吗?看起来您正试图在容器临时文件系统中安装软件包,一旦容器退出,文件系统就会丢失;您几乎总是希望在映像构建期间执行此操作。
# Install spinnaker sdk https://www.flir.com/support-center/iis/machine-vision/downloads/spinnaker-sdk-and-firmware-download/
COPY external/spinnaker/* spinnaker/
# Pre-answer the apt install prompts
COPY spinnaker.dat .
RUN cat spinnaker.dat >> /var/cache/debconf/config.dat
# Fake out logname (no login context in docker build)
RUN echo "echo root" > /usr/bin/logname
# Install other postinst dependencies
RUN DEBIAN_FRONTEND=noninteractive apt install -y iputils-ping wget
RUN DEBIAN_FRONTEND=noninteractive apt install -y --no-install-recommends ./spinnaker/lib*.deb && rm -rv spinnaker
Name: libspinnaker/accepted-flir-eula
Template: libspinnaker/accepted-flir-eula
Value: true
Owners: libspinnaker
Flags: seen

Name: libspinnaker/error-flir-eula
Template: libspinnaker/error-flir-eula
Owners: libspinnaker

Name: libspinnaker/present-flir-eula
Template: libspinnaker/present-flir-eula
Value: 
Owners: libspinnaker
Flags: seen