Add helper to run a containerized build environment (#2292)
Using `make container` or, if you don't have automake/gmake on your host system, `./scripts/container.sh` will build an image for the current branch your are on and drop you into a shell running inside a container using that image. From there all tooling required to work on Gluon is available. Supports both podman (preferred) and docker.
This commit is contained in:
parent
fdc79c5721
commit
6728c4a103
4
Makefile
4
Makefile
@ -186,6 +186,10 @@ config: $(LUA) FORCE
|
|||||||
$(GLUON_ENV) $(LUA) scripts/target_config_check.lua
|
$(GLUON_ENV) $(LUA) scripts/target_config_check.lua
|
||||||
|
|
||||||
|
|
||||||
|
container: FORCE
|
||||||
|
@scripts/container.sh
|
||||||
|
|
||||||
|
|
||||||
all: config
|
all: config
|
||||||
+@
|
+@
|
||||||
$(GLUON_ENV) $(LUA) scripts/clean_output.lua
|
$(GLUON_ENV) $(LUA) scripts/clean_output.lua
|
||||||
|
@ -40,6 +40,12 @@ freshly installed Debian Stretch system the following packages are required:
|
|||||||
* `time` (built-in `time` doesn't work)
|
* `time` (built-in `time` doesn't work)
|
||||||
* `qemu-utils`
|
* `qemu-utils`
|
||||||
|
|
||||||
|
We also provide a container environment that already tracks all these dependencies. It quickly gets you up and running, if you already have either Docker or Podman installed locally.
|
||||||
|
|
||||||
|
::
|
||||||
|
|
||||||
|
./scripts/container.sh
|
||||||
|
|
||||||
Building the images
|
Building the images
|
||||||
-------------------
|
-------------------
|
||||||
|
|
||||||
|
24
scripts/container.sh
Executable file
24
scripts/container.sh
Executable file
@ -0,0 +1,24 @@
|
|||||||
|
#!/usr/bin/env bash
|
||||||
|
|
||||||
|
set -euo pipefail
|
||||||
|
|
||||||
|
# move into base directory, in case this script is not executed via `make container`
|
||||||
|
cd "$(dirname "$0")/.."
|
||||||
|
|
||||||
|
# normalize branch name to reflect a valid image name
|
||||||
|
BRANCH=$(git branch --show-current | sed 's/[^a-z0-9-]/_/ig')
|
||||||
|
TAG=gluon:${BRANCH}
|
||||||
|
|
||||||
|
if [ "$(command -v podman)" ]
|
||||||
|
then
|
||||||
|
podman build -t "${TAG}" contrib/docker
|
||||||
|
podman run -it --rm --userns=keep-id --volume="$(pwd):/gluon" "${TAG}"
|
||||||
|
elif [ "$(command -v docker)" ]
|
||||||
|
then
|
||||||
|
docker build -t "${TAG}" contrib/docker
|
||||||
|
docker run -it --rm --volume="$(pwd):/gluon" "${TAG}"
|
||||||
|
else
|
||||||
|
1>&2 echo "Please install either podman or docker. Exiting" >/dev/null
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
Loading…
Reference in New Issue
Block a user