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)
- Docker auth configuration
- Feature Request: Exec must return a struct that contains exit code, stdout, stderr HOT 12
- "hyper legacy client error" when starting any container HOT 5
- `Error in the hyper legacy client: client error (Connect)` on Windows HOT 5
- Introduce HTTP wait strategy
- Is there an alternative to the withInitScript method as in the Java implementation? HOT 4
- Support `rustls` HOT 2
- Feature request: support `wait_times` for log wait strategy.
- How to wait for container to finish running? HOT 3
- Specify host port of exposed port. HOT 3
- Support customize CMD for GenericImage HOT 2
- WaitFor command exit with 0 HOT 8
- Put HttpWaitStrategy behind a feature flag HOT 3
- Single container start for whole integration test file HOT 7
- Unconditional `Url` parsing breaks `NamedPipeConnector` on Windows HOT 1
- Cutting out a new release HOT 10
- Missing feature for pausing containers HOT 1
- Support for passing platform HOT 1
- Not all logs are captured when a container is dropped HOT 3
- [Feature request]: Allow specifiying the working directory 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.