Meteor app container - tuned for Kubernetes and container-linking deployment at-scale.
534
Dockerfile linksThere are many hobbiest docker containers out there for running Meteor Apps. Some containers attempt to be everything to everyone, and have a uber-rich (and often complex) deployment time configurable features set.
meteorkd takes a different goal-focused approach to Meteor container crafting. A very pragmatic one.
Our goal is to tune our container for optimal image size, Kubernetes and Docker container-linking flexibility, plus build and runtime performance.
The meteorkd container is not for you if you are:
You will find other containers on the hub that may satisfy your needs.
If you are using K8s to distribute tens, hundreds, or thousands of instances on bare-metal farms - you may find this container useful. (Further optimizations are always possible, but need to be considered on a case-by-case basis.)
Even if you're not using k8s, but working with a custom cloud solution via docker container linking, you might find this container useful.
We know support for Mongo oplog tailing on arbitrary topology replica sets is important for many target users - and this container is built to facilitate (meaning: not hinder) it. It works well with the official mongo image on docker hub - via container linking OR k8s services.
Your app will be converted into a Docker image. Then you can distribute that image on k8s.
You use singli/meteorkd as your base image. That's the only thing you've to do. Here's how to do it.
Add following Dockerfile into the root of your app:
FROM singli/meteorkd
MAINTAINER Your Name
ENV ROOT_URL http://yourapp.com
In your app directory, add a set_env.sh file and set all the environment varaibles that you need for k8s services references, or docker container linking. set_env.sh will be parsed at runtime - just before startup of the meteor app.
Then you can build the docker image with:
docker build -t yourname/app .
Then you can run your meteor image with
docker run -d \
-p 8099:80 \
yourname/app
Then you can access your app from the port 8099 of the host system.
Using one of the popular containers, we built our sample (small) Meteor app image. The image size was:
REPOSITORY TAG IMAGE ID CREATED VIRTUAL SIZE
meteorsales latest 58766aba8974 2 days ago 816.2 MB
The same app with meteorkd:
REPOSITORY TAG IMAGE ID CREATED VIRTUAL SIZE
msaleskd latest 290dcc1ba16e 30 seconds ago 133.8 MB
Both images were tested on a 50 instances over 3 bare-iron-minions k8s cluster and performed equally.
Content type
Image
Digest
sha256:a4271a0f6…
Size
74.8 MB
Last updated
almost 11 years ago
docker pull singli/meteorkd