Skip to content

Commit 97afd27

Browse files
author
Jeff Frontz
committed
selectively specify workdir for docker interactions
1 parent 25630b7 commit 97afd27

File tree

3 files changed

+22
-8
lines changed

3 files changed

+22
-8
lines changed

bin/gbuild

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -105,7 +105,7 @@ EOF" if build_desc["sudo"] and @options[:allow_sudo]
105105
case build_desc["distro"]
106106
when "centos"
107107
info "Updating yum repository (log in var/install.log)"
108-
system! "on-target -u root yum -y makecache fast >> var/install.log 2>&1"
108+
system! "on-target -u root -w /root yum -y makecache fast >> var/install.log 2>&1"
109109
else
110110
info "Updating apt-get repository (log in var/install.log)"
111111
system! "on-target -u root apt-get update >> var/install.log 2>&1"
@@ -115,7 +115,7 @@ EOF" if build_desc["sudo"] and @options[:allow_sudo]
115115

116116
case build_desc["distro"]
117117
when "centos"
118-
system! "on-target -u root yum -y install #{build_desc["packages"].join(" ")} > var/install.log 2>&1"
118+
system! "on-target -u root -w /root yum -y install #{build_desc["packages"].join(" ")} > var/install.log 2>&1"
119119
else
120120
system! "on-target -u root -e DEBIAN_FRONTEND=noninteractive apt-get --no-install-recommends -y install #{build_desc["packages"].join(" ")} >> var/install.log 2>&1"
121121
end
@@ -131,10 +131,10 @@ EOF" if build_desc["sudo"] and @options[:allow_sudo]
131131
info "Upgrading system, may take a while (log in var/install.log)"
132132
case build_desc["distro"]
133133
when "centos"
134-
system! "on-target -u root mkdir -p /var/cache/gitian"
135-
system! "on-target -u root yum -y update > var/upgrade.log 2>&1"
134+
system! "on-target -u root -w /root mkdir -p /var/cache/gitian"
135+
system! "on-target -u root -w /root yum -y update > var/upgrade.log 2>&1"
136136
system! "copy-to-target #{@quiet_flag} var/upgrade.log /var/cache/gitian/upgrade.log"
137-
system! "on-target -u root touch /var/cache/gitian/initial-upgrade"
137+
system! "on-target -u root -w /root touch /var/cache/gitian/initial-upgrade"
138138
else
139139
system! "on-target -u root bash < target-bin/upgrade-system.sh >> var/install.log 2>&1"
140140
end
@@ -143,7 +143,7 @@ EOF" if build_desc["sudo"] and @options[:allow_sudo]
143143

144144
case build_desc["distro"]
145145
when "centos"
146-
system! "on-target -u root yumdb get checksum_data | awk '/checksum_data =/ { print $3, package; next } { package=$1 }' | sort --key 2 > var/base-#{suitearch}.manifest"
146+
system! "on-target -u root -w /root yumdb get checksum_data | awk '/checksum_data =/ { print $3, package; next } { package=$1 }' | sort --key 2 > var/base-#{suitearch}.manifest"
147147
else
148148
system! "on-target -u root bash < target-bin/grab-packages.sh > var/base-#{suitearch}.manifest"
149149
end

libexec/copy-to-target

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -49,7 +49,13 @@ fi
4949
if [ -n "$USE_DOCKER" ]; then
5050
docker exec -u $TUSER gitian-target mkdir -p "/home/$TUSER/$2"
5151
docker cp "$1" gitian-target:"/home/$TUSER/$2"
52-
docker exec -u root gitian-target chown -R $TUSER:$TUSER "/home/$TUSER/$2"
52+
# newer docker version is strict about non-default-user working directories
53+
if docker exec -u root -w /root gitian-target true > /dev/null 2>&1
54+
then
55+
docker exec -u root -w /root gitian-target chown -R $TUSER:$TUSER "/home/$TUSER/$2"
56+
else
57+
docker exec -u root gitian-target chown -R $TUSER:$TUSER "/home/$TUSER/$2"
58+
fi
5359
elif [ -z "$USE_LXC" ]; then
5460
src="${1%/}" # remove trailing / which triggers special rsync behaviour
5561
rsync --checksum -a $QUIET_FLAG -e "ssh -oConnectTimeout=30 -oNoHostAuthenticationForLocalhost=yes -i ${GITIAN_BASE:-.}/var/id_rsa -p $VM_SSH_PORT" "${src}" "$TUSER@localhost:$2"

libexec/on-target

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,14 @@ if [ $# != 0 ] ; then
3030
ENV="$2"
3131
shift 2
3232
;;
33+
--workdir|-w)
34+
# newer docker version is strict about non-default-user working dir
35+
if docker exec -u root -w /root gitian-target true > /dev/null 2>&1
36+
then
37+
TWORKDIR="-w $2"
38+
fi
39+
shift 2
40+
;;
3341
--*)
3442
echo "unrecognized option $1"
3543
exit 1
@@ -47,7 +55,7 @@ fi
4755
#fi
4856

4957
if [ -n "$USE_DOCKER" ]; then
50-
docker exec -u $TUSER -i gitian-target $*
58+
docker exec -u $TUSER $TWORKDIR -i gitian-target $*
5159
elif [ -z "$USE_LXC" ]; then
5260
ssh -oConnectTimeout=30 -oNoHostAuthenticationForLocalhost=yes -i ${GITIAN_BASE:-.}/var/id_rsa -p $VM_SSH_PORT $TUSER@localhost $*
5361
else

0 commit comments

Comments
 (0)