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.
(cherry picked from commit 6728c4a103)
This commit is contained in:
parent
e51836ecf1
commit
e7e634396e
4
Makefile
4
Makefile
@ -177,6 +177,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)
|
||||
|
||||
|
||||
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