MagicMirror² v2.5.0 is available! For more information about this release, check out this topic.

MM docker container problem with mac and linux



  • Hi i have problem with magic mirror. I started it inside docker container on rpi the MM is working ok. When i try to use docker container on mac or linux there will be no errors but also there will be no MM page under url.

    0_1519476951950_Screen Shot 2018-02-24 at 13.51.47.png

    docker-compose up logs

    docker-compose up
    Starting blackmirror ... done
    Attaching to blackmirror
    blackmirror     | Starting MagicMirror: v2.1.3
    blackmirror     | Loading config ...
    blackmirror     | Loading module helpers ...
    blackmirror     | No helper found for module: alert.
    blackmirror     | Initializing new module helper ...
    blackmirror     | Module helper loaded: updatenotification
    blackmirror     | No helper found for module: clock.
    blackmirror     | All module helpers loaded.
    blackmirror     | Starting server on port 8080 ...
    blackmirror     | You're using a full whitelist configuration to allow for all IPs
    blackmirror     | Server started ...
    blackmirror     | Connecting socket for: updatenotification
    blackmirror     | Sockets connected & modules started ...
    blackmirror     |
    blackmirror     | Ready to go! Please point your browser to: http://localhost:8080
    

    docker-compose.yaml

    version: '3'
    
    services:
      magic-mirror:
        image: bastilimbach/docker-magicmirror
        container_name: blackmirror
        restart: always
        volumes:
          - ./config:/opt/magic_mirror/config
          - ./modules:/opt/magic_mirror/modules
        ports:
          - 8082:8080
    

    config.js

    var config = {
    	address: "localhost",
    	port: 8080,
    	ipWhitelist: [],
    	language: "en",
    	timeFormat: 24,
    	units: "metric",
    
    	modules: [
    		{
    			module: "alert",
    		},
    		{
    			module: "updatenotification",
    			position: "top_bar"
    		},
    		{
    			module: "clock",
    			position: "top_left"
    		},
    	]
    
    };
    
    /*************** DO NOT EDIT THE LINE BELOW ***************/
    if (typeof module !== "undefined") {module.exports = config;}
    

  • Module Developer

    @tomasz2101 Try to set ipWhitelist to [ "127.0.0.1", "::ffff:127.0.0.1", "::1" ]. If you want to access the mirror from your Linux or Mac machine add their respective IPs too.



  • @raywo I know that this is strange behaviour of MM and your fix is not according to documentation. I tried that but that fix doesn’t work at all. Additional think is that I’am running container on my mac and i cannot access MM from mac. 192.168.1.176 is my mac local ip. I want to develop new module but i don’t want to do this on rpi.

    var config = {
    	address: "localhost",
    	port: 8080,
    	ipWhitelist: [ "127.0.0.1", "::ffff:127.0.0.1", "::1", "192.168.1.176"],
    	language: "en",
    	timeFormat: 24,
    	units: "metric",
    
    	modules: [
    		{
    			module: "alert",
    		},
    		{
    			module: "updatenotification",
    			position: "top_bar"
    		},
    		{
    			module: "clock",
    			position: "top_left"
    		},
    	]
    
    };
    
    /*************** DO NOT EDIT THE LINE BELOW ***************/
    if (typeof module !== "undefined") {module.exports = config;}
    

  • Module Developer

    @tomasz2101 Why is that not according to documentation?
    I have a simliar setup like you. I run docker on my mac and access the mirror instance via my mac it works just fine.

    Maybe you should try it without creating your own docker image. Try the solution as described in the MagicMirror documentation.



  • @raywo i tried

    docker run  -d \
                            --publish 8080:8080 \
                            --restart always \
                            --volume ~/magic_mirror/config:/opt/magic_mirror/config \
                            --volume ~/magic_mirror/modules:/opt/magic_mirror/modules \
                            --name magic_mirror \
                            bastilimbach/docker-magicmirror
    

    docker ps

    CONTAINER ID        IMAGE                             COMMAND                  CREATED                  STATUS              PORTS                    NAMES
    69efe710da85        bastilimbach/docker-magicmirror   "/opt/magic_mirror/d…"   Less than a second ago   Up 2 seconds        0.0.0.0:8080->8080/tcp   magic_mirror
    

    docker logs -f magic_mirror

    Starting MagicMirror: v2.1.3
    Loading config ...
    WARNING! Could not find config file. Please create one. Starting with default configuration.
    Loading module helpers ...
    Initializing new module helper ...
    Module helper loaded: updatenotification
    No helper found for module: helloworld.
    All module helpers loaded.
    Starting server on port 8080 ...
    Server started ...
    Connecting socket for: updatenotification
    Sockets connected & modules started ...
    
    Ready to go! Please point your browser to: http://localhost:8080
    

    cat config.js

    var config = {
    	address: "localhost", // Address to listen on, can be:
    	port: 8080,
    	ipWhitelist: ["127.0.0.1", "::ffff:127.0.0.1", "::1", "192.168.1.176"],
    	language: "en",
    	timeFormat: 24,
    	units: "metric",
    
    	modules: [
    		{
    			module: "clock",
    			position: "top_left"
    		},
    	]
    
    };
    

    When im trying to access url http://localhost:8080/ in incognito i got always “localhost didn’t send any data” and there is no information in container about trying to access pare.


  • Module Developer

    @tomasz2101 This looks okay to me. Although the log states "WARNING! Could not find config file. Please create one. Starting with default configuration.".
    Where did you put your config.js file? Is it in ~/magic_mirror/config on your mac?



  • @raywo The config.js.sample was created automatically. After that i copy it to config.js and restarted container but logs show:

    Ready to go! Please point your browser to: http://localhost:8080
    Starting MagicMirror: v2.1.3
    Loading config ...
    Loading module helpers ...
    No helper found for module: clock.
    All module helpers loaded.
    Starting server on port 8080 ...
    Server started ...
    Sockets connected & modules started ...
    
    Ready to go! Please point your browser to: http://localhost:8080
    

    0_1519565803412_Screen Shot 2018-02-25 at 14.31.44.png


  • Module Developer

    @tomasz2101 And? Does it work?



  • @raywo no


  • Module Developer

    @tomasz2101 In my config.js I put "" in the address setting. I also have "::ffff:192.168.2.1/120" included in my ipWhitelist. My home network is 192.168.2.0.

    my config.js

    var config = {
    	address: "", // - "", "0.0.0.0", "::" to listen on any interface
    	             // Default, when address config is left out, is "localhost"
    	port: 8080,
    	ipWhitelist: ["127.0.0.1", "::ffff:127.0.0.1", "::1", "::ffff:192.168.2.1/120", "192.168.2.110", "172.17.0.1"]
    
      /* module config */
    }