Huge News!Announcing our $40M Series B led by Abstract Ventures.Learn More
Socket
Sign inDemoInstall
Socket

testcontainers-compose

Package Overview
Dependencies
Maintainers
1
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

testcontainers-compose

  • 0.2.0
  • Rubygems
  • Socket score

Version published
Maintainers
1
Created
Source

Testcontainers module for Docker Compose

Installation

Add the library to the test section in your application's Gemfile:

group :test do
  gem 'testcontainers-compose'
end

And then execute:

$ bundle install

Or install it yourself as:

$ gem install testcontainers-compose

Usage

To use the library, you first need to require it:

require "testcontainers/compose"

Creating a Compose Container

Create a new instance of the Testcontainers::ComposeContainer class:

compose = Testcontainer::ComposeContainer.new(filepath: Dir.getwd)

The instance creates a set of containers defined on the .yml file, the 'compose.start' wakes up all containers as service

Start the services on the compose file.

compose.start

Stop the services:

compose.stop

Connecting to services

Once the service is running, you can obtain the mapped port to connect to it:

compose.service_port(service: "hub", port: 4444)

You can inspect the logs of for the services also:

puts compose.logs

You can use wait_for_logs, wait_for_http and wait_for_tcp_port to wait for the services to start:

compose.wait_for_logs(/Service started/)
compose.wait_for_http(url: "http://localhost:4444/hub")
compose.wait_for_tcp_port(host: "localhost", port: 3306)

Configuration of services

This example initialize docker compose with two services described in the YML file located in the current directory:

services = ["hub","firefox"]
compose = Testcontainers::ComposeContainer.new(filepath: Dir.getwd, services: services)

You can specify the name of different docker-compose files also:

compose_filenames = ["docker-compose.dbs.yml", "docker-compose.web.yml"]
compose = Testcontainer::ComposeContainer.new(filepath: Dir.getwd, compose_filenames: compose_filenames)
compose.start

An env file can be specified when starting the services:

compose_filename = ["docker-compose.test.yml"]
compose = Testcontainers::ComposeContainer.new(filepath: Dir.getwd, env_file: ".env.test")

Executing commands in the container for a service

compose.exec(service_name: "hub", command: "echo test")

Contributing

Bug reports and pull requests are welcome on GitHub at https://github.com/testcontainers/testcontainers-ruby. This project is intended to be a safe, welcoming space for collaboration, and contributors are expected to adhere to the code of conduct.

License

The gem is available as open source under the terms of the MIT License.

Code of Conduct

Everyone interacting in the Testcontainers project's codebases, issue trackers, chat rooms and mailing lists is expected to follow the code of conduct.

FAQs

Package last updated on 09 Feb 2024

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc