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
|
||||
|
||||
|
||||
container: FORCE
|
||||
@scripts/container.sh
|
||||
|
||||
|
||||
all: config
|
||||
+@
|
||||
$(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)
|
||||
* `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
|
||||
-------------------
|
||||
|
||||
|
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