为什么 QDir::exists() 在 docker 容器中不起作用?
Why QDir::exists() do not work in docker container?
在我的主机 KDE Neon 机器中执行的以下程序(最新升级到 18.04(输出按预期Hello World! 1
,而当从使用 Dockerfile 构建并与sudo docker run -it qdir
一起运行的 Docker 容器执行时,它输出Hello World! 0
。
QDir是否需要运行dbus或其他服务?
C++程序:
#include <QDir>
#include <iostream>
int main(int argc [[maybe_unused]], char** argv [[maybe_unused]])
{
QDir d("/");
std::cout << "Hello World! " << d.exists() << std::endl;
return 0;
}
Dockerfile:
FROM kdeneon/plasma:user-lts
USER root
RUN apt-get install -y qt5-default
WORKDIR /
COPY qdir /
CMD /bin/bash
编辑,CMakeLists.txt以构建程序:
project(qdir)
cmake_minimum_required(VERSION 2.8.12 FATAL_ERROR)
set(QT_MIN_VERSION "5.3.0")
find_package(Qt5 ${QT_MIN_VERSION} CONFIG REQUIRED COMPONENTS Core)
include_directories(${Qt5Core_INCLUDE_DIRS} ${CMAKE_CURRENT_BINARY_DIR})
set(qdir_SRCS main.cpp)
add_executable(qdir ${qdir_SRCS})
target_link_libraries(qdir ${Qt5Core_LIBRARIES})
install(TARGETS qdir RUNTIME DESTINATION bin)
编辑2:我创建了一个github项目,重新组合了上述所有内容。要重现此问题,如果您有Qt SDK,cmake,ninja和docker,只需执行以下操作:
git clone https://github.com/kleag/qdirtest
cd qdirtest
./test.sh
这是我得到的输出:
$ ./test.sh
[…]
Successfully built f710cbb7a3c9
Successfully tagged qdir:latest
Hello World! 1
Hello World! 0
我从 KDE 论坛上的 apachelogger 那里得到了答案:
由于5.10 Qt使用了一些新的系统调用。其中之一是 statx 最后我检查了系统调用没有在 docker 中列入白名单,也没有 它可以列入白名单,因为用于上游码头工人的libseccomp Build太旧了,不知道Statx是什么。机会是 你看到的问题是。如果是这样,seccomp=unlimited将使它工作。
相关文章:
- 我的神经网络不起作用 [XOR 问题]
- 在C++程序中输入的文本文件将不起作用,除非文本被复制和粘贴
- C++映射:具有自定义类的运算符[]不起作用(总是返回0)
- C++为什么尽管我调用了void函数,它却不起作用
- 为什么在保护模式下继承升级不起作用
- 循环在计数器中不起作用
- 在其他文件中创建类时在 c++ 项目中不起作用
- Visual studio代码重构似乎不起作用(例如,重命名符号-f2)
- 为什么二进制搜索在我的测试中不起作用
- 我的代码中有错误吗?使用BGI图形的C++代码对我不起作用
- 为什么 const std::p air<K,V>& 在 std::map 上基于范围的 for 循环不起作用?
- 带有指定长度字符* 参数的 std::regex_search 在 VS2017 中不起作用?
- Bjarne Stroustrup Book - std_lib_facilities.h - 不起作用(未知类型名称)
- 为什么简单的算术减法在"if"条件下不起作用?
- 为什么Stroustup书中的has_f不起作用
- 你能检查一下为什么在这个代码中从链接列表中删除项目不起作用吗
- 嵌套While循环不起作用(C++问题)
- C++Matching Brackets 2解决方案不起作用
- 为什么 QDir::exists() 在 docker 容器中不起作用?
- Opencv 链接 CMAKE 不起作用 Ubuntu 16.04 Docker