Comments (7)
The driver doesn't seem to print much (just 1 error message about pulling the image). Outputting everything to the Operation writer would be just fine by me.
from cnab-go.
Seems reasonable to me.
from cnab-go.
The docker driver is passed on the
Operation
struct a writer for any output, but instead it is writing directly to stdout.
Is this still the case? If so, can you give a pointer?
from cnab-go.
Yup, it's still the case. 😀 You feel like tackling it?
The driver implements the common interface for a driver, but in it's exec
function it ignores the writer field coming in on the op argument to exec.
from cnab-go.
When discussing this issue with @benpatt, I wondered if there was a distinction between the output stream for the logs from the docker driver and from the container that the docker drive runs. @carolynvs would you say that all the logs from the driver itself and from the container should be sent to the same output stream (the one in the Operation
struct)?
from cnab-go.
As said on this PR review cnabio/duffle#808 (review)
Well we are actually using those 2 methods here in docker/app
https://github.com/docker/app/blob/master/internal/commands/cnab.go#L191
If I remember correctly we are using the container output stdout and stderr for our custom actions (ex: our render action which can fail or print a result), but we still need to mute the driver itself using the dockerCli stdout and stderr pointing to ioutil.Discard.
By the way, I'm wondering why we are still using the drivers here, as they were moved to cnab-go 🤔
https://github.com/deislabs/cnab-go/blob/master/driver/docker/docker.go
from cnab-go.
As said on this PR review #808 (review)
Well we are actually using those 2 methods here in docker/app
https://github.com/docker/app/blob/master/internal/commands/cnab.go#L191
If I remember correctly we are using the container output stdout and stderr for our custom actions (ex: our render action which can fail or print a result), but we still need to mute the driver itself using the dockerCli stdout and stderr pointing to ioutil.Discard.
It would be good to add a driver test to tie down the behaviour. Otherwise, it is bound to break docker/app in future.
By the way, I'm wondering why we are still using the drivers here, as they were moved to cnab-go 🤔
https://github.com/deislabs/cnab-go/blob/master/driver/docker/docker.go
Good catch. Raised cnabio/duffle#809 to delete the old code. We also need to move this issue to cnab-go which is now its proper home.
from cnab-go.
Related Issues (20)
- Use concurrency in the data persistence layer? HOT 1
- Return partial data on error?
- Safe way to generate ULID without possible error?
- Consolidate regex for Claim Name Validation Regex
- Handle context cancellation in the kubernetes driver HOT 1
- Remove custom yaml marshaling from Source struct
- Add Parameter Set HOT 3
- Support streaming outputs
- Use go:embed from Go 1.16 HOT 1
- Require only one review for pull requests to the cnab-go library HOT 9
- Remove @glyn from CODEOWNERS HOT 2
- Can we replace the filesystem store with something queryable like sqlite? HOT 1
- Optional parameters are not injected properly HOT 1
- Unused docker driver config options HOT 1
- Cannot validate a parameter whose default is {} HOT 1
- Don't log a warning about log streaming before the container has started
- Remove CRUD data access layer
- Flake: TestClaimSchema HOT 2
- Flake: TestDockerDriver_Run
- Make owner reference configurable for resources created by the kubernetes driver
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 cnab-go.