Comments (10)
We're using vcr to record interactions with a single version of Docker then replaying during the Travis CI build. Depending on speed, testing against a real Docker Remote API and multiple versions could be a great direction. What is the state of Travis support for Docker? If it's there, can it be made to work with the build matrix feature?
from docker-api.
Ah, yeah, using vcr of course makes sense, too, especially since API payloads won't change for any released verison of Docker. You could still apply the same for a matrix of different docker versions to run against.
The basic idea is to make your test suite depend on an env var like DOCKER_VERSION
and either
- run against that Docker version live or
- run against vcr cassettes recorded for that Docker version
If you don't want to record vcr cassettes for different Docker versions then you could install the required Docker version in a before_script
on Travis CI, something like sudo apt-get update; sudo apt-get install lxc-docker-$DOCKER_VERSION
.
Since you already have vcr in place I'd personally probably go for the pre-recorded approach for ease of development though.
Does that make sense?
from docker-api.
Yes, great feedback, thanks.
In the short term, we should upgrade our Remote API version, preferably to 1.8. That solved the equivalent issue for docker-py.
I like the idea of continuing to use vcr for the DOCKER_VERSION
that we're developing against, and trying out live Docker on Travis CI for different values. Created #84.
Depending on how that goes, we could eventually look at whether vcr is still necessary.
from docker-api.
@bfulton Awesome, sounds great. Please let us know if there's anything we can help with.
❤️
from docker-api.
Note that api version 1.9 is available in Docker 0.8. Do we have any expected timeline for completing this API upgrade?
from docker-api.
Understood. Since 1.8 is listed as latest stable, we'll target that now. ETA for released upgrade is this week.
from docker-api.
I have a fork where I'm trying to get api version 1.9 to work with all the tests. It seems 0.8 is a pretty buggy release, as a number of things don't seem to work. I've encountered a couple of bugs already: moby/moby/issues/4099 and moby/moby/issues/1141.
Looks like we may have to wait for 0.8.1 for some of these things to be fixed.
from docker-api.
This should be fixed with this pull.
from docker-api.
Awesome, beat me to it! 😄
from docker-api.
Tested against live docker, closing this issue.
from docker-api.
Related Issues (20)
- Docker::Image.create raises 404 when there is not enough disk space
- Feature request: support docker system calls.
- Warning: URI.escape is obsolete (Ruby 2.7.0) HOT 4
- warning: URI.escape is obsolete HOT 1
- undefined method `copy' on 2.0.0 HOT 2
- validate_version! doesn't exist HOT 2
- Please tag v2 releases in github
- Docker version in README
- Docker::Container.get throws `no implicit conversion of nil into String (TypeError)` Error
- The default connection type should be application/x-tar HOT 1
- The connection content_type should be modified based on the type of operation occuring
- Question: is BuildKit supported, for SSH credentials specifically? HOT 2
- Cannot use Docker API gem with Docker Desktop on Windows HOT 2
- Parameters that accept (string) Paths should also accept Pathname objects
- Ability to read a file from the container by chunks
- .dockerignore support seems broken
- class Docker::Plugin object that maps to the Plugins section of the API
- How to pass env variables when starting a container? HOT 1
- The `:host` parameter should not be set for `unix://` connections. HOT 1
- Docker::Event.stream documentation should mention how to waive the read_timeout 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 docker-api.