astefanutti / decktape

PDF exporter for HTML presentations
MIT License
2.19k stars 176 forks source link

Decktape CLI install for use within custom Docker image? #172

Closed gitpitch closed 5 years ago

gitpitch commented 5 years ago

Hi Antonin, happy new year. So I have a question for you. I would like to add decktape to a custom Docker image that I am building so I can then use the decktape CLI within that image. My custom image is based on alpine, v3.8.

I can see from the Dockerfile in this repo that you have a multi-stage build from source. As an end-user, what is the recommended way to add the decktape CLI (binaries w/dependencies) to a custom Docker image. For example, assume I want to consistently install decktape v2.9.1 within my image.

Ideally, I'm hoping for something more streamlined - and consistent - than building from source. For example, can the CLI be added to a custom Docker image using a pre-built npm package for a specific decktape version or something like that?

Any help you can provide is much appreciated. Thanks.

astefanutti commented 5 years ago

Hi Antonin, happy new year.

Thanks! Happy new year to you too!

Ideally, I'm hoping for something more streamlined - and consistent - than building from source. For example, can the CLI be added to a custom Docker image using a pre-built npm package for a specific decktape version or something like that?

Right. It should be possible to install Decktape using NPM, e.g. npm install decktape@2.9.1. However, it's a bit trickier on Alpine, as some native dependencies may cause trouble:

Another approach would be to use Decktape image as base image, if possible, as it's based on Alpine 3.8 already.

gitpitch commented 5 years ago

Great. Thanks for sharing these details and suggestions. I will do some experiments and let you know how it goes.

However, it's a bit trickier on Alpine, as some native dependencies may cause trouble

If I could change from Alpine to some other base OS, what would you recommend to simplify the install of decktape?

astefanutti commented 5 years ago

If I could change from Alpine to some other base OS, what would you recommend to simplify the install of decktape?

On let's say Ubuntu, npm i -g decktape@2.9.1 should be enough.

gitpitch commented 5 years ago

Quick update. I tried each of your suggestions and found using decktape as my base image led to the simplest solution. Closing this issue now. With thanks.

astefanutti commented 5 years ago

Great! Thanks for the feedback.