Read the statement by Michael Teeuw here.
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.
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;}
-
@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;}
-
@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.
-
@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 yourconfig.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
-
@tomasz2101 And? Does it work?
-
@raywo no
-
@tomasz2101 In my
config.js
I put""
in theaddress
setting. I also have"::ffff:192.168.2.1/120"
included in myipWhitelist
. My home network is192.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 */ }