Testcontainers is a Golang library that providing a friendly API to run Docker container. It is designed to create runtime environment to use during your automatic tests.

Overview

Main pipeline Go Report Card GoDoc Reference

When I was working on a Zipkin PR I discovered a nice Java library called Testcontainers.

It provides an easy and clean API over the go docker sdk to run, terminate and connect to containers in your tests.

I found myself comfortable programmatically writing the containers I need to run an integration/smoke tests. So I started porting this library in Go.

This is an example:

package main

import (
	"context"
	"fmt"
	"net/http"
	"testing"

	"github.com/testcontainers/testcontainers-go"
	"github.com/testcontainers/testcontainers-go/wait"
)

func TestNginxLatestReturn(t *testing.T) {
	ctx := context.Background()
	req := testcontainers.ContainerRequest{
		Image:        "nginx",
		ExposedPorts: []string{"80/tcp"},
		WaitingFor:   wait.ForHTTP("/"),
	}
	nginxC, err := testcontainers.GenericContainer(ctx, testcontainers.GenericContainerRequest{
		ContainerRequest: req,
		Started:          true,
	})
	if err != nil {
		t.Error(err)
	}
	defer nginxC.Terminate(ctx)
	ip, err := nginxC.Host(ctx)
	if err != nil {
		t.Error(err)
	}
	port, err := nginxC.MappedPort(ctx, "80")
	if err != nil {
		t.Error(err)
	}
	resp, err := http.Get(fmt.Sprintf("http://%s:%s", ip, port.Port()))
	if resp.StatusCode != http.StatusOK {
		t.Errorf("Expected status code %d. Got %d.", http.StatusOK, resp.StatusCode)
	}
}

This is a simple example, you can create one container in my case using the nginx image. You can get its IP ip, err := nginxC.GetContainerIpAddress(ctx) and you can use it to make a GET: resp, err := http.Get(fmt.Sprintf("http://%s", ip))

To clean your environment you can defer the container termination defer nginxC.Terminate(ctx, t). t is *testing.T and it is used to notify is the defer failed marking the test as failed.

Documentation

The documentation lives in ./docs and it is rendered at golang.testcontainers.org.

Comments
  • feat: support native docker compose api

    feat: support native docker compose api

    What does this PR do?

    Deprecate shell-escape based LocalDockerCompose implementation and provide new docker/compose based one using the Docker API. Introduce a new API that takes context.Context into account. Furthermore it exposes more typed options.

    #425

    feature compose 
    opened by baez90 39
  • (#25) Create very basic implementation of Local Docker Compose

    (#25) Create very basic implementation of Local Docker Compose

    What is this PR doing?

    This is the very beginning of an initiative to port the Docker-Compose approach from the Java implementation to Golang.

    It simply creates the Local Docker Compose approach (no socat container at this moment), which forces developers to have the docker-compose binary in PATH.

    Following Java's approach, a LocalDockerCompose (LDC) object needs to be created with an array of paths to docker-compose.yml files, and an identifier (maybe this second field could be internally created).

    It's possible to configure the LDC with a command (i.e. "up -d"), which will be executed after the method Invoke is called.

    We have added a convenient Down() method, to be executed after tests run to destroy resources created by docker-compose.

    Besides that, we are parsing Docker Compose YAML file to capture service names, and put into an array, so that it's possible to perform operations over the services in the compose file, accessing the compose.Services field.

    Why is it important?

    This will allow developers to configure more elaborated setups for testing, like an Elasticsearch + Kibana, or Metricbeat + MySQL, as an example, being those services coordinated and scheduled by Docker Compose under the hood, with no need to orchestrate them on the programatic side.

    On the other hand, using declarative way of describing services is more familiar to developers (🤞), so the entry barrier could be lower.

    How to test it?

    I added a few unit tests, which verify that there are no errors after executing the compose, checking that environment variables are properly propagated from compose to the containers, and destroying it in a deferred manner.

    Related Issues

    Closes #25

    feature 
    opened by mdelapenya 29
  • Improve Podman compatibility

    Improve Podman compatibility

    What does this PR do?

    Although Podman claims to be API compatible with Docker and for instance in #336 the consent seems to be let's wait until all problems are gone :sweat_smile: I thought I'd see what can be done as kind of a compromise.

    The problems I could identify (and solve) are:

    • The current implementation assumes the default network name is bridge which isn't the case for Podman. Even worse, bridge is not even a valid network name with Podman because it's also a network mode and Podman does not allow the creation of networks conflicting with network modes.
    • The current implementation of the reaper has a hard coded path where it expects the Docker socket. Neither DOCKER_HOST env variable nor any other customization the testcontainers docs are describing are honored. This is also an issue with rootless Docker.
    • Podman requires at least one stream to be attached when a command is executed. It doesn't hurt to attach stdout and/or stderr but otherwise it breaks the exec wait strategy.

    DefaultNetwork option

    The DefaultNetwork option allows Podman users to configure the name of the default network. If it's not set the previous auto-detection is applied so no breaking change.

    PodmanProvider provider type

    Podman does not allow ambiguities between network mode names and network names therefore the default Podman network is called podman unlike the bridge network of Docker. To be able to detect both cases without a breaking change the second ProviderType was introduced. Current test implementations will just behave like before but with this addition users of testcontainers-go can either explicitly set the provider type or setup a GenericProvider to their likes and use that one.

    Honoring DOCKER_HOST and TESTCONTAINERS_DOCKER_SOCKET_OVERRIDE

    The DOCKER_HOST env variable was already considered when creating the Docker API client. Now its value is propagated (via the context.Context) to the reaper as a fallback if TESTCONTAINERS_DOCKER_SOCKET_OVERRIDE isnt' set. If both env variables are empty the default socket path /var/run/docker.sock will be assumed.

    Default NetworkMode if not set

    In cases when the NetworkMode isn't set it will be set to bridge to avoid issues with Podman. Docker apparently assumes bridge if nothing's set therefore this shouldn't break anything either.

    Parallel tests

    To speed up the test suite I marked as many tests as possible to be executed in parallel. Some tests (like the one running in host mode) cannot be executed in parallel because that would result in port conflicts.

    Compatibility state

    Almost all tests are now compatible with Podman. Some are skipped because they are not compatible with Podman in rootless mode but this would be the same for Docker rootless. Some docker-compose tests are failing in the CI pipeline with Podman 3.x but are running on my local machine with Podman 4.x so I assume they will be compatible eventually.

    Changes in test suite

    Add Podman pipeline

    As stated by @mdelapenya testcontainers-java has a PoC of a Podman pipeline that I 'borrowed' :smile: They are installing Podman 3.x in rootless mode which has some consequences:

    • Docker-in-Docker does not work
    • the new Netavark/Aardvark network is not yet included

    compose_test.go

    • Replace CLI calls withAPI calls to not depend on the availability of the docker CLI. This way validations are also possible against the Podman API.
    • Handle different naming schemes like <identifier>-<service-name>-<instance-count> vs <identifier>_<service-name>_<instance-count> by filtering with regular expressions

    container_test.go

    Use full qualified image names (e.g. docker.io/alpine) because some Podman distributions do not fallback to docker.io by default and this way the container image registry becomes explicit.

    logconsumer_test.go

    Skip test that cannot be executed with rootless Podman because it depends on Docker-in-Docker

    docker_test.go

    • Use docker.io/nginx:alpine where possible
    • Use a custom nginx config opening port 8080 for host mode tests to be able to test them with rootless Podman
    • Unify container termination in all test cases and replace defer calls with *testing.T.Cleanup()
    • Set new Podman provider type to correctly handle default network bridge vs. podman
    • Use full qualified image names (means including registry)

    testresources

    • Use full qualified image names in all Dockerfiles and docker-compose files
    • Add custom nginx highport config

    I'm deeply sorry about the total size of the PR. If you have a good idea how to split it into different parts I will look into it! Some parts are for sure not necessary but I thought it would be good for example to unify how images are referenced, how containers are cleaned in test cases any many things more I stumbled upon while I was trying to get all tests working. Also updating all GitHub actions could be moved to another PR but adding a new pipeline with outdated actions seemed weird and having different versions of the actions in different pipelines too so I also unified that :sweat_smile: Let me know what you think and I'm sure we can figure out something :blush:

    feature podman 
    opened by baez90 25
  • Canned container, let's kick the discussion

    Canned container, let's kick the discussion

    Canned containers are a good way to have pre-built container that can be re-used and can support a deep implementation with the application they are running.

    When I started to do them I thought it was a good idea but now I would like to avoid testcontainers to become full of third-party dependency to download. That's why at the moment I am not merging them.

    Why I like canned containers:

    1. It is a good way to share the effort we do in order to build a great experience with the library
    2. It helps new contributors to get onboard

    What I do not like:

    1. To many dependencies to download with the library

    Do you have any suggestions?! I don't know how go mod works with submodules and if they are supported at all. One idea can be to have a foldering like:

    canned/mysql
    canned/etcd
    canned/kubernetes
    canned/postgres
    

    And we should figure out a way to have the dependency only for that directory and not for the root o the project.

    Affected issue/pr until now:

    https://github.com/testcontainers/testcontainers-go/pull/108 https://github.com/testcontainers/testcontainers-go/pull/107 https://github.com/testcontainers/testcontainers-go/pull/105 https://github.com/testcontainers/testcontainers-go/pull/102 https://github.com/testcontainers/testcontainers-go/pull/98 https://github.com/testcontainers/testcontainers-go/pull/59

    feature 
    opened by gianarb 21
  • Support deploying with docker compose using API

    Support deploying with docker compose using API

    I'm attempting to run tests from a container without docker installed. This isn't an issue for ContainerRequests since it's using the API, but compose relies on docker-compose being present on the machine. It would be beneficial to be able to deploy a compose file without the requirement for external dependencies.

    good first issue compose 
    opened by bamsammich 19
  • "go get" failure parsing go.mod file

    I have an implicit dependency on this project and when I run go get -u, I get this error:

    go: github.com/testcontainers/[email protected]: parsing go.mod: unexpected module path "github.com/testcontainers/testcontainers-go"
    
    opened by vangent 17
  • Updating the go version for local Travis build and set wait strategy for compose services

    Updating the go version for local Travis build and set wait strategy for compose services

    With the older version of go within the local docker container, I found this issue: https://github.com/testcontainers/testcontainers-go/issues/260

    I'm updating the docs to fix it.

    opened by shashank-g172 16
  • Added CopyFileFromContainer to DockerContainer

    Added CopyFileFromContainer to DockerContainer

    Why ?

    While working on a k3s-container I needed to extract the kubeconfig from the running container and discovered that there is no CopyFileFromContainer available.

    What ?

    Added CopyFileFromContainer to DockerContainer. Added Unit-test for the new Function.

    opened by codepitbull 14
  • support podman as alternative to docker

    support podman as alternative to docker

    I wondered if you had considered supporting podman for running containers, as an alternative backend to docker?

    Using podman (and buildah for creating container images) lets you get rid of the docker daemon entirely.

    There is a go API. This does involve running a podman service: but unlike docker, the service runs as your own userid, with no elevated privileges, and can be started and stopped by the user themselves.

    podman 
    opened by candlerb 14
  • Runtime panic

    Runtime panic

    Describe the bug Trying to run a test results in a panic when trying to get mapped ports.

    To Reproduce https://github.com/todanni/account/blob/main/internal/repository/repository_test.go

    Expected behavior Not panic.

    ** docker info ** output of the command:

    Client:
     Context:    default
     Debug Mode: false
     Plugins:
      app: Docker App (Docker Inc., v0.9.1-beta3)
      buildx: Build with BuildKit (Docker Inc., v0.5.1-docker)
      scan: Docker Scan (Docker Inc., v0.5.0)
    
    Server:
     Containers: 6
      Running: 0
      Paused: 0
      Stopped: 6
     Images: 7
     Server Version: 20.10.5
     Storage Driver: overlay2
      Backing Filesystem: extfs
      Supports d_type: true
      Native Overlay Diff: true
     Logging Driver: json-file
     Cgroup Driver: cgroupfs
     Cgroup Version: 1
     Plugins:
      Volume: local
      Network: bridge host ipvlan macvlan null overlay
      Log: awslogs fluentd gcplogs gelf journald json-file local logentries splunk syslog
     Swarm: inactive
     Runtimes: io.containerd.runc.v2 io.containerd.runtime.v1.linux runc
     Default Runtime: runc
     Init Binary: docker-init
     containerd version: 269548fa27e0089a8b8278fc4fc781d7f65a939b
     runc version: ff819c7e9184c13b7c2607fe6c30ae19403a7aff
     init version: de40ad0
     Security Options:
      seccomp
       Profile: default
     Kernel Version: 5.4.72-microsoft-standard-WSL2
     Operating System: Docker Desktop
     OSType: linux
     Architecture: x86_64
     CPUs: 16
     Total Memory: 25.01GiB
     Name: docker-desktop
     ID: K2UZ:4XFZ:UKRM:UXYT:MSZF:OGA3:QDVU:GVOR:EYU5:54DD:Q3J4:KSCK
     Docker Root Dir: /var/lib/docker
     Debug Mode: false
     Registry: https://index.docker.io/v1/
     Labels:
     Experimental: false
     Insecure Registries:
      127.0.0.0/8
     Live Restore Enabled: false
    
    WARNING: No blkio throttle.read_bps_device support
    WARNING: No blkio throttle.write_bps_device support
    WARNING: No blkio throttle.read_iops_device support
    WARNING: No blkio throttle.write_iops_device support
    

    Additional context Output from running go test

    ❯ go test
    2021/03/16 13:17:45 Starting container id: dd41a0e8a506 image: quay.io/testcontainers/ryuk:0.2.3
    2021/03/16 13:17:46 Waiting for container id dd41a0e8a506 image: quay.io/testcontainers/ryuk:0.2.3
    --- FAIL: TestRunAuthenticationTestSuite (0.28s)
        suite.go:63: test panicked: runtime error: index out of range [0] with length 0
            goroutine 6 [running]:
            runtime/debug.Stack(0xc00014e218, 0xc99160, 0xc000128c60)
                    /usr/local/go/src/runtime/debug/stack.go:24 +0x9f
            github.com/stretchr/testify/suite.failOnPanic(0xc0001ce780)
                    /home/dannipo/go/pkg/mod/github.com/stretchr/[email protected]/suite/suite.go:63 +0x5b
            panic(0xc99160, 0xc000128c60)
                    /usr/local/go/src/runtime/panic.go:965 +0x1b9
            github.com/testcontainers/testcontainers-go.(*DockerContainer).MappedPort(0xc00045e100, 0xddd700, 0xc0005244e0, 0xcede63, 0x8, 0x0, 0x0, 0x3132303200000000, 0x63)
                    /home/dannipo/go/pkg/mod/github.com/testcontainers/[email protected]/docker.go:133 +0x485
            github.com/testcontainers/testcontainers-go/wait.(*HostPortStrategy).WaitUntilReady(0xc00011c600, 0xddd6c8, 0xc0005244e0, 0xddd9a0, 0xc00045e100, 0x0, 0x0)
                    /home/dannipo/go/pkg/mod/github.com/testcontainers/[email protected]/wait/host_port.go:59 +0x16f
            github.com/testcontainers/testcontainers-go.(*DockerContainer).Start(0xc00045e100, 0xddd6c8, 0xc0000360d0, 0x0, 0x0)
                    /home/dannipo/go/pkg/mod/github.com/testcontainers/[email protected]/docker.go:165 +0x315
            github.com/testcontainers/testcontainers-go.(*DockerProvider).RunContainer(0xc0005060f0, 0xddd6c8, 0xc0000360d0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xd00532, ...)
                    /home/dannipo/go/pkg/mod/github.com/testcontainers/[email protected]/docker.go:727 +0xeb
            github.com/testcontainers/testcontainers-go.NewReaper(0xddd6c8, 0xc0000360d0, 0xc000152180, 0x24, 0xdcd3a0, 0xc0005060f0, 0x0, 0x0, 0x0, 0x0, ...)
                    /home/dannipo/go/pkg/mod/github.com/testcontainers/[email protected]/reaper.go:78 +0x455
            github.com/testcontainers/testcontainers-go.(*DockerProvider).CreateContainer(0xc0005060f0, 0xddd6c8, 0xc0000360d0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xcee503, ...)
                    /home/dannipo/go/pkg/mod/github.com/testcontainers/[email protected]/docker.go:534 +0x18c8
            github.com/testcontainers/testcontainers-go.GenericContainer(0xddd6c8, 0xc0000360d0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xcee503, 0x8, ...)
                    /home/dannipo/go/pkg/mod/github.com/testcontainers/[email protected]/generic.go:43 +0xb5
            github.com/todanni/authentication/test/container.NewPGContainer(0xcf23fe, 0xf, 0xcea328, 0xcea318, 0xc0000bfd88)
                    /mnt/c/Projects/todanni/authentication/test/container/postgres.go:41 +0x3db
            github.com/todanni/authentication/internal/repository.(*AccountRepoTestSuite).SetupSuite(0xc0004385a0)
                    /mnt/c/Projects/todanni/authentication/internal/repository/repository_test.go:55 +0x48
            github.com/stretchr/testify/suite.Run(0xc0001ce780, 0xdd4880, 0xc0004385a0)
                    /home/dannipo/go/pkg/mod/github.com/stretchr/[email protected]/suite/suite.go:118 +0x5c7
            github.com/todanni/authentication/internal/repository.TestRunAuthenticationTestSuite(0xc0001ce780)
                    /mnt/c/Projects/todanni/authentication/internal/repository/repository_test.go:25 +0x51
            testing.tRunner(0xc0001ce780, 0xd1bd78)
                    /usr/local/go/src/testing/testing.go:1194 +0xef
            created by testing.(*T).Run
                    /usr/local/go/src/testing/testing.go:1239 +0x2b3
    FAIL
    exit status 1
    FAIL    github.com/todanni/authentication/internal/repository   0.287s
    
    opened by danni-popova 14
  • "not enough arguments in call to p.client.ContainerCreate"

    Installing Testcontainers v0.9.0 currently fails to work, because Go is automatically pulling in Docker v20.10.1 instead of v17.12.0 and the API has changed.

    As such, when I run anything I get:

    /Users/sazzer/.gvm/pkgsets/go1.15.6/global/pkg/mod/github.com/testcontainers/[email protected]/docker.go:645:39: not enough arguments in call to p.client.ContainerCreate
    	have (context.Context, *container.Config, *container.HostConfig, *network.NetworkingConfig, string)
    	want (context.Context, *container.Config, *container.HostConfig, *network.NetworkingConfig, *v1.Platform, string)
    

    I can fix this by running:

    $ go mod edit -require github.com/docker/[email protected]v17.12.0-ce-rc1.0.20200916142827-bd33bbf0497b+incompatible
    

    But the next time I run go get -u ./... to update dependencies then it all breaks again.

    opened by sazzer 14
  • chore(deps): bump github.com/docker/compose/v2 from 2.14.2 to 2.15.0 in /modules/compose

    chore(deps): bump github.com/docker/compose/v2 from 2.14.2 to 2.15.0 in /modules/compose

    Bumps github.com/docker/compose/v2 from 2.14.2 to 2.15.0.

    Release notes

    Sourced from github.com/docker/compose/v2's releases.

    v2.15.0

    What's Changed

    ✨ Enhancements

    🐛 Fixes

    🔧 Internal

    Changelog

    New Contributors

    Full Changelog: https://github.com/docker/compose/compare/v2.14.2...v2.15.0

    Commits
    • f6f29a4 Merge pull request #10133 from ndeloof/build_concurrency
    • aa5cdf2 add support for COMPOSE_PARALLEL_LIMIT (parity with Compose v1)
    • d5e4f00 introduce --no-attach to ignore some service output
    • 8b4ac37 introduce --ignore-buildable to ignore buildable images on pull
    • b96e27e limit build concurrency according to --parallel
    • dcbd68a Merge pull request #10136 from gtardif/fix_race_delete_orphan_containers
    • 37d15d7 Ignore not only auto-removed containers but also "removal in progress" for or...
    • a224780 Set pullChanged when setting --pull on compose up
    • ffce33e Fix empty file when using compose config in case of smaller source files
    • 1d9657a Merge pull request #10127 from docker/dependabot/go_modules/github.com/docker...
    • Additional commits viewable in compare view

    Dependabot compatibility score

    You can trigger a rebase of this PR by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    dependencies 
    opened by dependabot[bot] 1
  • chore(deps): bump google.golang.org/api from 0.105.0 to 0.106.0 in /examples/spanner

    chore(deps): bump google.golang.org/api from 0.105.0 to 0.106.0 in /examples/spanner

    Bumps google.golang.org/api from 0.105.0 to 0.106.0.

    Release notes

    Sourced from google.golang.org/api's releases.

    v0.106.0

    0.106.0 (2023-01-04)

    Features

    • all: Auto-regenerate discovery clients (#1784) (a7f08e2)
    • all: Auto-regenerate discovery clients (#1788) (9fb35f5)
    • all: Auto-regenerate discovery clients (#1790) (7bd17b3)
    • all: Auto-regenerate discovery clients (#1794) (3944e86)
    • idtoken: Add support for impersonated_service_account creds type (#1792) (f6dec99), refs #873
    • option/internaloption: Add new EmbeddableAdapter option (#1787) (1569e5b)

    Bug Fixes

    • idtoken: Configure validator constructor to use no authentication (#1789) (b35900a), refs #1682
    Changelog

    Sourced from google.golang.org/api's changelog.

    0.106.0 (2023-01-04)

    Features

    • all: Auto-regenerate discovery clients (#1784) (a7f08e2)
    • all: Auto-regenerate discovery clients (#1788) (9fb35f5)
    • all: Auto-regenerate discovery clients (#1790) (7bd17b3)
    • all: Auto-regenerate discovery clients (#1794) (3944e86)
    • idtoken: Add support for impersonated_service_account creds type (#1792) (f6dec99), refs #873
    • option/internaloption: Add new EmbeddableAdapter option (#1787) (1569e5b)

    Bug Fixes

    • idtoken: Configure validator constructor to use no authentication (#1789) (b35900a), refs #1682
    Commits
    • ac7eb8f chore(main): release 0.106.0 (#1786)
    • 3944e86 feat(all): auto-regenerate discovery clients (#1794)
    • f6dec99 feat(idtoken): add support for impersonated_service_account creds type (#1792)
    • ddb5c65 test: add buffer to both sides of token expiry validation (#1797)
    • b35900a fix(idtoken): configure validator constructor to use no authentication (#1789)
    • ca86833 chore(all): update all (#1796)
    • a6b0739 chore: skip generating integrations:v1 as it fails generation (#1793)
    • 7bd17b3 feat(all): auto-regenerate discovery clients (#1790)
    • 9fb35f5 feat(all): auto-regenerate discovery clients (#1788)
    • 1569e5b feat(option/internaloption): add new EmbeddableAdapter option (#1787)
    • Additional commits viewable in compare view

    Dependabot compatibility score

    You can trigger a rebase of this PR by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    dependencies 
    opened by dependabot[bot] 1
  • chore(deps): bump google.golang.org/api from 0.105.0 to 0.106.0 in /examples/pubsub

    chore(deps): bump google.golang.org/api from 0.105.0 to 0.106.0 in /examples/pubsub

    Bumps google.golang.org/api from 0.105.0 to 0.106.0.

    Release notes

    Sourced from google.golang.org/api's releases.

    v0.106.0

    0.106.0 (2023-01-04)

    Features

    • all: Auto-regenerate discovery clients (#1784) (a7f08e2)
    • all: Auto-regenerate discovery clients (#1788) (9fb35f5)
    • all: Auto-regenerate discovery clients (#1790) (7bd17b3)
    • all: Auto-regenerate discovery clients (#1794) (3944e86)
    • idtoken: Add support for impersonated_service_account creds type (#1792) (f6dec99), refs #873
    • option/internaloption: Add new EmbeddableAdapter option (#1787) (1569e5b)

    Bug Fixes

    • idtoken: Configure validator constructor to use no authentication (#1789) (b35900a), refs #1682
    Changelog

    Sourced from google.golang.org/api's changelog.

    0.106.0 (2023-01-04)

    Features

    • all: Auto-regenerate discovery clients (#1784) (a7f08e2)
    • all: Auto-regenerate discovery clients (#1788) (9fb35f5)
    • all: Auto-regenerate discovery clients (#1790) (7bd17b3)
    • all: Auto-regenerate discovery clients (#1794) (3944e86)
    • idtoken: Add support for impersonated_service_account creds type (#1792) (f6dec99), refs #873
    • option/internaloption: Add new EmbeddableAdapter option (#1787) (1569e5b)

    Bug Fixes

    • idtoken: Configure validator constructor to use no authentication (#1789) (b35900a), refs #1682
    Commits
    • ac7eb8f chore(main): release 0.106.0 (#1786)
    • 3944e86 feat(all): auto-regenerate discovery clients (#1794)
    • f6dec99 feat(idtoken): add support for impersonated_service_account creds type (#1792)
    • ddb5c65 test: add buffer to both sides of token expiry validation (#1797)
    • b35900a fix(idtoken): configure validator constructor to use no authentication (#1789)
    • ca86833 chore(all): update all (#1796)
    • a6b0739 chore: skip generating integrations:v1 as it fails generation (#1793)
    • 7bd17b3 feat(all): auto-regenerate discovery clients (#1790)
    • 9fb35f5 feat(all): auto-regenerate discovery clients (#1788)
    • 1569e5b feat(option/internaloption): add new EmbeddableAdapter option (#1787)
    • Additional commits viewable in compare view

    Dependabot compatibility score

    You can trigger a rebase of this PR by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    dependencies 
    opened by dependabot[bot] 1
  • chore(deps): bump google.golang.org/api from 0.105.0 to 0.106.0 in /examples/datastore

    chore(deps): bump google.golang.org/api from 0.105.0 to 0.106.0 in /examples/datastore

    Bumps google.golang.org/api from 0.105.0 to 0.106.0.

    Release notes

    Sourced from google.golang.org/api's releases.

    v0.106.0

    0.106.0 (2023-01-04)

    Features

    • all: Auto-regenerate discovery clients (#1784) (a7f08e2)
    • all: Auto-regenerate discovery clients (#1788) (9fb35f5)
    • all: Auto-regenerate discovery clients (#1790) (7bd17b3)
    • all: Auto-regenerate discovery clients (#1794) (3944e86)
    • idtoken: Add support for impersonated_service_account creds type (#1792) (f6dec99), refs #873
    • option/internaloption: Add new EmbeddableAdapter option (#1787) (1569e5b)

    Bug Fixes

    • idtoken: Configure validator constructor to use no authentication (#1789) (b35900a), refs #1682
    Changelog

    Sourced from google.golang.org/api's changelog.

    0.106.0 (2023-01-04)

    Features

    • all: Auto-regenerate discovery clients (#1784) (a7f08e2)
    • all: Auto-regenerate discovery clients (#1788) (9fb35f5)
    • all: Auto-regenerate discovery clients (#1790) (7bd17b3)
    • all: Auto-regenerate discovery clients (#1794) (3944e86)
    • idtoken: Add support for impersonated_service_account creds type (#1792) (f6dec99), refs #873
    • option/internaloption: Add new EmbeddableAdapter option (#1787) (1569e5b)

    Bug Fixes

    • idtoken: Configure validator constructor to use no authentication (#1789) (b35900a), refs #1682
    Commits
    • ac7eb8f chore(main): release 0.106.0 (#1786)
    • 3944e86 feat(all): auto-regenerate discovery clients (#1794)
    • f6dec99 feat(idtoken): add support for impersonated_service_account creds type (#1792)
    • ddb5c65 test: add buffer to both sides of token expiry validation (#1797)
    • b35900a fix(idtoken): configure validator constructor to use no authentication (#1789)
    • ca86833 chore(all): update all (#1796)
    • a6b0739 chore: skip generating integrations:v1 as it fails generation (#1793)
    • 7bd17b3 feat(all): auto-regenerate discovery clients (#1790)
    • 9fb35f5 feat(all): auto-regenerate discovery clients (#1788)
    • 1569e5b feat(option/internaloption): add new EmbeddableAdapter option (#1787)
    • Additional commits viewable in compare view

    Dependabot compatibility score

    You can trigger a rebase of this PR by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    dependencies 
    opened by dependabot[bot] 1
  • chore(deps): bump google.golang.org/api from 0.105.0 to 0.106.0 in /examples/firestore

    chore(deps): bump google.golang.org/api from 0.105.0 to 0.106.0 in /examples/firestore

    Bumps google.golang.org/api from 0.105.0 to 0.106.0.

    Release notes

    Sourced from google.golang.org/api's releases.

    v0.106.0

    0.106.0 (2023-01-04)

    Features

    • all: Auto-regenerate discovery clients (#1784) (a7f08e2)
    • all: Auto-regenerate discovery clients (#1788) (9fb35f5)
    • all: Auto-regenerate discovery clients (#1790) (7bd17b3)
    • all: Auto-regenerate discovery clients (#1794) (3944e86)
    • idtoken: Add support for impersonated_service_account creds type (#1792) (f6dec99), refs #873
    • option/internaloption: Add new EmbeddableAdapter option (#1787) (1569e5b)

    Bug Fixes

    • idtoken: Configure validator constructor to use no authentication (#1789) (b35900a), refs #1682
    Changelog

    Sourced from google.golang.org/api's changelog.

    0.106.0 (2023-01-04)

    Features

    • all: Auto-regenerate discovery clients (#1784) (a7f08e2)
    • all: Auto-regenerate discovery clients (#1788) (9fb35f5)
    • all: Auto-regenerate discovery clients (#1790) (7bd17b3)
    • all: Auto-regenerate discovery clients (#1794) (3944e86)
    • idtoken: Add support for impersonated_service_account creds type (#1792) (f6dec99), refs #873
    • option/internaloption: Add new EmbeddableAdapter option (#1787) (1569e5b)

    Bug Fixes

    • idtoken: Configure validator constructor to use no authentication (#1789) (b35900a), refs #1682
    Commits
    • ac7eb8f chore(main): release 0.106.0 (#1786)
    • 3944e86 feat(all): auto-regenerate discovery clients (#1794)
    • f6dec99 feat(idtoken): add support for impersonated_service_account creds type (#1792)
    • ddb5c65 test: add buffer to both sides of token expiry validation (#1797)
    • b35900a fix(idtoken): configure validator constructor to use no authentication (#1789)
    • ca86833 chore(all): update all (#1796)
    • a6b0739 chore: skip generating integrations:v1 as it fails generation (#1793)
    • 7bd17b3 feat(all): auto-regenerate discovery clients (#1790)
    • 9fb35f5 feat(all): auto-regenerate discovery clients (#1788)
    • 1569e5b feat(option/internaloption): add new EmbeddableAdapter option (#1787)
    • Additional commits viewable in compare view

    Dependabot compatibility score

    You can trigger a rebase of this PR by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    dependencies 
    opened by dependabot[bot] 1
  • chore(deps): bump google.golang.org/api from 0.105.0 to 0.106.0 in /examples/bigtable

    chore(deps): bump google.golang.org/api from 0.105.0 to 0.106.0 in /examples/bigtable

    Bumps google.golang.org/api from 0.105.0 to 0.106.0.

    Release notes

    Sourced from google.golang.org/api's releases.

    v0.106.0

    0.106.0 (2023-01-04)

    Features

    • all: Auto-regenerate discovery clients (#1784) (a7f08e2)
    • all: Auto-regenerate discovery clients (#1788) (9fb35f5)
    • all: Auto-regenerate discovery clients (#1790) (7bd17b3)
    • all: Auto-regenerate discovery clients (#1794) (3944e86)
    • idtoken: Add support for impersonated_service_account creds type (#1792) (f6dec99), refs #873
    • option/internaloption: Add new EmbeddableAdapter option (#1787) (1569e5b)

    Bug Fixes

    • idtoken: Configure validator constructor to use no authentication (#1789) (b35900a), refs #1682
    Changelog

    Sourced from google.golang.org/api's changelog.

    0.106.0 (2023-01-04)

    Features

    • all: Auto-regenerate discovery clients (#1784) (a7f08e2)
    • all: Auto-regenerate discovery clients (#1788) (9fb35f5)
    • all: Auto-regenerate discovery clients (#1790) (7bd17b3)
    • all: Auto-regenerate discovery clients (#1794) (3944e86)
    • idtoken: Add support for impersonated_service_account creds type (#1792) (f6dec99), refs #873
    • option/internaloption: Add new EmbeddableAdapter option (#1787) (1569e5b)

    Bug Fixes

    • idtoken: Configure validator constructor to use no authentication (#1789) (b35900a), refs #1682
    Commits
    • ac7eb8f chore(main): release 0.106.0 (#1786)
    • 3944e86 feat(all): auto-regenerate discovery clients (#1794)
    • f6dec99 feat(idtoken): add support for impersonated_service_account creds type (#1792)
    • ddb5c65 test: add buffer to both sides of token expiry validation (#1797)
    • b35900a fix(idtoken): configure validator constructor to use no authentication (#1789)
    • ca86833 chore(all): update all (#1796)
    • a6b0739 chore: skip generating integrations:v1 as it fails generation (#1793)
    • 7bd17b3 feat(all): auto-regenerate discovery clients (#1790)
    • 9fb35f5 feat(all): auto-regenerate discovery clients (#1788)
    • 1569e5b feat(option/internaloption): add new EmbeddableAdapter option (#1787)
    • Additional commits viewable in compare view

    Dependabot compatibility score

    You can trigger a rebase of this PR by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    dependencies 
    opened by dependabot[bot] 1
Releases(v0.17.0)
  • v0.17.0(Dec 23, 2022)

    What's Changed

    ⚠️ Breaking Changes

    Given the amount of issues after #476, causing consumers of this library to update their dependencies with multiple replace directives in their go.mod files, we have moved compose code to a separate module. Therefore the majority of the users of the library will only need to replace Docker dependency with the one used in this library, which is simpler in terms of usage. Please see Install instructions for further information.

    replace (
    	github.com/docker/docker => github.com/docker/docker v20.10.3-0.20221013203545-33ab36d6b304+incompatible // 22.06 branch
    )
    

    On the other hand, users of native Docker Compose code will still need all the replace directives, as described in the Compose docs.

    • chore: move compose code to a separate module (#650) @mdelapenya

    🚀 Features

    • feat: provide a tool to generate examples from code (#618) @mdelapenya

    🐛 Bug Fixes

    • fix: avoid panics when checking container state and container.raw is nil (#635) @mdelapenya

    📖 Documentation

    • docs: refine onboarding process with quickstart guide (#706) @mdelapenya
    • chore: add mysql example (#700) @mdelapenya
    • chore: postgres example (#674) @mdelapenya
    • Add bigtable example (#676) @eddumelendez
    • Improve datastore, firestore, pubsub and spanner tests (#670) @eddumelendez
    • Add toxiproxy example (#643) @eddumelendez
    • Add spanner example (#642) @eddumelendez
    • Add pubsub example (#640) @eddumelendez
    • Add datastore example (#638) @eddumelendez
    • Add firestore example (#637) @eddumelendez
    • feat: provide a tool to generate examples from code (#618) @mdelapenya
    • chore: bump version in mkdocs (#630) @mdelapenya
    • docs: remove code snippets from main README (#631) @mdelapenya
    • docs: document replace directive for Docker Compose (#632) @mdelapenya

    🧹 Housekeeping

    • chore: reduce concurrent builds (#702) @mdelapenya
    • chore: update mkdocs format to go-yaml v3 (#667) @mdelapenya
    • chore: generate dependabot configs for examples (#654) @mdelapenya
    • chore: format dependabot using go-yaml indents (#658) @mdelapenya
    • chore: remove quotes from dependabot updates (#655) @mdelapenya
    • fix: do not create garbage in examples nav bar (#652) @mdelapenya
    • chore: sync governance files (#641) @testcontainersbot
    • chore: adjust generator for the docs site (#639) @mdelapenya

    📦 Dependency updates

    • chore: move compose code to a separate module (#650) @mdelapenya
    • chore: move redis-specific tests to the example module (#701) @mdelapenya
    • chore: bump transitive dependencies (#527) @mdelapenya
    • chore: add mysql example (#700) @mdelapenya
    • chore(deps): bump google.golang.org/api from 0.104.0 to 0.105.0 (#699) @mdelapenya
    • chore(deps): bump google.golang.org/api from 0.103.0 to 0.104.0 in /examples/firestore (#683) @dependabot
    • chore(deps): bump cloud.google.com/go/spanner from 1.41.0 to 1.42.0 in /examples/spanner (#688) @dependabot
    • chore(deps): bump google.golang.org/api from 0.103.0 to 0.104.0 in /examples/pubsub (#685) @dependabot
    • chore(deps): bump google.golang.org/api from 0.103.0 to 0.104.0 in /examples/spanner (#684) @dependabot
    • chore(deps): bump google.golang.org/grpc from 1.50.1 to 1.51.0 in /examples/firestore (#686) @dependabot
    • chore(deps): bump google.golang.org/api from 0.102.0 to 0.104.0 in /examples/bigtable (#680) @dependabot
    • chore(deps): bump google.golang.org/api from 0.103.0 to 0.104.0 in /examples/datastore (#678) @dependabot
    • chore(deps): bump golang.org/x/text from 0.3.7 to 0.5.0 (#660) @dependabot
    • chore(deps): bump github.com/magiconair/properties from 1.8.6 to 1.8.7 (#677) @dependabot
    • chore(deps): bump github.com/containerd/containerd from 1.6.10 to 1.6.12 (#675) @dependabot
    • chore: run go mod tidy in examples (#672) @mdelapenya
    • chore: group dependabot updates (#668) @mdelapenya
    • chore(deps): bump github.com/docker/compose/v2 from 2.12.2 to 2.14.0 (#657) @dependabot
    • chore(deps): bump github.com/stretchr/testify from 1.8.0 to 1.8.1 (#583) @dependabot
    • chore(deps): bump github.com/cenkalti/backoff/v4 from 4.1.3 to 4.2.0 (#656) @dependabot
    • chore(deps): bump github.com/containerd/containerd from 1.6.8 to 1.6.10 (#621) @dependabot
    • chore(deps): bump golang.org/x/sys from 0.1.0 to 0.3.0 (#651) @dependabot
    • chore: run go mod tidy for all examples (#649) @mdelapenya
    Source code(tar.gz)
    Source code(zip)
  • v0.16.0(Nov 21, 2022)

    What's Changed

    ⚠️ Breaking Changes

    • feat: support native docker compose api (#476) @baez90

      Docker Compose v2 is implemented in Go, and for that reason we have decided to provide native Go support to Compose, deprecating the shell-escape based LocalDockerCompose, which was invoking the local binary of compose. Given the version includes the Compose dependency, and the Docker folks added a replace directive until the upcoming Docker 22.06 release is out, we were forced to add it too, causing consumers of Testcontainers for Go to add the following replace directive too.

    replace (
    	github.com/docker/cli => github.com/docker/cli v20.10.3-0.20221013132413-1d6c6e2367e2+incompatible // 22.06 master branch
    	github.com/docker/docker => github.com/docker/docker v20.10.3-0.20221013203545-33ab36d6b304+incompatible // 22.06 branch
    	github.com/moby/buildkit => github.com/moby/buildkit v0.10.1-0.20220816171719-55ba9d14360a // same as buildx
    
    	github.com/opencontainers/runc => github.com/opencontainers/runc v1.1.2 // Can be removed on next bump of containerd to > 1.6.4
    
    	// For k8s dependencies, we use a replace directive, to prevent them being
    	// upgraded to the version specified in containerd, which is not relevant to the
    	// version needed.
    	// See https://github.com/docker/buildx/pull/948 for details.
    	// https://github.com/docker/buildx/blob/v0.8.1/go.mod#L62-L64
    	k8s.io/api => k8s.io/api v0.22.4
    	k8s.io/apimachinery => k8s.io/apimachinery v0.22.4
    	k8s.io/client-go => k8s.io/client-go v0.22.4
    )
    
    • fix: do not prepend garbage in the container.Exec response (#624) @mdelapenya

      The signature of the Exec function on a container created by the library has been changed in what we thought it was a non-breaking change manner, using variadic arguments. But we confirmed that it could be a breaking change in the rare case where the Exec function is assigned to a variable.

    // The original Exec function works here because its type is func(context.Context, []string),
    // but the new Exec function’s type is func(context.Context, []string, ...ProcessOption),
    // so the assignment fails at compile time. For that reason we are moving it to this section.
    var execFn func(ctx context.Context, cmd []string) = myContainer.Exec
    

    🚀 Features

    • feat: implement new MultiStrategy design (#580) @hhsnopek

      This PR enhances how the wait.ForAll strategy behaves: it will control the startup timeout and the deadline for all inner wait strategies, using two methods: WithStartupTimeoutDefault, which sets the default timeout for all inner wait strategies; and WithDeadline, which sets a time.Duration which limits all wait strategies. As a consequence, the already existing function WithStartupTimeout has been deprecated from the multi-strategy struct.

    • feat: Auth config for build images (#602) @paulozenida

    • feat: log docker info from compose (#591) @mdelapenya

    🐛 Bug Fixes

    • fix: support parallel execution of reusable containers (#593) @mdelapenya

    📖 Documentation

    • README: update nginxC.Terminate (#627) @ofey404
    • update gotest.md - fix errors in the example (#623) @pantafive
    • docs: fix syntax (#615) @mdelapenya
    • docs: networking basics (#612) @mdelapenya
    • docs: wording in project name (#610) @mdelapenya
    • add example of using Pulsar with testcontainers-go (#597) @clive-jevons
    • docs: add languages to docs site (#599) @mdelapenya
    • docs: Rename the MkDocs site name to match other Testcontainers languages (#598) @HofmeisterAn
    • chore: sync governance files (#589) @mdelapenya
    • chore: sync governance files (#586) @mdelapenya

    🧹 Housekeeping

    • chore: sync governance files (#622) @testcontainersbot
    • chore: use a fixed version of MySQL (#617) @mdelapenya
    • feat: add golangci-lint (#569) @hhsnopek
    • chore: sync governance files (#608) @mdelapenya
    • chore: sync governance files (#586) @mdelapenya
    • Remove codecov and test coverage file (#584) @misantron

    📦 Dependency updates

    • chore: retire podman pipeline (#625) @mdelapenya
    • chore(deps): bump github.com/docker/compose/v2 from 2.12.0 to 2.12.2 (#588) @dependabot
    • feat: bump version of test-summary (#596) @Bablzz
    Source code(tar.gz)
    Source code(zip)
  • v0.15.0(Oct 24, 2022)

    What's Changed

    🚀 Features

    • feat: add sessionID HTTP Header to the Docker client setup (#570) @mdelapenya
    • chore: proper messaging on disabling ryuk (#566) @mdelapenya
    • Support returning all IP addresses of a container (#553) @gauravgahlot
    • Support for cap-add/cap-drop (#555) @dhuckins
    • Log docker server info (#548) @gauravgahlot

    ⚠️ Breaking Changes

    • feat: add host param to url function for wait.ForSQL (#524) @frozenbonito

    Before this change, when waiting for a SQL to be executed in a container it always checked against localhost, but it could be the case that the database instance runs in a different container. For that reason, the library now supports passing the host where the database is running so that the wait.ForSQL function needs the host as part of the input parameters.

    - func ForSQL(port nat.Port, driver string, url func(nat.Port) string) *waitForSql {
    + func ForSQL(port nat.Port, driver string, url func(host string, port nat.Port) string) *waitForSql {
    

    🐛 Bug Fixes

    • fix: check if the container request is for the reaper (#574) @mdelapenya
    • fix: pass docker context key when reusing a container (#550) @mdelapenya
    • fix: use regex to find container by name (#558) @hwwwi
    • fix: expose default exposed ports if the NetworkMode is not container (#560) @clive-jevons
    • fix(compose): wait.ForExit() strategy should work for finished containers (#514) @Malinskiy

    📖 Documentation

    • fix: edit link in documentation (#575) @DanielHabenicht
    • chore: proper messaging on disabling ryuk (#566) @mdelapenya
    • docs: add general Docker requirements (#565) @mdelapenya
    • Add system requirements parent docs page for podman and colima (#562) @gauravgahlot
    • docs: add docs regarding Colima usage (#547) @hhsnopek
    • chore: add CONTRIBUTING file (#539) @mdelapenya
    • docs: add a basic layout for wait strategies in docs (#536) @mdelapenya
    • docs: improve consistency and fix typos (#534) @sicoyle

    🧹 Housekeeping

    • chore: prepare for 0.15.0 release (#581) @mdelapenya
    • fix: better error message in tests (#577) @mdelapenya
    • chore: check error message in parts when testing the CreateContainerWithDirs method (#576) @mdelapenya
    • chore: use container.State() function in tests (#543) @mdelapenya
    • chore: add emoji to breaking changes in release drafter (#542) @mdelapenya
    • issue #537 Rename the wait/multi.go file to wait/all.go (#541) @skofli
    • chore: do not skip test (#528) @mdelapenya
    • chore: include test flakiness in the release drafter (#535) @mdelapenya
    • chore: retire old versions of Go (#530) @mdelapenya
    • chore: improve issue templates (#523) @mdelapenya

    📦 Dependency updates

    • chore(deps): bump gotest.tools/v3 from 3.3.0 to 3.4.0 (#563) @dependabot
    • Update testcontainers/ryuk version to 0.3.4 (#564) @eddumelendez
    • chore: use hashed versions of test-summary action (#556) @mdelapenya
    • chore: retire old versions of Go (#530) @mdelapenya
    • chore: pin codecov's GH action to v3.1.0 (#526) @mdelapenya
    Source code(tar.gz)
    Source code(zip)
  • v0.14.0(Sep 13, 2022)

    What's Changed

    🚀 Features

    • feat: copy directory to container (#517) @mdelapenya
    • feat: Use exposed ports specified in image if it is not specified in ContainerRequest (#468) @fiftin
    • Issue 439: use an existing container (#464) @VladimirStepanov
    • Issue 225 copy files before container started (#460) @VladimirStepanov
    • refactor: read RYUK_CONTAINER_PRIVILEGED once (#475) @zregvart
    • feature: custom ForSQL query (#451) @funvit
    • Issue 332 generic parallel containers (#456) @VladimirStepanov
    • Improve Podman compatibility (#414) @baez90
    • Add SHM size to the container request (#461) @EndPositive
    • feat: support binds in addition to mounts (#452) @zregvart
    • feat: add IPAM configs to NetworkRequest (#394) @aivinog1
    • use var TESTCONTAINERS_DOCKER_SOCKET_OVERRIDE (#407) @mniak
    • Docker compose: Add the output of the command to the returning struct (#420) @oriser
    • Add extra hosts to the container request (#436) @EndPositive

    ⚠️ Breaking Changes

    • feat: ability to configure running privileged Ryuk (#449) @zregvart
    • Return a Reader from the Exec function (#435) @johanoskarsson

    🐛 Bug Fixes

    • Return container IP when attached to a single named network (#491) @leszko
    • fix: return bad error after parallel running (#483) @VladimirStepanov
    • fix: strip stream headers from logs (#454) @funvit
    • Fix compose v2 wait strategy (#426) @oriser

    📖 Documentation

    • docs: add contributing guides (#522) @mdelapenya
    • docs: add docs regarding Podman usage (#503) @baez90
    • docs: fix format for create-container feature (#481) @mdelapenya
    • Remove unused import in redis example (#471) @doodot
    • docs: add telegraf to users of testcontainers-go (#447) @powersj
    • chore: update branding (#429) @mdelapenya

    🧹 Housekeeping

    • Add CODEOWNERS (#507) @eddumelendez
    • Remove bug_report.md and add slack/discusions to config.yml (#506) @eddumelendez
    • chore: add issue templates (#501) @mdelapenya
    • chore: retire non-supported Go versions (#493) @mdelapenya
    • chore: display test summary on GH actions (#473) @mdelapenya
    • refactor: more nuanced env vs properties config (#479) @zregvart
    • chore(ci): update podman pipeline (#478) @mdelapenya
    • add missing test for checking status code matcher (#469) @VladimirStepanov
    • check that environment is clean (#458) @VladimirStepanov
    • fix: temp fix of flaky test (#455) @funvit
    • Negotiate client version for docker compose (#432) @rahul-muttineni-okcupid
    • chore: update configs for mkdocs (#434) @mdelapenya

    📦 Dependency updates

    • chore(deps): bump github.com/docker/go-units from 0.4.0 to 0.5.0 (#515) @dependabot
    • chore(deps): bump github.com/lib/pq from 1.10.6 to 1.10.7 in /e2e (#518) @dependabot
    • Update go-redis to v8.11.5 (#424) @johanoskarsson
    • chore(deps): bump gotest.tools/gotestsum from 1.7.0 to 1.8.2 (#499) @dependabot
    • chore(deps): bump github.com/containerd/containerd from 1.6.7 to 1.6.8 (#495) @dependabot
    • chore(deps): bump gotest.tools/gotestsum from 1.8.1 to 1.8.2 in /e2e (#498) @dependabot
    • chore(deps): bump github.com/containerd/containerd from 1.6.6 to 1.6.7 (#494) @dependabot
    • chore(deps): bump github.com/containerd/containerd from 1.5.9 to 1.6.6 (#444) @dependabot
    • chore: retire non-supported Go versions (#493) @mdelapenya
    • chore(deps): bump github.com/stretchr/testify from 1.7.2 to 1.8.0 (#487) @dependabot
    • chore(deps): bump gotest.tools/v3 from 3.2.0 to 3.3.0 (#486) @dependabot
    • chore(deps): bump github.com/cenkalti/backoff/v4 from 4.1.2 to 4.1.3 (#480) @dependabot
    • feat(deps): update dependencies to resolve dependabot security alerts (#484) @purpleclay
    • feat: update 3d party packages (#467) @VladimirStepanov
    • chore(deps): bump gotest.tools/gotestsum from 1.7.0 to 1.8.1 in /e2e (#477) @dependabot
    • chore: tell dependabot about the new module (#474) @mdelapenya
    • chore(deps): bump github.com/magiconair/properties from 1.8.5 to 1.8.6 (#448) @dependabot
    • chore(deps): bump gotest.tools/v3 from 3.0.3 to 3.2.0 (#431) @dependabot
    • chore(deps): bump containerd version to v1.5.13 (#446) @vinijabes
    Source code(tar.gz)
    Source code(zip)
  • v0.13.0(Apr 7, 2022)

    What's Changed

    • Send optional platform spec when creating container (#395) @hairyhenderson
    • Fix some lint errors (#400) @hairyhenderson

    🚀 Features

    • expose CopyToContainer so file can be created only in memory (#417) @oktalz
    • add ability to stop container (#416) @oktalz
    • Remove custom built docker image on container termination (#405) @gaborszakacs
    • Remove intermediate containers when building from Dockerfile (#403) @gaborszakacs
    • Expose HostConfig Resources via ContainerRequest (#402) @nhatthm
    • Logger per container instance (#393) @baez90
    • added interface for logger (#385) @dhuckins
    • Replace ContainerRequest.BindMounts and ContainerRequest.VolumeMounts with ContainerRequest.Mounts as dedicated type (#386) @baez90
    • feat: additionally remove volumes by default on compose down (#381) @peter-evans
    • Add wait.ExecStrategy to wait on cmd exec in a container (#368) @alexey-medvedchikov

    ⚠️ Breaking Changes

    • Replace ContainerRequest.BindMounts and ContainerRequest.VolumeMounts with ContainerRequest.Mounts as dedicated type (#386) @baez90

    🐛 Bug Fixes

    • Add support for Docker Compose V2 (#377) @artamonovkirill
    • #391: remember service map from all docker compose files (#392) @ankan-pfc
    • Bugfix: log-consumer go-routine should recover from closed-connection (#369) @Chrisss93

    📖 Documentation

    • add import statements to quick start (#408) @kevinawoo
    • docs/gotests: fixed broken link for garbage collector (#409) @kevinawoo
    • docs: fix ryuk link (#388) @dlsrb6342

    🧹 Housekeeping

    • chore(ci): run tests for more recent Go versions (#401) @mdelapenya
    • chore: preparation to rename to main (#422) @mdelapenya
    • fix: use 1.18 format to install dependencies (#421) @mdelapenya
    • Upgrade dependencies to latest versions (#387) @baez90

    📦 Dependency updates

    • fix: use 1.18 format to install dependencies (#421) @mdelapenya
    Source code(tar.gz)
    Source code(zip)
  • v0.12.0(Nov 19, 2021)

    What's Changed

    • Add container examples to documentation, clean up README (#353) @jaredpetersen
    • Add canned kafka to module doc (#357) @franklinlindemberg
    • Added CopyFileFromContainer to DockerContainer (#347) @codepitbull
    • Fix default network is not initialize when get gateway ip (#349) @mrproliu
    • fix: cache http wait request body (#339) @ajcasagrande
    • Update README.md (#335) @jbl428
    • typo: 10 minutes -> 10 seconds (#346) @robsonpeixoto
    • Change t.Error() to t.Fatal() in example (#337) @candlerb
    • fix: store raw information of a container (#334) @mdelapenya
    • container information stauff (#271) @01101101M

    ⚠️ Breaking Changes

    • Swap incorrect key and value of BindMounts and VolumeMounts (#354) @Lucaber

    🚀 Features

    • feat: support reading DOCKER_HOST from testcontainers props file (#373) @mdelapenya
    • Expose configuration of logger (#362) @rcrowe
    • Allow uid:gid to be specified during container creation (#363) @bamsammich
    • chore: add WaitForService method to compose (#344) @mdelapenya

    🐛 Bug Fixes

    • Close docker provider client on container terminate (#358) @anjmao

    📖 Documentation

    • docs: add users of testcontainers-go (#345) @mdelapenya

    🧹 Housekeeping

    • fix: don't panic at an unexpected log type (#360) @Vladimir-Rom

    📦 Dependency updates

    • chore(deps): bump github.com/docker/docker from 20.10.9+incompatible to 20.10.11+incompatible (#383) @dependabot
    • Updated default ryuk image to testcontainers/ryuk:0.3.3. (#376) @silh
    • Bump runc (#378) @benmoss
    • chore(deps): bump mkdocs from 1.0.4 to 1.2.3 (#367) @dependabot
    • chore(deps): bump github.com/docker/docker from 20.10.8+incompatible to 20.10.9+incompatible (#364) @dependabot
    • chore(deps): bump github.com/google/uuid from 1.2.0 to 1.3.0 (#333) @dependabot
    • chore(deps): bump github.com/docker/docker from 20.10.7+incompatible to 20.10.8+incompatible (#340) @dependabot
    Source code(tar.gz)
    Source code(zip)
  • v0.11.1(Jun 24, 2021)

    What's Changed

    🐛 Bug Fixes

    • fix(compose): filter containers by service name only (#330) @mdelapenya

    📖 Documentation

    • Fix misspelling (#328) @msal4
    Source code(tar.gz)
    Source code(zip)
  • v0.11.0(Jun 1, 2021)

    What's Changed

    • Retry follow logs request on closed connection (#323) @rmfitzpatrick
    • Add instrumentations for containers created with Dockerfile (#311) @xicoalmeida
    • close reaper go routines on DockerContainer.Terminate & DockerNetwork.Remove (#320) @Eun
    • Wait strategies must poll ports (#295) @programminh

    🚀 Features

    • feat: add wait-for support for compose (#308) @mdelapenya

    🐛 Bug Fixes

    • Fix/wait log exact number occurences (#298) @FlorianLehmann

    📦 Dependency updates

    • Upgrade to GitHub-native Dependabot (#316) @dependabot-preview
    • build(deps): bump github.com/docker/docker from 20.10.5+incompatible to 20.10.6+incompatible (#309) @dependabot-preview
    • build(deps): bump github.com/Microsoft/hcsshim from 0.8.15 to 0.8.16 (#307) @dependabot-preview
    • build(deps): bump github.com/go-sql-driver/mysql from 1.5.0 to 1.6.0 (#305) @dependabot-preview
    • Bump jinja2 from 2.11.2 to 2.11.3 (#296) @dependabot
    Source code(tar.gz)
    Source code(zip)
  • v0.10.0(Mar 12, 2021)

    What's Changed

    • Ensuring compilation for windows, darwin, and linux (#270) @ClaytonNorthey92
    • Remove Travis (#287) @gianarb
    • Fix typos (#281) @sashayakovtseva
    • Update Docker dependency to Docker 20.10.3. (#283) @michielboekhoff
    • feat: add logging on image pull error (#272) @tobiaszheller
    • chore: add GH action badge (#265) @mdelapenya
    • Remove gin dependency (#262) @colega
    • feature: move to github action #242 (#257) @Bablzz
    • Fix: comment log strategy (#256) @Bablzz
    • fix: fixed typos (#254) @Bablzz
    • Resolving issue #248 (#249) @ikolomiyets

    📖 Documentation

    • Document our approach to modules (#268) @gianarb
    • docs: fix variable type (#266) @mdelapenya

    🧹 Housekeeping

    • Add a GH action stage to send coverage reports to Codecov (#264) @mdelapenya
    • chore: support removing orphan containers when destroying the compose (#267) @mdelapenya
    • Fix shellcheck issues (#251) @Bablzz

    📦 Dependency updates

    • Bump github.com/Microsoft/hcsshim from 0.8.14 to 0.8.15 (#292) @dependabot-preview
    • Bump github.com/docker/docker from 20.10.4+incompatible to 20.10.5+incompatible (#291) @dependabot-preview
    • Bump github.com/docker/docker from 20.10.3+incompatible to 20.10.4+incompatible (#290) @dependabot-preview
    • Bump github.com/Microsoft/hcsshim from 0.8.7 to 0.8.14 (#288) @dependabot-preview
    • Bump github.com/google/uuid from 1.1.4 to 1.2.0 (#289) @dependabot-preview
    • Bump github.com/google/uuid from 1.1.4 to 1.2.0 (#280) @dependabot-preview
    • Bump github.com/stretchr/testify from 1.6.1 to 1.7.0 (#277) @dependabot-preview
    • Bump github.com/google/uuid from 1.1.2 to 1.1.4 (#276) @dependabot-preview
    • Bump gopkg.in/yaml.v2 from 2.3.0 to 2.4.0 (#269) @dependabot-preview
    Source code(tar.gz)
    Source code(zip)
  • v0.9.0(Sep 22, 2020)

    What's Changed

    • Poll interval (#200) @mniak
    • refector wait.HTTPStrategy (#221) @islishude

    🐛 Bug Fixes

    • Issue #243: Introducing the default network in case "bridge" is disabled (#244) @ikolomiyets
    • PR #247: bump docker/docker to v19.03.13 @gianarb
    Source code(tar.gz)
    Source code(zip)
  • v0.8.0(Sep 9, 2020)

    What's Changed

    • Use NetworkInspect to get the gateway's IP and fallback to getDefaultGatewayIP when fails (#237) @namco1992
    • Added support for copy file to container (#226) @franklinlindemberg
    • chore: run travis in multiple versions of Go (#233) @mdelapenya
    • Allow hostname to be configured (#227) @fbiville

    🐛 Bug Fixes

    • Close db connection when sql.wait is done (#220) @islishude

    📖 Documentation

    • Fix docs index (#218) @soroushj

    🧹 Housekeeping

    • chore: simplify complex docker-compose file (#217) @mdelapenya

    📦 Dependency updates

    • Bump github.com/google/uuid from 1.1.1 to 1.1.2 (#236) @dependabot-preview
    • update docker/docker package version (#229) @snowhork
    • Bump github.com/go-redis/redis from 6.15.8+incompatible to 6.15.9+incompatible (#230) @dependabot-preview
    • github.com/docker/distribution should be an indirect dependency (#222) @islishude
    Source code(tar.gz)
    Source code(zip)
  • v0.7.0(Jun 16, 2020)

    What's Changed

    • Fix typo and URL in docs (#205) @mdelapenya
    • Small tweaks to docs (#204) @rnorth
    • chore: do not raise panic in compose, use exec error instead so the client code can handle it (#189) @mdelapenya

    🚀 Features

    • Add pass-through for entrypoint to ContainerRequest (#209) @aklinkert
    • feat: implement skip utility function for testing (#181) @gianarb

    BC Break

    • Use default timeout in SQL waiter (#196) @mniak

    🐛 Bug Fixes

    • fixes #192 - guard access to reaper with a mutex (#198) @dvulpe

    📖 Documentation

    • Grammar and spelling fixes (#211) @flimzy
    • move contents from readme to docs (#201) @gianarb
    • Bootstrap documentation with mkdocs (#191) @gianarb
    • docs: add example for wait http (#184) @gianarb

    🧹 Housekeeping

    • wait strategy where not properly set (#215) @gianarb
    • use nginx when possible when writing test (#213) @gianarb
    • Grammar and spelling fixes (#211) @flimzy
    • feat: implement skip utility function for testing (#181) @gianarb

    📦 Dependency updates

    • Bump github.com/stretchr/testify from 1.6.0 to 1.6.1 (#206) @dependabot-preview
    • Bump github.com/stretchr/testify from 1.5.1 to 1.6.0 (#202) @dependabot-preview
    • Bump github.com/go-redis/redis from 6.15.7+incompatible to 6.15.8+incompatible (#199) @dependabot-preview
    • Bump pyyaml from 3.13 to 5.1 (#195) @dependabot
    • Bump gopkg.in/yaml.v2 from 2.2.8 to 2.3.0 (#194) @dependabot-preview
    • Bump github.com/gin-gonic/gin from 1.6.2 to 1.6.3 (#190) @dependabot-preview
    • Bump github.com/stretchr/testify from 1.4.0 to 1.5.1 (#187) @dependabot-preview
    Source code(tar.gz)
    Source code(zip)
  • v0.5.1(Apr 20, 2020)

  • v0.5.0(Apr 14, 2020)

    What's Changed

    • Added ContainerIP to retrieve ip of container from primary network (#179) @gianarb

    🚀 Features

    • #173: Reaper reuse (#176) @ikolomiyets

    🐛 Bug Fixes

    • Fix/159 wait port windows (#180) @gianarb
    Source code(tar.gz)
    Source code(zip)
  • v0.4.0(Apr 10, 2020)

    What's Changed

    🚀 Features

    • Force testcontainers to always pull images when creating container (#175) @ikolomiyets

    📦 Dependency updates

    • chore(vendor): update docker engine and uuid (#177) @gianarb
    • Bump github.com/gin-gonic/gin from 1.6.1 to 1.6.2 (#170) @dependabot-preview
    • Bump github.com/gin-gonic/gin from 1.6.0 to 1.6.1 (#168) @dependabot-preview
    • Bump github.com/gin-gonic/gin from 1.5.0 to 1.6.0 (#167) @dependabot-preview
    Source code(tar.gz)
    Source code(zip)
  • v0.3.1(Mar 3, 2020)

    🐛 Bug Fixes

    • Fix infinite loop caused by "image not found" (#162) @erdemtoraman
    • Bump travis-ci Go to 1.14.x (#161) @gianarb
    • Fix reaper connect failure by waiting for listening port (#154) @itaischwartz
    Source code(tar.gz)
    Source code(zip)
  • v0.3.0(Feb 19, 2020)

    What's Changed

    • #150 If networkMode host ForListeningPort does not work (#151) @Bablzz
    • Feature #133 - Add a FollowOutput method to attach log consumers to (#135) @ClaytonNorthey92
    Source code(tar.gz)
    Source code(zip)
  • v0.2.0(Feb 10, 2020)

    What's Changed

    • (#128) Throw an error when bash is not installed in the target container (#129) @mdelapenya
    • #136 log start-up progress (#137) @nikolayk812
    • #145 Update default reaper images to 0.2.3 (#148) @Bablzz
    • fix retry logic (#147) @dmarkhas
    Source code(tar.gz)
    Source code(zip)
  • v0.1.1(Feb 5, 2020)

  • v0.1.0(Feb 3, 2020)

    What's Changed

    • Add ability to configure tmpfs for a container (#131) @rieske
    • #138 Add NetworkMode host (#140) @Bablzz
    • feat: allow viewing of logs from stopped container (#120) @ClaytonNorthey92
    • (#124) Fix Go fmt (#125) @mdelapenya

    📦 Dependency updates

    • Bump github.com/go-redis/redis from 6.15.6+incompatible to 6.15.7+incompatible (#141) @dependabot-preview
    • Bump github.com/pkg/errors from 0.9.0 to 0.9.1 (#134) @dependabot-preview
    • Bump github.com/pkg/errors from 0.8.1 to 0.9.0 (#132) @dependabot-preview
    • Bump github.com/go-sql-driver/mysql from 1.4.1 to 1.5.0 (#130) @dependabot-preview
    Source code(tar.gz)
    Source code(zip)
  • v0.0.10(Dec 20, 2019)

    What's Changed

    • Support volume mounts (#116) @uportalis
    • Update README.md (#123) @elyzion
    • allow alternative reaper docker registry (#119) @makasprzak
    • Add more info about failing test on Travis (#115) @mdelapenya
    Source code(tar.gz)
    Source code(zip)
  • v0.0.9(Nov 20, 2019)

    What's Changed

    • fix: Add Go formatting to README code block (#104) @ClaytonNorthey92
    • #110 feature: Context as io.Reader (#113) @ClaytonNorthey92
    • #46 host port waiting strategy inside container (#114) @nikolayk812
    • Retry on any http failure (#109) @gavinbunney
    • Added few examples around Container Create and Network (#99) @gianarb
    • Added occurrence for the WaitLogStrategy (#100) @gianarb

    🐛 Bug Fixes

    • (#93) Reset internal state after container.Terminate() (#94) @mdelapenya

    📦 Dependency updates

    • Bump github.com/go-redis/redis from 6.15.5+incompatible to 6.15.6+incompatible (#103) @dependabot-preview
    • Bump github.com/go-redis/redis from 6.15.2+incompatible to 6.15.5+incompatible (#95) @dependabot-preview
    Source code(tar.gz)
    Source code(zip)
  • v0.0.8(Sep 7, 2019)

    What's Changed

    🚀 Features

    • Added the ability to build from a Dockerfile (#84) @ClaytonNorthey92

    🐛 Bug Fixes

    • Add v to release name or go modules will complain (#91) @gianarb

    📦 Dependency updates

    • Bump github.com/pkg/errors from 0.8.0 to 0.8.1 (#92) @dependabot-preview
    Source code(tar.gz)
    Source code(zip)
  • v0.0.7(Sep 4, 2019)

    What's Changed

    • (#73) Support attaching containers to different networks than bridge (#76) @mdelapenya

    BC Break

    • Using a slice of strings ([]string) for Docker Cmd. (#87) @ClaytonNorthey92
    Source code(tar.gz)
    Source code(zip)
  • v0.0.6(Sep 2, 2019)

    https://github.com/testcontainers/testcontainers-go/pull/81 - Removed the legacy part of the library

    https://github.com/testcontainers/testcontainers-go/pull/83 - Added support to run multiple wait strategies for a specific container

    Source code(tar.gz)
    Source code(zip)
  • v0.0.4(May 7, 2019)

ecsk is a CLI tool to interactively use frequently used functions of docker command in Amazon ECS. (docker run, exec, cp, logs, stop)

English / 日本語 ecsk ECS + Task = ecsk ?? ecsk is a CLI tool to interactively use frequently used functions of docker command in Amazon ECS. (docker run

null 114 Dec 13, 2022
The Container Storage Interface (CSI) Driver for Fortress Block Storage This driver allows you to use Fortress Block Storage with your container orchestrator

fortress-csi The Container Storage Interface (CSI) Driver for Fortress Block Storage This driver allows you to use Fortress Block Storage with your co

Fortress 0 Jan 23, 2022
Docker-NodeJS - Creating a CI/CD Environment for Serverless Containers on Google Cloud Run

Creating a CI/CD Environment for Serverless Containers on Google Cloud Run Archi

David 1 Jan 8, 2022
Dotnet-appsettings-env - Convert .NET appsettings.json file to Kubernetes, Docker and Docker-Compose environment variables

dotnet-appsettings-env Convert .NET appsettings.json file to Kubernetes, Docker

Daniel Dias de Assumpção 18 Dec 30, 2022
Dotnet-appsettings-env - Convert .NET appsettings.json file to Kubernetes, Docker and Docker-Compose environment variables

dotnet-appsettings-env Convert .NET appsettings.json file to Kubernetes, Docker

Daniel Dias de Assumpção 1 Feb 16, 2022
Kubei is a flexible Kubernetes runtime scanner, scanning images of worker and Kubernetes nodes providing accurate vulnerabilities assessment, for more information checkout:

Kubei is a vulnerabilities scanning and CIS Docker benchmark tool that allows users to get an accurate and immediate risk assessment of their kubernet

Portshift 832 Dec 30, 2022
`runenv` create gcloud run deploy `--set-env-vars=` option and export shell environment from yaml file.

runenv runenv create gcloud run deploy --set-env-vars= option and export shell environment from yaml file. Motivation I want to manage Cloud Run envir

sonatard 0 Feb 10, 2022
ginko-volkswagen detects when your tests are being run in a CI server, and reports them as passing

detects when your ginkgo-based tests are being run in a CI server, and reports them as passing

Christoph Blecker 7 Dec 4, 2021
An open-source, distributed, cloud-native CD (Continuous Delivery) product designed for developersAn open-source, distributed, cloud-native CD (Continuous Delivery) product designed for developers

Developer-oriented Continuous Delivery Product ⁣ English | 简体中文 Table of Contents Zadig Table of Contents What is Zadig Quick start How to use? How to

null 0 Oct 19, 2021
Prevent Kubernetes misconfigurations from ever making it (again 😤) to production! The CLI integration provides policy enforcement solution to run automatic checks for rule violations. Docs: https://hub.datree.io

What is Datree? Datree helps to prevent Kubernetes misconfigurations from ever making it to production. The CLI integration can be used locally or in

datree.io 6.1k Jan 1, 2023
🚢 Go package providing lifecycle management for PostgreSQL Docker instances.

?? psqldocker powered by ory/dockertest. Go package providing lifecycle management for PostgreSQL Docker instances. Leverage Docker to run unit and in

Adrian Brad 9 Sep 2, 2022
The dumb container runtime trying to be compatible with Kubernetes CRI

Go Dumb CRI The dumb container runtime trying to be compatible with Kubernetes CRI. Usage Run the server and create an IPC socket in /tmp/go-dumbcri.s

Ayaz Badouraly 0 Dec 12, 2021
NVIDIA container runtime

nvidia-container-runtime A modified version of runc adding a custom pre-start hook to all containers. If environment variable NVIDIA_VISIBLE_DEVICES i

NVIDIA Corporation 933 Dec 29, 2022
Container Runtime Interface profile

criprof Container Runtime Interface profiling and introspection. Useful for tracking down containers in logs or grouping by runtime characteristics. c

Christian R. Vozar 6 Jan 18, 2022
Provide task runtime implementation with pidfd and eBPF sched_process_exit tracepoint to manage deamonless container with low overhead.

embedshim The embedshim is the kind of task runtime implementation, which can be used as plugin in containerd. With current shim design, it is used to

Fu Wei 94 Dec 18, 2022
Docker Swarm Ingress service based on OpenResty with automatic Let's Encrypt SSL provisioning

Ingress Service for Docker Swarm Swarm Ingress OpenResty is a ingress service for Docker in Swarm mode that makes deploying microservices easy. It con

OpCycle 5 Jun 23, 2022
Open Source runtime tool which help to detect malware code execution and run time mis-configuration change on a kubernetes cluster

Kube-Knark Project Trace your kubernetes runtime !! Kube-Knark is an open source tracer uses pcap & ebpf technology to perform runtime tracing on a de

Chen Keinan 32 Sep 19, 2022
Andrews-monitor - A Go program to monitor when times were available to order for Brown's Andrews dining hall. Used during the portion of the pandemic when the dining hall was only available for online order.

Andrews Dining Hall Monitor A Go program to monitor when times were available to order for Brown's Andrews dining hall. Used during the portion of the

null 0 Jan 1, 2022