-
-
Notifications
You must be signed in to change notification settings - Fork 1.2k
Docker
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.
-
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.
-
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.
- The -P flag forwards any ports that are
-
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
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.
-
Clone your fork of the ZoneMinder repo
git clone [email protected]:kylejohnson/ZoneMinder.git
-
Edit the Dockerfile to point to our fork
sed -i 's,ZoneMinder/ZoneMinder.git,kylejohnson/ZoneMinder.git,' Dockerfile
-
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
-
Build the local Dockerfile, which points to our fork. sudo docker build -t='kylejohnson/release-1.27-flat' .
-
Run the built docker image
CID=$(sudo docker run -P -d -t kylejohnson/release-1.27-flat)
-
See which port it is listening on
sudo docker port $CID 80 0.0.0.0:49158
-
Test your changes by connecting to that host on port 49158