Skip to content
This repository has been archived by the owner on Apr 11, 2024. It is now read-only.

deversmann/podman-box

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

11 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

⚠️ This Project is archived as podman-machine exists ⚠️

podman-box

CI

Description

"Containers are Linux!" So how does Docker run on a Mac? Well, the dirty little secret is: while you aren't looking, it spins up a VM in the background running Linux and hosting your containers.

This project aims to make it easy to do the same, but using Podman (and other open-source tools) instead.

Requirements

All three can be installed using Homebrew:

brew cask install vagrant virtualbox
brew install podman 

From the project directory, start the VM

vagrant up

After the VM is running the issue following commands to configure your terminal session to use the remote:

export CONTAINER_SSHKEY=$PWD/.vagrant/machines/default/virtualbox/private_key
export CONTAINER_HOST=ssh://[email protected]:2222/run/user/1000/podman/podman.sock
podman system connection add vagrant --identity $CONTAINER_SSHKEY $CONTAINER_HOST

⚠️ The port in the code snip above assumes that you have no other vagrant VMs running, but the vagrant up command will output the right version of the above.

If this is the only connection you've added to podman, it will be the default and you can use it directly in all podman commands. If you've added other connections, then you know how to select this one.

Pros and Cons

Pros Cons
Easy to get container workflows going from the mac terminal Doesn't handle forwarding ports back to the mac

Notes to not forget

(Things not readily obvious that took forever to figure out the first time... and maybe the second too)

  • An error like this, Error: cannot connect to the Podman socket, please verify that Podman REST API service is running: server API version is too old. Client "3.0.0" server "2.0.0" means that there is an incompatible version mismatch between the "local" podman and the "remote" podman. Podman seems to like to frequently completely break compatibility between versions.
  • The enable-linger directive in the playbook is really important! It's what allows the user-defined socket to remain available when the user is not logged in.
  • Some pretty decent info lives here: https://github.com/containers/podman/blob/master/docs/tutorials/mac_win_client.md

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published