Comments (7)
A problem with solution 1 is that in order for it to make sense, it have to be implemented on the Image
trait like this:
pub trait Image
where
Self: Sized + Default,
Self::Args: IntoIterator<Item = String>,
{
type Args;
fn start(self) -> Container<DockerCli, Self> {
let docker = DockerCli::new();
docker.run(self)
}
...
}
- This forces the usage of a specific Docker client (not nice but would be ok)
- In order to use methods from a trait, the trait needs to be in scope. Here we are back again with a necessary import from
testcontainers
.
from testcontainers-rs.
I might be thick but I don't really get the issue. Can't the image crate just compile with whatever testcontainers version you're using assuming the minor versions are the same?
from testcontainers-rs.
It needs to be the exact same version actually: Cargo needs to be able to find a match between the semver range of the testcontainers dependency for the image crate as well as the one that the user code depends on which tries to start the image.
If the two don't match, the code will not compile because the stuff you import directly from testcontainers
is different from what the image crate gets compiled against.
from testcontainers-rs.
So if we change the dependency on things to something like:
[dependencies]
testcontainers = { path = "../../testcontainers", version = "0.2" }
for the images. And a user uses testcontainers version "0.2.2" then it won't just work? Why would it not compile the image against 0.2.2 then as well?
from testcontainers-rs.
This one would work. As I said, cargo needs to be able to find a 'match' between the two semver ranges that are specified. 0.2.2
is within the semver range 0.2.x
so it should work.
from testcontainers-rs.
You cannot use path in combination with version
from testcontainers-rs.
You can, cargo will use the version upon publishing and the path for local development.
from testcontainers-rs.
Related Issues (20)
- Support accessing container logs HOT 15
- parallel tests hang with multiple instances of rabbit as GenericImage HOT 1
- [Question] Why would testcontainers fail to create docker network under non-root user HOT 1
- [Discussion] Reason to maintain two different implementation? HOT 1
- [Question] How to specify a newer image for Postgres HOT 2
- Supports running image with `--user` option. HOT 9
- Container doesn't stop after test with std::sync::OnceLock HOT 2
- Concurrency issue: Connection reset by peer HOT 3
- Equivalent to TestContainers.exposeHostPorts? HOT 3
- Stop containers when tests are killed HOT 1
- Feature: Retries due to periodic failure of underlying `docker` commands (ex. `rm`)? HOT 3
- Allow changing the container command HOT 1
- How to reuse containers within a test run like in Java HOT 1
- testcontainers-rs crate missing README and LICENSE files since 0.14 HOT 1
- Container::exec wait conditions are applied to logs from run command instead from exec command HOT 1
- Support overriding "command" for Image HOT 1
- How to get container host ip? HOT 3
- Can we let Docker choose a port? HOT 2
- Mapped ports are not updated after container restart HOT 1
- Project revamp HOT 1
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from testcontainers-rs.