Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

pre/post compile hooks #89

Open
pixeleet opened this issue Aug 15, 2016 · 10 comments
Open

pre/post compile hooks #89

pixeleet opened this issue Aug 15, 2016 · 10 comments

Comments

@pixeleet
Copy link

As a Developer using the Deis platfrom I'd like to have pre/post compile hooks available for dockerfile based builds too, so I can execute checks that my services required for tests are alive and execute tests after an image has been made. Thus making my flow more CI/CD enabled.

@mboersma
Copy link
Member

This general idea works well for buildpack-based apps (now that deis/slugbuilder#104 landed).

It would be useful to have a similar pre-/post-compile hook mechanism for Dockerfile apps, as well as for deis pull deploys. We should put some thought into how to implement that in a consistent way--suggestions welcome!

@robholland
Copy link
Contributor

This probably belongs on deis/controller then?

@pixeleet
Copy link
Author

So controller would setup the service you depend on for testing? Would it work with shell scripts? Would it be a DSL like some ci systems use? How do you imagine it working @robholland?

@bacongobbler
Copy link
Member

bacongobbler commented Oct 14, 2016

I still think it's fair to keep it here for the time being until someone writes out a design document/PR for the proposed feature.

@robholland
Copy link
Contributor

Simplest functionality would be to specify commands that are run inside the container after build/pull. This would be useful for asset compilation for example, which needs to be run with the correct environment.

@robholland
Copy link
Contributor

How about:

$ deis hooks:post:list
=== app Post Hooks
$ deis hooks:post:add 'bundle exec rake assets:precompile'
=== app Post Hooks
bundle exec rake assets:precompile
$ deis hooks:post:remove 'bundle exec rake assets:precompile'
=== app Post Hooks

The registered commands are run inside the docker container after build and before deployment to k8s.

@bacongobbler
Copy link
Member

I'm concerned about the added time to run the one-off command in the same API call as when we build the app. We're already seeing a large number of issues come in that's usually ELB-related with the builder timing out.

If you're willing to take a crack at a PR as well as some end-to-end tests, I don't see an issue with the proposal as long as it works.

@bacongobbler
Copy link
Member

Does anyone have the time to work on this or shall we remove from the milestone since the cut-off for v2.13 is April 3rd?

@mboersma
Copy link
Member

It seems unlikely we can tackle this in time for v2.13. I'll kick it into the future.

@mboersma mboersma modified the milestones: v2.14, v2.13 Mar 22, 2017
@mboersma mboersma modified the milestones: v2.15, v2.14 Apr 27, 2017
@mboersma mboersma modified the milestones: v2.16, v2.15 May 24, 2017
@vdice vdice removed this from the v2.16 milestone Jul 3, 2017
@Cryptophobia
Copy link

This issue was moved to teamhephy/dockerbuilder#4

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

6 participants