# Build container **Docker containers** - Ubuntu - focal (Ubuntu 20.04) - jammy (Ubuntu 22.04) - noble (Ubuntu 24.04) - Debian - bookworm (Debian 12) **Build docker image** Use the following command to create a docker image and tag it with `libreelec`. ``` docker build --pull -t libreelec tools/docker/jammy ``` See https://docs.docker.com/engine/reference/commandline/build/ for details on `docker build` usage. **Build LibreELEC image inside a container** Change to your LibreELEC.tv development directory that you checked out with
`git clone https://github.com/`**myname**`/LibreELEC.tv.git` ``` cd LibreELEC.tv ``` Then use the following command to build LibreELEC images inside a new container based on the docker image tagged with `libreelec`. (The `pwd` uses the current directory - which must have the LibeELEC `Makefile` in it.) ``` docker run --rm --log-driver none -v `pwd`:/build -w /build -it libreelec make image ``` Use `--env`, `-e` or `--env-file` to pass environment variables used by the LibreELEC buildsystem. ``` docker run --rm --log-driver none -v `pwd`:/build -w /build -it -e PROJECT=RPi -e DEVICE=RPi4 -e ARCH=arm libreelec make image ``` See https://docs.docker.com/engine/reference/commandline/run/ for details on `docker run` usage. Note: `dockerd` is set to send all its logs to journald using the setting `--log-driver=journald` (so if you don't set the `--log-driver none` for your `docker run` these logs will be sent through to your log. Refer: https://github.com/LibreELEC/LibreELEC.tv/blob/140ad28a258167e0e87daf1e474db37215b2caf3/packages/addons/service/docker/source/system.d/service.system.docker.service#L12