我目前正在使用 kitchen-docker
驱动程序来运行我的测试厨房
,以加快我们的自动化 Recipe 测试速度。
但是,玩了一段时间后,我发现如果任何配方中涉及 service
资源,则每次厨房运行都会失败,如果我尝试停止/启动/重新启动服务,这是容器内不允许,运行失败。
如果我使用kitchen login
进入容器,每次我尝试使用systemctl
...我都会收到以下错误消息:
[kitchen@17c054a76e8f ~]$ sudo systemctl restart foo
Failed to get D-Bus connection: Operation not permitted
有什么办法可以解决这个问题吗?我目前正在使用 .kitchen.yml
中的选项 privileged: true
运行此镜像。
最佳答案
由于我还没有迁移到 kitchen-dokken,这里是我用来在 kitchen-docker 中启用 systemd 的配置:
driver:
name: docker
run_command: /bin/systemd
cap_add:
- SYS_ADMIN
volume:
- /sys/fs/cgroup
警告:我假设您熟悉赋予容器 SYS_ADMIN
功能的含义(相当于主机系统上的 root,请阅读 more)。
关于docker - 厨房-Docker 和 Systemd,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42852457/