Fix the uid in the docker container, but only when needed and make the bind mount...
[termux-packages] / scripts / run-docker.sh
1 #!/bin/sh
2 set -e -u
3
4 HOME=/home/builder
5 REPOROOT="$(dirname $(readlink -f $0))/../"
6
7 IMAGE_NAME=termux/package-builder
8 CONTAINER_NAME=termux-package-builder
9
10 [ $(id -u) -eq 0 ] && USER=root || USER=builder
11
12 echo "Running container '$CONTAINER_NAME' from image '$IMAGE_NAME'..."
13
14 docker start $CONTAINER_NAME > /dev/null 2> /dev/null || {
15 echo "Creating new container..."
16 docker run \
17 --detach \
18 --env HOME=$HOME \
19 --name $CONTAINER_NAME \
20 --volume $REPOROOT:$HOME/termux-packages \
21 --tty \
22 $IMAGE_NAME
23 if [ $(id -u) -ne 1000 ]
24 then
25 echo "Changed builder uid/gid... (this may take a while)"
26 docker exec --tty $CONTAINER_NAME chown -R $(id -u) $HOME
27 docker exec --tty $CONTAINER_NAME chown -R $(id -u) /data
28 docker exec --tty $CONTAINER_NAME usermod -u $(id -u) builder
29 docker exec --tty $CONTAINER_NAME groupmod -g $(id -g) builder
30 fi
31 }
32
33 if [ "$#" -eq "0" ]; then
34 docker exec --interactive --tty --user $USER $CONTAINER_NAME bash
35 else
36 docker exec --interactive --tty --user $USER $CONTAINER_NAME $@
37 fi
38
39