How to deploy a wolkenkit application to digital ocean? How to deploy a wolkenkit application to digital ocean? docker docker

How to deploy a wolkenkit application to digital ocean?


Disclaimer: I am one of the developers of wolkenkit, so please take my answer with a grain of salt.

Basically, it first depends on how you have created the machine: As you basically need a machine that runs Docker, the easiest way is to use docker-machine to set it up. For details on this see the Docker documentation.

Once you have done this, you have two options of how to proceed:

  1. You can use the docker-machine env command to select the DigitalOcean machine is the currently active machine, and then run wolkenkit start as usual. Since the selected machine is stored within a number of environment variables such as DOCKER_HOST, the wolkenkit CLI tool uses these information to access the Docker host.

  2. The second option is to add a new environment to your wolkenkit application's package.json file as described here. Generally, all you need to do is to provide the name of the docker-machine machine that you have created. In this case, the wolkenkit CLI will take care of configuring the connection automatically, so you don't have to do this manually. You then start your application using wolkenkit start --env production, assuming that your environment is called production.

The first approach works best if you don't often change your machines. The second is best if you to work locally most of the times, and rarely deploy to the cloud. The latter approach also enables you to define multiple environments, such as production, staging, test, … and deploy to one or the other, depending on a command-line flag.

Please note that you may also use the WOLKENKIT_ENV environment variable to define a default environment other than default (which is the CLI's default value).

Hope this helps :-)

PS: Please note that your droplet should have at least 1 GByte of RAM, so the smallest instance may be too small. If you use a droplet with too little RAM, the Docker containers seem to start as expected, but they won't be reachable from the outside.

PPS: Please also note that you need to have a valid certificate for your droplet, otherwise the CLI will not be able to detect whether the application is running or not (because it then can't get past beyond the invalid certificate). This will probably be changed in a future version of the CLI.


Thanks for the detailed answer. I used the second approach adding a new environment to my package.json. This worked for me :-). Feels awesome deploying changes in seconds with the CLI :-)

PS: Make sure to have the newest version of docker-machine installed (>= 0.12.1). Otherwise the creation process of the droplet on digital ocean will not succeed.