summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorElan Ruusamäe2021-08-29 13:08:47 (GMT)
committerElan Ruusamäe2021-08-29 13:08:47 (GMT)
commit98e025574135e6eab94939c11c6842d38984bb3d (patch)
treeab565d475be56c96f34390c6b914571663363c1d
parent2801d0f4e321a65b416e20025399ede0bf7aa987 (diff)
downloadcleanbuild-98e025574135e6eab94939c11c6842d38984bb3d.zip
cleanbuild-98e025574135e6eab94939c11c6842d38984bb3d.tar.gz
Add support to re-use container with --keep-container
-rwxr-xr-xbin/cleanbuild-docker.sh31
1 files changed, 22 insertions, 9 deletions
diff --git a/bin/cleanbuild-docker.sh b/bin/cleanbuild-docker.sh
index 8aa1482..f559e17 100755
--- a/bin/cleanbuild-docker.sh
+++ b/bin/cleanbuild-docker.sh
@@ -53,20 +53,32 @@ tmpfs() {
echo "--tmpfs $home/rpm/BUILD:rw,exec,nosuid,size=$TMPFS"
}
+have_container() {
+ local name="$1" id
+
+ id=$(docker ps -a -f "label=cleanbuild=$name" --format '{{.ID}}')
+
+ test -n "$id"
+}
+
create_container() {
- notice "Clean up old container: $name"
- docker kill $name >/dev/null 2>&1 || :
- docker rm $name >/dev/null 2>&1 || :
+ if ! $KEEP_CONTAINER; then
+ notice "Clean up old container: $name"
+ docker kill $name >/dev/null 2>&1 || :
+ docker rm $name >/dev/null 2>&1 || :
+ fi
install -d $topdir/logs
# start the container
- TMPFS_SIZE=$TMPFS \
- PACKAGE_NAME=$PACKAGE_NAME \
- docker-compose run --rm -d \
- --name=$name \
- --label=cleanbuild=$PACKAGE_NAME \
- cleanbuild
+ if ! have_container "$PACKAGE_NAME"; then
+ TMPFS_SIZE=$TMPFS \
+ PACKAGE_NAME=$PACKAGE_NAME \
+ docker-compose run --rm -d \
+ --name=$name \
+ --label=cleanbuild=$PACKAGE_NAME \
+ cleanbuild
+ fi
notice "Setup the homedir"
docker exec --user=root -w / $name usermod -d $home builder
@@ -89,6 +101,7 @@ package_prepare() {
fi
notice "Fetch package sources"
+ docker exec --user=root -w / $name setfacl -x u:builder /etc/resolv.conf
docker exec $name builder -g $PACKAGE_NAME
if ! $NETWORKING; then