Update README.md

This commit is contained in:
Andrew Bauer 2018-01-14 16:41:21 -06:00 committed by GitHub
parent e1f8278712
commit 40928b2f3c
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
1 changed files with 3 additions and 46 deletions

View File

@ -1,47 +1,4 @@
# Overview ## Docker Support Files
[Docker](https://www.docker.io/) allows you to quickly spin up application containers, The files in this folder are used to support our Dockerfiles here:
which are similar to very lightweight virtual machines. The ZoneMinder Dockerfile will https://github.com/ZoneMinder/zmdockerfiles
start an Ubuntu 12.04 container with MySql, Apache, and PHP properly configured, and
will then compile and install ZoneMinder.
It will also start an SSH server that you can use to log into the container.
This is still a bit of a work in progress.
## How To Use
1. Install [Docker](https://www.docker.io/)
2. Build ZoneMinder container
```sudo docker build -t yourname/zoneminder github.com/ZoneMinder/ZoneMinder```
3. Run it
```CID=$(sudo docker run -d -p 222:22 -p 8080:80 --name zoneminder yourname/zoneminder)```
4. Use it -- you can now SSH to port 222 on your host as user root with password root.
You can also browse to your host on port 8080 to access the zoneminder web interface
## Developing With Docker
If you wish to contribute to ZoneMinder, Docker can be helpful. By re-running
```docker build``` in your working directory, any code modifications you have
made will be pulled into a new container, compiled, and started, all without
modifying your base system.
Development is not totally without annoyances, as any change
to the project will require a full rebuild of all C++. Docker notices that the
directory which has been ADD'ed is now different, and therefore all steps after
the ADD command must be recomputed. A fix for this is to update the Dockerfile to
move the configure and make commands into start.sh, and then use a volume mount
to cache the build directory (I think it's ```/tmp```) on your host filesystem.
This would be really useful for a developer, and would remove the annoying build
problem, but some of the Docker push/pull benefits would be lost.
Docker containers can be both CPU and memory limited, so this can be a practical
method to compile or run multiple development builds of ZoneFinder simultaneously
without taxing your host system.
## Use Cases
## TODO
- Describe how to connect to monitors by mounting devices
- Create a 'development' dockerfile to remove the need to rebuild the entire project
after each small change