GithubHelp home page GithubHelp logo

axiscommunications / docker-compose-acap Goto Github PK

View Code? Open in Web Editor NEW
1.0 6.0 3.0 532 KB

ACAP application to add dockerd and docker-compose to a container capable Axis device

License: Apache License 2.0

Makefile 1.92% C 86.80% Shell 2.81% Dockerfile 6.95% HTML 1.52%
acap axis docker docker-compose

docker-compose-acap's People

Contributors

corallo avatar deepikas20 avatar dependabot[bot] avatar ecosvc-dockerhub avatar github-actions[bot] avatar joakimr-axis avatar jojju avatar killenheladagen avatar kristinub avatar lukgiax avatar madelen-at-work avatar mattias-kindborg-at-work avatar pataxis avatar shreyasatwork avatar

Stargazers

 avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar

docker-compose-acap's Issues

Compatibility instructions in README

Regarding the compatibility instructions in README.md, perhaps we should consider adding information that you need to enable SSH (with link to existing instructions, or have the instructions here in the repo) on the device before attempting to run the command.

One might otherwise, falsely, assume that the camera hasn't support for Docker, while it in fact doesn't allow SSH connections.

Starting dockerd failed

Hi there, I have an issue where if a camera unexpectedly reboots (power or memory) then on reboot I get the following errors:

2022-08-05T10:39:30.172+10:00 axis-b8a44f3be4f1 [ ERR     ] dockerdwrapperwithcompose[1353]: Couldn't identify the file system of the SD card at /var/spool/storage/SD_DISK
2022-08-05T10:39:30.179+10:00 axis-b8a44f3be4f1 [ ERR     ] dockerdwrapperwithcompose[1353]: Starting dockerd failed

I am using Docker Daemon with Compose version 1.2.3, the camera is P3265-LV, Axis OS version 10.9.4. After reboot if I stop the app and start it again, it works perfectly fine. I have a 126gb sd card installed and formatted as per below:

image

"--disable-host-loopback" should be optional via an exposed AXParameter to enable remote connection from other acap applications

Describe the feature

I am advocating to add an AXParameter to enable access to the host loopback through toggling the presence of '--disable-host-loopback' in the rootless startup call here

My use case is consuming the cameras RTSP stream through a rootless dockerised application which may not be aware/detect underlying changes in the interface/IP configuration and should only need to know the relative path to the stream via 'host.docker.internal'.

I realise that RTSP also runs on a privileged port (554) but this can easily be remedied by enabling a custom port above 1024. If there are other services which cannot be moved to custom ports there might be consideration to allow for this but I do not feel that this issue scopes towards the implications of extendng to privileged ports.

Added value

There are a number of ACAP applications which will consume/forward data from the host for the purposes of recording/backup, telemetry and brokering communication via MQTT which is. natively configured and exposed on the host. Adding a method to explicitly allow loopback access to applications lets users make in an informed decision about whether they would like to implement a less secure (but not root privileged) feature in order to realise many of these applications.

There are many options/ways in which the problem can be solved outlined here but other solutions would require intermediary containers and combining sandboxes/functionality which feels brittle and difficult to implement for most initial users.

Im Happy to collaborate on the PR if the feature is welcome

containerised applications do not survive a camera restart

Describe the feature

Less a feature and more a requisite for production usage. Should anyone use the contianer-example pattern they will encounter an issue whereby if their camera is either gracefully restarted or externally rebooted the containers do not respawn.

The root cause of the issue is that the paths which are recreated in the parent namespace are not removed prior to dockerd starting, resulting in the inability to create containers under /run/container in the user namespace.

You can see the dockerd-rootless.sh solves this by deleting the necessary paths so dockerd/rootlesskit can administrate these appropriately https://github.com/moby/moby/blob/4318ab0b33888d155abea0366d9c066dad46cf6c/contrib/dockerd-rootless.sh#L144

Added value

Any body availing of containerised applications which are managed by the runtime itself and not restarted externally will need this in order to have stable fault tolerant workloads.

Additional context

N/A

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.