• Recent
  • Tags
  • Unsolved
  • Solved
  • MagicMirror² Repository
  • Documentation
  • 3rd-Party-Modules
  • Donate
  • Discord
  • Register
  • Login
MagicMirror Forum
  • Recent
  • Tags
  • Unsolved
  • Solved
  • MagicMirror² Repository
  • Documentation
  • 3rd-Party-Modules
  • Donate
  • Discord
  • Register
  • Login
A New Chapter for MagicMirror: The Community Takes the Lead
Read the statement by Michael Teeuw here.

ChatGpt developed Module MMM-Dockerstat

Scheduled Pinned Locked Moved Development
27 Posts 4 Posters 5.8k Views 4 Watching
Loading More Posts
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • M Offline
    mumblebaj Module Developer @Rags
    last edited by Apr 2, 2023, 12:31 PM

    @Rags Unfortunately I don’t have a docker running here so cannot test that portion of your code. You need to supply the docker name as an input parameter to feed into .exec(`sudo docker ps -f name=${payload.container} --format "{{.Names}} {{.Status}}"`)

    Have you added this into the config.js?

    Check out my modules at: https://github.com/mumblebaj?tab=repositories

    S R 2 Replies Last reply Apr 2, 2023, 12:41 PM Reply Quote 0
    • S Away
      sdetweil @mumblebaj
      last edited by Apr 2, 2023, 12:41 PM

      @mumblebaj can u see the container names from inside a container?

      Sam

      How to add modules

      learning how to use browser developers window for css changes

      M R 2 Replies Last reply Apr 2, 2023, 12:58 PM Reply Quote 0
      • M Offline
        mumblebaj Module Developer @sdetweil
        last edited by Apr 2, 2023, 12:58 PM

        @sdetweil No idea. Never worked with containers before. (Shocking I know :astonished_face: ) Just gave him a bit of code to get the module running correct up until the point he has to check the status of the container code.

        Check out my modules at: https://github.com/mumblebaj?tab=repositories

        1 Reply Last reply Reply Quote 0
        • R Offline
          Rags @mumblebaj
          last edited by Apr 2, 2023, 1:51 PM

          @mumblebaj {
          module: ‘MMM-Dockerstat’,
          header: ‘Docker Status’,
          position: ‘top_right’,
          config: {
          host: ‘192.168.1.200’, // IP address of the second Pi running Docker
          interval: 600000, //60 seconds
          user:‘pi’,
          password:‘mypass’,
          container: ‘wireguard’, // just added to check
          offlineIcon: ‘fa-times-circle’, // Font Awesome icon for offline status
          onlineIcon: ‘fa-check-circle’ // Font Awesome icon for online status
          }
          },
          Yes i added the name of the container. It is still not displaying the status. Anyways the idea was for the module to probe and display the status of all containers running in docker.

          1 Reply Last reply Reply Quote 0
          • R Offline
            Rags @sdetweil
            last edited by Rags Apr 2, 2023, 2:01 PM Apr 2, 2023, 1:58 PM

            @sdetweil said in ChatGpt developed Module MMM-Dockerstat:

            @mumblebaj can u see the container names from inside a container?

            ‘Docker ps’ command list all the containers that are currently running. So i guess the command will execute and should be able to confirm the status with the command
            " ‘.exec(sudo docker ps -f name=${payload.container} --format "{{.Names}} {{.Status}}")’"

            This command uses the Docker CLI (Command Line Interface) to list the running Docker containers on a host, filtering the results by the name of the container specified in payload.container. The --format option specifies how to format the output of the docker ps command. In this case, {{.Names}} {{.Status}} is used to output only the names and statuses of the containers that match the specified filter. The output is then captured and processed by the SSH library used in the code.

            anyways " work in progress ".

            M 1 Reply Last reply Apr 2, 2023, 2:51 PM Reply Quote 0
            • M Offline
              mumblebaj Module Developer @Rags
              last edited by Apr 2, 2023, 2:51 PM

              @Rags The output from the query does not return a Status of “Online”

              See below what it returns.

              6ddea81e-8969-4d68-b3c3-62dfb470ab10-image.png

              Check out my modules at: https://github.com/mumblebaj?tab=repositories

              R 1 Reply Last reply Apr 2, 2023, 3:18 PM Reply Quote 0
              • R Offline
                Rags @mumblebaj
                last edited by Apr 2, 2023, 3:18 PM

                @mumblebaj said in ChatGpt developed Module MMM-Dockerstat:

                @Rags The output from the query does not return a Status of “Online”

                See below what it returns.

                6ddea81e-8969-4d68-b3c3-62dfb470ab10-image.png

                Yes you are right even i got a similar output when the command was run on the second pi directly. So at least we are getting somewhere. Good news.
                sudo docker ps -f name=wireguard --format “{{.Names}} {{.Status}}”
                wireguard Up 36 hours.
                so now i have to figure out a command line to get status of all containers in a table form with name of container and the uptime.

                S M 2 Replies Last reply Apr 2, 2023, 3:26 PM Reply Quote 0
                • S Away
                  sdetweil @Rags
                  last edited by sdetweil Apr 2, 2023, 3:52 PM Apr 2, 2023, 3:26 PM

                  @Rags but are you running this on the docker host? outside any container?

                  if u run this from INSIDE the container (where MM is running) , does it work?

                  as I recall, it does not.

                  I think the command (on the host) is

                  Usage:  docker exec [OPTIONS] CONTAINER COMMAND [ARG...]
                  

                  docker exec container_id “docker -ps … rest of parms”

                  but you will have to use docker command to get the container_id from the name to use in the exec

                  long time ago, 9 years now, I wrote a whole bunch of scripts to support using docker to deploy and manage a software api testing service…

                  Sam

                  How to add modules

                  learning how to use browser developers window for css changes

                  R 1 Reply Last reply Apr 2, 2023, 4:26 PM Reply Quote 0
                  • M Offline
                    mumblebaj Module Developer @Rags
                    last edited by Apr 2, 2023, 3:50 PM

                    @Rags you can drop the -f name portion which will then list all containers running. Maybe change the query to something like the following which should give you some JSON type object which you can then work with.

                    docker ps --format '{"ID":"{{ .ID }}", "Image": "{{ .Image }}", "Names":"{{ .Names }}, "Status": {{.Status}}"}'
                    

                    This will return something like the below:

                    {"ID":"4c57d2ba3fd8", "Image": "getting-started", "Names":"silly_hodgkin, "Status": Up 44 minutes"}
                    

                    From this you can then extract the container you want and check the status. What I have seen the query only returns all running containers

                    Check out my modules at: https://github.com/mumblebaj?tab=repositories

                    S 1 Reply Last reply Apr 2, 2023, 3:56 PM Reply Quote 0
                    • S Away
                      sdetweil @mumblebaj
                      last edited by Apr 2, 2023, 3:56 PM

                      @mumblebaj but you don’t need to do all that fancy formatting if you are going to extract the info

                      awk can do that

                      11e836525b8d   jshridha/blueiris   "/usr/bin/supervisord"   2 years ago   Up 8 months   0.0.0.0:82->81/tcp, :::82->81/tcp, 0.0.0.0:5901->5900/tcp, :::5901->5900/tcp, 0.0.0.0:8280->8080/tcp, :::8280->8080/tcp   blueiris
                      (base) sam@sams:~/MagicMirror/config$ 
                      

                      docker ps | awk ‘{print $1}’

                      awk can split a string into parts (using some separator char (-F parm, space is default) and then u can print out just the parm u want

                      also docker ps -q
                      only displays the container ids.

                      Sam

                      How to add modules

                      learning how to use browser developers window for css changes

                      M 1 Reply Last reply Apr 2, 2023, 4:07 PM Reply Quote 0
                      • 1
                      • 2
                      • 3
                      • 2 / 3
                      2 / 3
                      • First post
                        14/27
                        Last post
                      Enjoying MagicMirror? Please consider a donation!
                      MagicMirror created by Michael Teeuw.
                      Forum managed by Sam, technical setup by Karsten.
                      This forum is using NodeBB as its core | Contributors
                      Contact | Privacy Policy