@@ -35,18 +35,21 @@ module BerkeleyLibrary
3535
3636 it 'is true when /.dockerenv exists' do
3737 mock_dockerenv
38+ mock_podman_env ( false )
3839 expect ( BerkeleyLibrary ::Docker . running_in_container? ) . to be true
3940 end
4041
4142 it 'is true when /proc/1/cgroup is docker-like' do
4243 mock_dockerenv ( false )
4344 mock_init_cgroup
45+ mock_podman_env ( false )
4446 expect ( BerkeleyLibrary ::Docker . running_in_container? ) . to be true
4547 end
4648
4749 it 'is false when /proc/1/cgroup is traditional' do
4850 mock_dockerenv ( false )
4951 mock_init_cgroup ( false )
52+ mock_podman_env ( false )
5053 expect ( BerkeleyLibrary ::Docker . running_in_container? ) . to be false
5154 end
5255
@@ -55,6 +58,21 @@ module BerkeleyLibrary
5558 expect ( File )
5659 . to receive ( :open ) . with ( '/proc/1/cgroup' )
5760 . and_raise ( Errno ::ENOENT )
61+ mock_podman_env ( false )
62+ expect ( BerkeleyLibrary ::Docker . running_in_container? ) . to be false
63+ end
64+
65+ it 'is true when container=podman is present in environment' do
66+ mock_dockerenv ( false )
67+ mock_init_cgroup ( false )
68+ mock_podman_env ( true )
69+ expect ( BerkeleyLibrary ::Docker . running_in_container? ) . to be true
70+ end
71+
72+ it 'is false when container=podman is not present in environment' do
73+ mock_dockerenv ( false )
74+ mock_init_cgroup ( false )
75+ mock_podman_env ( false )
5876 expect ( BerkeleyLibrary ::Docker . running_in_container? ) . to be false
5977 end
6078
@@ -72,6 +90,12 @@ def mock_init_cgroup(dockerish = true)
7290 . and_return (
7391 StringIO . new ( dockerish ? DOCKERISH_CGROUP : TRADITIONAL_CGROUP ) )
7492 end
93+
94+ def mock_podman_env ( exists = true )
95+ allow ( ENV )
96+ . to receive ( :fetch ) . with ( 'container' , '' )
97+ . and_return ( exists ? 'podman' : '' )
98+ end
7599 end
76100 end
77101end
0 commit comments