circleci-cli icon indicating copy to clipboard operation
circleci-cli copied to clipboard

Podman support

Open devurandom opened this issue 5 years ago • 2 comments
trafficstars

  • [x] I have read Contribution Guidelines.
  • [x] I have checked for similar issues and haven't found anything relevant.
  • [x] This is not a security issue (which should be reported here: https://circleci.com/security/)

Do you want to request a feature or report a bug?

Feature

What is the current behavior?

Since Docker is not compatible with modern systems (those running systemd 243 and newer, cf. docker/cli#2104) I run Podman (version 2.0.5) on my system, which is CLI-compatible with Docker if called as docker:

❯ ln -s /usr/bin/podman ~/bin/docker
❯ docker info -f json | jq .version
{
  "APIVersion": 1,
  "Version": "2.0.5",
  "GoVersion": "go1.15",
  "GitCommit": "",
  "BuiltTime": "Mon Aug 31 20:50:43 2020",
  "Built": 1598899843,
  "OsArch": "linux/amd64"
}

However, this is not sufficient to run CircleCI CLI:

❯ circleci build
Docker image digest: sha256:68c7dc342166aad7a45bd9d76ca2dd9015a3161986cf5bf2693fb250b4d11fba
Error: error checking path "/var/run/docker.sock": stat /var/run/docker.sock: no such file or directory

Understandably this does not work, since CircleCI CLI / Picard will try to issue commands to the Docker daemon via its socket, while Podman does not have a daemon (and thus no socket).

What is the expected behavior?

It would be nice if CircleCI CLI had an option to use Podman instead of Docker, both for Picard and also as an executor.

https://github.com/containers/podman/issues/4056#issuecomment-683285209 might provide some hints on how to run containers within containers using Podman.

Which version of the CLI and OS are you using?

I am using Gentoo Linux.

❯ circleci version
0.1.9578+cf6a918 (release)
❯ circleci diagnostic

---
CircleCI CLI Diagnostics
---
Debugger mode: false
Config found: /home/dschridde/.circleci/cli.yml
API host: https://circleci.com
API endpoint: graphql-unstable
OK, got a token.
Trying an introspection query on API... 
Ok.

Did this work in previous versions?

I did not try a current kernel and systemd with an older version of circleci.

devurandom avatar Sep 16 '20 21:09 devurandom

What is the current behavior?

On a Fedora 32 system I see:

❯ circleci build
Docker image digest: sha256:a5b42b7078a01dc90449e50b10887d5ae2c3263cbce3db9aae800e63cf1d2f3b
docker: Error response from daemon: OCI runtime create failed: this version of runc doesn't work on cgroups v2: unknown.

Which version of the CLI and OS are you using?

I am using Fedora 32.

❯ circleci version
0.1.9578+cf6a918 (release)
❯ circleci diagnostic

---
CircleCI CLI Diagnostics
---
Debugger mode: false
Config found: /home/dschridde/.circleci/cli.yml
API host: https://circleci.com
API endpoint: graphql-unstable
OK, got a token.
Trying an introspection query on API... 
Ok.
Hello, <NAME>.

devurandom avatar Sep 23 '20 06:09 devurandom

Hi @devurandom , thanks for your suggestion. 
I will check internally with the team, and get back to you asap

abdelDriowya avatar May 11 '23 14:05 abdelDriowya