Skip to content
Kyle Johnson edited this page Mar 4, 2014 · 16 revisions

Examples

Create a pristine test environment

In this example, we will be spinning up a brand new container with the latest ZoneMinder code. At the end of the example, you'll be able to access the ZoneMinder container via the forwarded ports.

  1. Build the ZoneMinder image. This may take a while.

    sudo docker build -t='kylejohnson/release-1.27' github.com/ZoneMinder/ZoneMinder`
    

    The -t flag allows you to 'tag' your image. In this example, I am building a container for myself, for use with the 1.27 release.

  2. Run (start) the ZoneMinder container.

     CID=$(sudo docker run -P -d -t kylejohnson/release-1.27)`
    
    • The -P flag forwards any ports that are EXPOSE'd in the Dockerfile (80 and 22).
    • The -d flag detaches the container and runs it in the background.
    • The -t flag tells docker which container to run.
  3. Find out which ports your container is listening on. You can now access ZoneMinder, via ssh or http, on the ports listed in those last two commands.

kjohnson@lxc01:~/$ sudo docker port $CID 22
0.0.0.0:49155
kjohnson@lxc01:~/$ sudo docker port $CID 80
0.0.0.0:49156

Testing changes

In this example we will use docker to build a new zoneminder 'image' for each change that we make, in order to test our code in a clean environment.

We will clone a fork of the zoneminder repo, edit the dockerfile to point to our fork of the code on github, make changes, push them to our fork, and then build from the local dockerfile - against our fork of the zoneminder repo.

  1. Clone your fork of the ZoneMinder repo git clone [email protected]:kylejohnson/ZoneMinder.git

  2. Edit the Dockerfile to point to our fork sed -i 's,ZoneMinder/ZoneMinder.git,kylejohnson/ZoneMinder.git,' Dockerfile

  3. Make changes. In this case I am testing different popup sizes for the flat skin.

git add web/skins/flat/js/skin.js
git commit -m 'Fix popup sizes in flat skins.  Fixes #331'
git push origin release-1.27
  1. Build the local Dockerfile, which points to our fork. sudo docker build -t='kylejohnson/release-1.27-flat' .
Clone this wiki locally