我目前正在使用kitchen-docker驱动程序来运行我的test kitchen,以加快我们的自动化菜谱测试速度。

但是,玩了一段时间后,我发现如果任何食谱中都包含service资源,则每次厨房运行都会失败,如果我尝试停止/启动/重新启动服务,则该操作在容器内是不允许的,并且运行失败。

如果我使用kitchen login进入容器,每次尝试使用systemctl ...时,我都会收到以下错误消息:

[kitchen@17c054a76e8f ~]$ sudo systemctl restart foo
Failed to get D-Bus connection: Operation not permitted

有没有什么办法解决这一问题?我目前正在使用privileged: true中的.kitchen.yml选项运行此图像。

最佳答案

由于我还没有转移到kitchen-dokken,这是我用来在kitchen-docker内部启用systemd的配置:

driver:
  name: docker
  run_command: /bin/systemd
  cap_add:
    - SYS_ADMIN
  volume:
    - /sys/fs/cgroup

警告:我假设您熟悉赋予容器SYS_ADMIN功能的含义(在主机系统上等效于根,请阅读more)。

关于docker - Kitchen-Docker和Systemd,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/42852457/

10-13 02:32