testcontainers-core 0.1.3 → 0.2.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/CHANGELOG.md +8 -0
- data/Gemfile.lock +2 -1
- data/lib/testcontainers/docker_container.rb +28 -4
- data/lib/testcontainers/version.rb +1 -1
- data/lib/testcontainers.rb +2 -0
- metadata +3 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: a5422789f7d26555fc9198f71b189ec3f75beba0dbaed0b66f541ef5513a9819
|
4
|
+
data.tar.gz: abd82854569df36e3581edc1eb6460af76f2cb3b570ec711131f24f351568f56
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 7eebf9df18f1599e5a13928f163a5269b5b0e78297447ff04396db804bfe7f0ff2515b16da13180e504905bf81d533d9528d76bae8f52d2d55d4823d69aed209
|
7
|
+
data.tar.gz: 97461a668a41d5efb9c3c88cac46d2f4f308a5975bff34042bb78a7edf41b66a2f2a3426ffa8a39baa0efe6b70bc8949306e8372d40dc35a80e4ecd12b2e0574
|
data/CHANGELOG.md
CHANGED
@@ -1,3 +1,11 @@
|
|
1
|
+
## [0.2.0] - 2024-02-08
|
2
|
+
|
3
|
+
### Added
|
4
|
+
|
5
|
+
- DockerContainer#new now accepts optional keyword argument `image_create_options` which accepts a hash. Passes the options to `Docker::Image.create`. See the [Docker ImageCreate api](https://docs.docker.com/engine/api/v1.43/#tag/Image/operation/ImageCreate) for available parameters.
|
6
|
+
|
7
|
+
- DockerContainer#remove now accepts an optional options hash. See the [Docker ContainerDelete api](https://docs.docker.com/engine/api/v1.43/#tag/Container/operation/ContainerDelete) for available parameters.
|
8
|
+
|
1
9
|
## [0.1.3] - 2023-06-10
|
2
10
|
|
3
11
|
### Added
|
data/Gemfile.lock
CHANGED
@@ -30,6 +30,7 @@ module Testcontainers
|
|
30
30
|
# @param command [Array<String>, nil] the command to run in the container
|
31
31
|
# @param name [String, nil] the container's name
|
32
32
|
# @param exposed_ports [Hash, Array<String>, nil] a hash or an array of exposed container ports
|
33
|
+
# @param image_create_options [Hash] a hash of options to pass to Docker::Image.create.
|
33
34
|
# @param port_bindings [Hash, Array<String>, nil] a hash or an array of container ports to host port bindings
|
34
35
|
# @param volumes [Hash, Array<String>, nil] a hash or an array of volume paths in the container
|
35
36
|
# @param filesystem_binds [Array<String>, Hash, nil] an array of strings or a hash representing bind mounts from the host to the container
|
@@ -37,7 +38,7 @@ module Testcontainers
|
|
37
38
|
# @param labels [Hash, nil] a hash of labels to be applied to the container
|
38
39
|
# @param working_dir [String, nil] the working directory for the container
|
39
40
|
# @param logger [Logger] a logger instance for the container
|
40
|
-
def initialize(image, name: nil, command: nil, entrypoint: nil, exposed_ports: nil, port_bindings: nil, volumes: nil, filesystem_binds: nil,
|
41
|
+
def initialize(image, name: nil, command: nil, entrypoint: nil, exposed_ports: nil, image_create_options: {}, port_bindings: nil, volumes: nil, filesystem_binds: nil,
|
41
42
|
env: nil, labels: nil, working_dir: nil, healthcheck: nil, wait_for: nil, logger: Testcontainers.logger)
|
42
43
|
|
43
44
|
@image = image
|
@@ -45,6 +46,7 @@ module Testcontainers
|
|
45
46
|
@command = command
|
46
47
|
@entrypoint = entrypoint
|
47
48
|
@exposed_ports = add_exposed_ports(exposed_ports) if exposed_ports
|
49
|
+
@image_create_options = image_create_options
|
48
50
|
@port_bindings = add_fixed_exposed_ports(port_bindings) if port_bindings
|
49
51
|
@volumes = add_volumes(volumes) if volumes
|
50
52
|
@env = add_env(env) if env
|
@@ -468,8 +470,9 @@ module Testcontainers
|
|
468
470
|
#
|
469
471
|
# @return [DockerContainer] The DockerContainer instance.
|
470
472
|
# @raise [ConnectionError] If the connection to the Docker daemon fails.
|
473
|
+
# @raise [NotFoundError] If Docker is unable to find the image.
|
471
474
|
def start
|
472
|
-
Docker::Image.create("fromImage" => @image)
|
475
|
+
Docker::Image.create({"fromImage" => @image}.merge(@image_create_options))
|
473
476
|
|
474
477
|
@_container ||= Docker::Container.create(_container_create_options)
|
475
478
|
@_container.start
|
@@ -482,6 +485,8 @@ module Testcontainers
|
|
482
485
|
@wait_for&.call(self)
|
483
486
|
|
484
487
|
self
|
488
|
+
rescue Docker::Error::NotFoundError => e
|
489
|
+
raise NotFoundError, e.message
|
485
490
|
rescue Excon::Error::Socket => e
|
486
491
|
raise ConnectionError, e.message
|
487
492
|
end
|
@@ -530,11 +535,12 @@ module Testcontainers
|
|
530
535
|
|
531
536
|
# Removes the container.
|
532
537
|
#
|
538
|
+
# @param options [Hash] Additional options to send to the container remove command.
|
533
539
|
# @return [DockerContainer] The DockerContainer instance.
|
534
540
|
# @return [nil] If the container does not exist.
|
535
541
|
# @raise [ConnectionError] If the connection to the Docker daemon fails.
|
536
|
-
def remove
|
537
|
-
@_container&.remove
|
542
|
+
def remove(options = {})
|
543
|
+
@_container&.remove(options)
|
538
544
|
@_container = nil
|
539
545
|
self
|
540
546
|
rescue Excon::Error::Socket => e
|
@@ -732,6 +738,24 @@ module Testcontainers
|
|
732
738
|
container_ports.map { |port| mapped_port(port) }.first
|
733
739
|
end
|
734
740
|
|
741
|
+
# Returns the container's mounts.
|
742
|
+
#
|
743
|
+
# @return [Array<Hash>] An array of the container's mounts.
|
744
|
+
# @raise [ConnectionError] If the connection to the Docker daemon fails.
|
745
|
+
# @raise [ContainerNotStartedError] If the container has not been started.
|
746
|
+
def mounts
|
747
|
+
info["Mounts"]
|
748
|
+
end
|
749
|
+
|
750
|
+
# Returns the container's mount names.
|
751
|
+
#
|
752
|
+
# @return [Array<String>] The container's mount names.
|
753
|
+
# @raise [ConnectionError] If the connection to the Docker daemon fails.
|
754
|
+
# @raise [ContainerNotStartedError] If the container has not been started.
|
755
|
+
def mount_names
|
756
|
+
mounts.map { |mount| mount["Name"] }
|
757
|
+
end
|
758
|
+
|
735
759
|
# Returns the value for the given environment variable.
|
736
760
|
#
|
737
761
|
# @param key [String] The environment variable's key.
|
data/lib/testcontainers.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: testcontainers-core
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.2.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Guillermo Iguaran
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2024-02-09 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: docker-api
|
@@ -120,7 +120,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
120
120
|
- !ruby/object:Gem::Version
|
121
121
|
version: '0'
|
122
122
|
requirements: []
|
123
|
-
rubygems_version: 3.4.
|
123
|
+
rubygems_version: 3.4.14
|
124
124
|
signing_key:
|
125
125
|
specification_version: 4
|
126
126
|
summary: Testcontainers for Ruby.
|