Builds Docker image, runs it, and kills
This small Ruby library helps building temporary Docker images, runs Docker containers, and cleans up afterwards — it may be convenient for automated tests (for example, with Minitest):
class MyTest < Minitest::Test
def test_prints_hello_world
stdout = donce(
dockerfile: '
FROM ubuntu
CMD echo "Hello, world!"
'
)
assert_equal("Hello, world!\n", stdout)
end
end
It's possible to run Docker image in a background mode too:
stdout = donce(image: 'ubuntu', command: 'sleep 9999') do |id|
# The "id" is the container id
# The "donce_host()" is the hostname of it
end
That's it.
How to contribute
Read these guidelines. Make sure you build is green before you contribute your pull request. You will need to have Ruby 3.2+ and Bundler installed. Then:
bundle update
bundle exec rake
If it's clean and you don't see any error messages, submit your pull request.