Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/afbjorklund/podman-full


https://github.com/afbjorklund/podman-full

debian podman ubuntu

Last synced: 24 days ago
JSON representation

Awesome Lists containing this project

README

        

Build script for building

* conmon
* crun

* netavark
* catatonit

Installed files for `podman-full`, excluding documentation:

* [podman-files.txt](./podman-files.txt)

----

Build script adapted from

* containerd
* runc

* cni-plugins
* tini

Installed files for `nerdctl-full`, excluding documentation:

* [nerdctl-files.txt](./nerdctl-files.txt)

----

## Building

The default `make` target will build an image, and export it.

You can set which engine to use, with the `DOCKER` variable.

## Installation

Normally in [lima](https://lima-vm.io), the archive is just extracted on the lima:

`sudo tar Cxzf /usr/local nerdctl-full.tgz`

### Dependencies

Some dependencies are required, with `sudo apt install`.

* [dependencies.txt](./dependencies.txt)

### Configuration

You are required to add a `/etc/containers/registries.conf`.

```
Error: [...] no containers-registries.conf(5) was found
```

As well as `/etc/containers/policy.json` configuration file.

```
Error: open /etc/containers/policy.json: no such file or directory
```

*

### Shortnames

You might also want to add a `shortnames.conf` configuration:

`/etc/containers/registries.conf.d/000-shortnames.conf`

Otherwise you will get an interactive question, such as:

```
? Please select an image:
▸ docker.io/library/alpine:latest
quay.io/alpine:latest
```

*

### User Session

Need to make sure to have `newuidmap` and a dbus session.

```
exec: "newuidmap": executable file not found in $PATH
```

```
WARN[0000] The cgroupv2 manager is set to systemd
but there is no systemd user session available
WARN[0000] Falling back to --cgroup-manager=cgroupfs
```

They are available as packages, but needs to be started.

```
sudo apt-get install -y uidmap dbus-user-session
```

```
systemctl --user enable --now dbus
```

### Networking

Need to install `iptables`, for network namespaces.

```
sudo apt-get install -y iptables
```

## Testing

Template based on `debian`:

* [lima.yaml](./lima.yaml)

Assuming that lima is installed, and archive is built:

```shell
mkdir -p /tmp/lima
cp policy.json registries.conf podman-full-4.9.3-linux-amd64.tar.gz /tmp/lima
limactl start ./lima.yaml
export LIMA_INSTANCE=lima

lima sudo mkdir /etc/containers
lima sudo cp /tmp/lima/policy.json /tmp/lima/registries.conf /etc/containers
lima sudo tar Cxzf /usr/local /tmp/lima/podman-full-4.9.3-linux-amd64.tar.gz
lima systemctl --user enable --now podman.socket
```

After that, you can add forwarding of the `podman.sock`:

```yaml
portForwards:
- guestSocket: "/run/user/{{.UID}}/podman/podman.sock"
hostSocket: "{{.Dir}}/sock/podman.sock"
```

And run podman remotely:

`podman.lima version`

You can also run it locally:

`lima podman version`