Skip to content

Commit 691ce0c

Browse files
committed
Set docker-internal UID and GID to match the external values for the user. Makes life easier when running docker under linux.
- Legacy-Id: 13907
1 parent c9736e9 commit 691ce0c

2 files changed

Lines changed: 15 additions & 3 deletions

File tree

docker/docker-init.sh

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,10 +6,19 @@ if [ ! "$USER" ]; then
66
echo "Environment variable USER is not set -- will set USER='django'."
77
USER="django"
88
fi
9+
if [ ! "$UID" ]; then
10+
echo "Environment variable UID is not set -- will set UID='1000'."
11+
UID="1000"
12+
fi
13+
if [ ! "$GID" ]; then
14+
echo "Environment variable GID is not set -- will set GID='1000'."
15+
GID="1000"
16+
fi
917
if [ ! "$TAG" ]; then
1018
echo "Environment variable TAG is not set -- will set TAG='datatracker'."
1119
TAG="datatracker"
1220
fi
21+
echo "User $USER ($UID:$GID)"
1322

1423
echo "Checking if MySQL base data exists ..."
1524
if [ ! -d $MYSQLDIR/mysql ]; then
@@ -64,7 +73,7 @@ fi
6473

6574
if ! id -u "$USER" &> /dev/null; then
6675
echo "Creating user '$USER' ..."
67-
useradd -s /bin/bash -G staff,sudo $USER
76+
useradd -s /bin/bash --groups staff,sudo --uid $UID --gid $GID $USER
6877
echo "$USER:$USER" | chpasswd
6978
fi
7079

docker/run

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -85,6 +85,8 @@ REPO="ietf/datatracker-environment"
8585
TAG=$(basename $(svn info $parent | grep ^URL | awk '{print $2}'))
8686
DBURL=https://www.ietf.org/lib/dt/sprint/ietf_utf8.bin.tar.bz2
8787
WHO=$(whoami)
88+
WHOUID=$(id -u $WHO)
89+
WHOGID=$(id -g $WHO)
8890

8991
if [ "$(uname)" = "Linux" ]; then
9092
args=$(getopt -o "$shortopts" --long "$longopts" -n '$program' -- $SV "$@")
@@ -213,15 +215,16 @@ else
213215
fi
214216

215217
echo -e "\nThe web interface for 'runserver' should appear on $URL\n"
218+
echo -e "User $WHO ($WHOUID:$WHOGID)"
216219
if [ -z "$MYSQLDIR" ]; then
217220
docker run -ti -p $PORT:8000 -v "$HOME:/home/$WHO" \
218221
-e USER="$WHO" -e DATADIR="${parent#$HOME/}/data" -e CWD="${PWD#$HOME/}" \
219-
-e TAG="$TAG" -e FILEDIR=${FILEDIR#$HOME} \
222+
-e TAG="$TAG" -e FILEDIR=${FILEDIR#$HOME} -e UID="$WHOUID" -e GID="$WHOGID" \
220223
"$REPO:$TAG" "$@"
221224
else
222225
docker run -ti -p $PORT:8000 -v "$HOME:/home/$WHO" -v "$MYSQLDIR:/var/lib/mysql"\
223226
-e USER="$WHO" -e DATADIR="${parent#$HOME/}/data" -e CWD="${PWD#$HOME/}" \
224-
-e TAG="$TAG" -e FILEDIR=${FILEDIR#$HOME} \
227+
-e TAG="$TAG" -e FILEDIR=${FILEDIR#$HOME} -e UID="$WHOUID" -e GID="$WHOGID" \
225228
"$REPO:$TAG" "$@"
226229
fi
227230

0 commit comments

Comments
 (0)