Thanks @khamoud. I’ll add my piece too @aadams.
Following the steps outlined above will give you a deployment. In terms of its production-readiness, there are a few additional points to consider:
a) Your app should be running behind SSL.
b) You shouldn’t be terminating SSL with Meteor. This is because the encryption performance of Node.js is pretty bad. Ideally you should be terminating SSL at a load balancer like NginX or HAProxy (or even AWS ELB with websockets) and then proxy the plain HTTP traffic behind a firewall to your Meteor.js app instance(s).
As @khamoud mentioned, your MongoDB deployment should be external to your Meteor.js apps. You could run it on a separate EC2 instance (in container or on the host), or you could choose to use a third-party solution like Compose.
Additional runtime dependencies (pdftk)
Additional runtime dependencies would need to be bundled into your Docker image. You’ll need to edit your app
Dockerfile to ensure these are installed. Any directory structure you can place into your app folder and then copy in.
It might look something like this:
RUN apt-get install -y pdftk
COPY ./dir_structure /target_in_container
If you don’t need any of the generated files persisted, then you don’t need to mount a volume into the container.