marcelstoer / docker-nodemcu-build

Docker image to build NodeMCU firmware for the ESP8266 on your machine
https://hub.docker.com/r/marcelstoer/nodemcu-build/
MIT License
129 stars 63 forks source link

Pin Ubuntu version #39

Closed HHHartmann closed 5 years ago

HHHartmann commented 5 years ago

Currently tzdata does not install headless and so the docker build hangs.

copied from https://github.com/osrf/docker_templates/pull/34 See there for more explanations.

Also removes some unused files which saves roughly 10% of image size

marcelstoer commented 5 years ago

Currently tzdata does not install headless and so the docker build hangs.

Can you give an example of a Docker command that would cause this behavior? You're the first to report timezone issues.

HHHartmann commented 5 years ago

Sorry, I obviously was to short here. It happens when you create a new docker image as shown in the documentation in your Dockerfile. docker build -t docker-nodemcu-build docker-nodemcu-build

I stumbled across it when I tried to create a new docker image to add separate build and lfs-image scripts.

marcelstoer commented 5 years ago

So far I gave osrf/docker_templates#34 only a cursory look but I don't understand why building the image in your environment would fail when it doesn't fail in mine and on Docker Hub. Care to explain?

HHHartmann commented 5 years ago

Seems as if ubuntu removed the tzdata package from their minimal image to save some space. Maybe at the time tzdata was added to the current Dockerfile it was still in the base image (and configured) Now it was removed from the base image and thus has to be installed and configured for nodemcu.

Have you tried recently to build an image?

marcelstoer commented 5 years ago

Oh, the joys and wonders of using LATEST (implied by FROM ubuntu) with Docker... It was last built on Docker Hub 4 months ago.

A possible strategy would be to pin the Ubuntu version to what the NodeMCU project uses for its CI on Travis. https://github.com/nodemcu/nodemcu-firmware/blob/master/.travis.yml doesn't say and so it would have to be derived from what Travis uses by default - which is 14.04 LTS Trusty at the moment.

Also removes some unused files which saves roughly 10% of image size

Ubuntu is quite a beast in this regard. At some pointed I wanted to see how difficult it would be to build NodeMCU on Alpine but I just don't have the time for that sort of experiments anymore 😞.

HHHartmann commented 5 years ago

Yup, runs on 14.04 The question remaining is whether there is an automatic way to get a reminder when the Travis default version changes, so the docker image could be adapted.

marcelstoer commented 5 years ago

Doesn't have to be that highly automatic and instant. Travis announces such changes over blog, Twitter, etc. So, one way or the other you usually learn about them - and they move cautiously and with enough lead time to react.

Thanks for bringing up this issue.

Demonrequest4u commented 4 years ago

Hey anything I can do to help?