0

我正在尝试在 systemd-nspawn 容器上运行 concourse CI,但我不能。我一直在寻找这个问题,但没有发现任何有用的东西。我将尝试解释我的工作:

  1. 首先,我制作了一个 .raw 文件,其中包含我需要的所有内容(使用 mkosi)。
  2. 我使用这个 .raw 文件(sudo systemd-nspawn -bi concourse.raw --capability=all)启动了一个 systemd 容器。concourse web 和 worker 服务启动时没有问题。我登录到 127.0.0.1:8080 并添加我的第一个管道(HelloWorld)。然后,当我运行 HelloWorld 管道时,我收到此错误:

    runc create:退出状态1:container_linux.go:264:启动容器进程导致“process_linux.go:261:为进程应用cgroup配置导致\”mkdir /sys/fs/cgroup/cpuset/8638cb95-bbbc-4719-4509- 5a1789fb100a: 只读文件系统\""

这是此错误的 journalctl 日志:concourse_worker 日志

  1. 我添加 -bind 选项并重试(sudo systemd-nspawn -bi concourse.raw --capability=all --bind=/sys/fs/cgroup)。我认为添加 --bind 选项我修复了第一个错误,因为现在 concourse 的容器能够提取 docker 图像,但我得到了其他错误:

    runc create:退出状态1:container_linux.go:264:启动容器进程导致“process_linux.go:339:容器初始化导致\”rootfs_linux.go:69:创建设备节点导致\\“没有这样的文件或目录\\” \""

这是此错误的 journalctl 日志:concourse_worker log 2

我的系统:

$ 猫 /etc/问题

Ubuntu 16.04.2 LTS \n \l

$ unname -a

Linux nikoPC 4.4.0-47-generic #68-Ubuntu SMP 2016 年 10 月 26 日星期三 19:39:52 UTC x86_64 x86_64 x86_64 GNU/Linux

$ systemctl --版本

systemd 229 +PAM +AUDIT +SELINUX +IMA +APPARMOR +SMACK +SYSVINIT +UTMP +LIBCRYPTSETUP +GCRYPT +GNUTLS +ACL +XZ -LZ4 +SECCOMP +BLKID +ELFUTILS +KMOD -IDN

大厅容器:

猫 /etc/问题

Ubuntu Artful Aardvark(开发分支)\n \l

systemctl --版本

systemd 234 +PAM +AUDIT +SELINUX +IMA +APPARMOR +SMACK +SYSVINIT +UTMP +LIBCRYPTSETUP +GCRYPT +GNUTLS +ACL +XZ +LZ4 +SECCOMP +BLKID +ELFUTILS +KMOD -IDN2 +IDN 默认层次结构=混合

我不知道如何解决这个错误。可以在 systemd 容器上运行 concourse CI 吗?

谢谢。

4

1 回答 1

0

你不能只使用一个 docker-container 吗?

理想情况下,您使用此处描述的 docker-compose https://concourse-ci.org/docker-repository.html

于 2017-09-29T09:47:23.163 回答