{"id":27201649,"url":"https://github.com/markmac99/rms-docker","last_synced_at":"2025-04-09T21:57:17.346Z","repository":{"id":273521175,"uuid":"919990497","full_name":"markmac99/RMS-docker","owner":"markmac99","description":"Running RMS in a docker container. ","archived":false,"fork":false,"pushed_at":"2025-01-21T11:30:30.000Z","size":20,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-04-09T21:57:16.878Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Shell","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/markmac99.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2025-01-21T11:24:25.000Z","updated_at":"2025-01-21T11:30:34.000Z","dependencies_parsed_at":"2025-01-21T12:38:11.834Z","dependency_job_id":null,"html_url":"https://github.com/markmac99/RMS-docker","commit_stats":null,"previous_names":["markmac99/rms-docker"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/markmac99%2FRMS-docker","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/markmac99%2FRMS-docker/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/markmac99%2FRMS-docker/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/markmac99%2FRMS-docker/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/markmac99","download_url":"https://codeload.github.com/markmac99/RMS-docker/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248119358,"owners_count":21050754,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2025-04-09T21:57:16.176Z","updated_at":"2025-04-09T21:57:17.337Z","avatar_url":"https://github.com/markmac99.png","language":"Shell","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Running RMS in a Docker Container\r\n\r\nRMS can be run in a Docker container using the scripts here. The approach i've taken is \r\nto build a container based on Ubuntu 20.04 (which supports RMS natively) and to attach an\r\nexternal volume in the Host which is mapped to ~/RMS_data in the container.\r\n\r\n## Configuration\r\nThe camera-specific configuration files (.config, mask.bmp, etc) are stored in a folder ./config \r\non the external volume along with a configuration script *configure_container.sh*. \r\nThe image is configured to run this script at startup. \r\n\r\nAs currently deployed, the script copies the camera-specific configuration, SSH keys \r\nand other configuration data, updates the UKMON toolset, and installs some functionality specific to me. \r\n\r\n## RMS_data\r\nThe use of the external filesystem allows RMS to write data directly back to the Host, removing \r\nany need to copy or move data after each run and keeping the container size small. However, you'll \r\nneed to implement some process on the host to purge the CapturedFiles data periodically, as RMS typically\r\ncollects 10-20GB per night. \r\n\r\n## Updating RMS\r\nRMS is updated whenever the container is restarted or whenever the image is rebuilt. To force an update, \r\nrestart the container. I am using cron to restart all the containers daily via the *runAll.sh* script\r\n\r\n## Scripts\r\n* build.* - builds the image. Note that you'll need Docker Desktop installed with WSL2 support enabled in order to build the container properly. \r\n* runAll.sh - runs multiple containers.  I run this from cron to restart everything daily. \r\n\r\n* run.* - run the image.\r\n* login.* - login to the container.\r\n* stop.* - stop the container.\r\n\r\nThe last three all require a path to be passed, specifying where to find the container configuration. For example *.\\run.ps1 f:\\dockervols\\uk0006* will look in the specified location for the container config, and *login.ps1 f:\\dockervols\\uk0006* will read from this location to determine which container to connect to. \r\n\r\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmarkmac99%2Frms-docker","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmarkmac99%2Frms-docker","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmarkmac99%2Frms-docker/lists"}