From 6e472efd5f58d988c8db1366550d7b0b3a7b339a Mon Sep 17 00:00:00 2001 From: SomberNight Date: Mon, 20 Mar 2023 01:47:41 +0000 Subject: [PATCH] build: follow-up prev: only use host userid for local dev builds reproducibility probably needs a hardcoded userid Also, move the UID arg later in the dockerfiles, for better caching. (if local dev build and repro build set different UIDs, the build caches will diverge at that step) --- contrib/android/Dockerfile | 3 +-- contrib/android/build.sh | 5 ++++- contrib/build-linux/appimage/Dockerfile | 3 +-- contrib/build-linux/appimage/build.sh | 5 ++++- contrib/build-linux/sdist/Dockerfile | 3 +-- contrib/build-linux/sdist/build.sh | 5 ++++- contrib/build-wine/Dockerfile | 3 +-- contrib/build-wine/build.sh | 5 ++++- 8 files changed, 20 insertions(+), 12 deletions(-) diff --git a/contrib/android/Dockerfile b/contrib/android/Dockerfile index 9188dba08..a408cc5e2 100644 --- a/contrib/android/Dockerfile +++ b/contrib/android/Dockerfile @@ -2,8 +2,6 @@ FROM debian:bullseye@sha256:43ef0c6c3585d5b406caa7a0f232ff5a19c1402aeb415f68bcd1cf9d10180af8 -ARG UID=1000 - ENV DEBIAN_FRONTEND=noninteractive ENV ANDROID_HOME="/opt/android" @@ -143,6 +141,7 @@ RUN apt -y update -qq \ # create new user to avoid using root; but with sudo access and no password for convenience. +ARG UID=1000 ENV USER="user" ENV HOME_DIR="/home/${USER}" ENV WORK_DIR="${HOME_DIR}/wspace" \ diff --git a/contrib/android/build.sh b/contrib/android/build.sh index a57abb81f..7e4120314 100755 --- a/contrib/android/build.sh +++ b/contrib/android/build.sh @@ -37,10 +37,13 @@ if [ ! -z "$ELECBUILD_NOCACHE" ] ; then DOCKER_BUILD_FLAGS="--pull --no-cache" fi +if [ -z "$ELECBUILD_COMMIT" ] ; then # local dev build + DOCKER_BUILD_FLAGS="$DOCKER_BUILD_FLAGS --build-arg UID=$BUILD_UID" +fi + info "building docker image." docker build \ $DOCKER_BUILD_FLAGS \ - --build-arg UID=$BUILD_UID \ -t electrum-android-builder-img \ --file "$CONTRIB_ANDROID/Dockerfile" \ "$PROJECT_ROOT" diff --git a/contrib/build-linux/appimage/Dockerfile b/contrib/build-linux/appimage/Dockerfile index f86285204..c93f73513 100644 --- a/contrib/build-linux/appimage/Dockerfile +++ b/contrib/build-linux/appimage/Dockerfile @@ -4,8 +4,6 @@ FROM debian:buster@sha256:233c3bbc892229c82da7231980d50adceba4db56a08c0b7053a4852782703459 -ARG UID=1000 - ENV LC_ALL=C.UTF-8 LANG=C.UTF-8 ENV DEBIAN_FRONTEND=noninteractive @@ -73,6 +71,7 @@ RUN apt-get update -q && \ apt-get clean # create new user to avoid using root; but with sudo access and no password for convenience. +ARG UID=1000 ENV USER="user" ENV HOME_DIR="/home/${USER}" ENV WORK_DIR="${HOME_DIR}/wspace" \ diff --git a/contrib/build-linux/appimage/build.sh b/contrib/build-linux/appimage/build.sh index 45a914823..be2184d77 100755 --- a/contrib/build-linux/appimage/build.sh +++ b/contrib/build-linux/appimage/build.sh @@ -22,10 +22,13 @@ if [ ! -z "$ELECBUILD_NOCACHE" ] ; then DOCKER_BUILD_FLAGS="--pull --no-cache" fi +if [ -z "$ELECBUILD_COMMIT" ] ; then # local dev build + DOCKER_BUILD_FLAGS="$DOCKER_BUILD_FLAGS --build-arg UID=$BUILD_UID" +fi + info "building docker image." docker build \ $DOCKER_BUILD_FLAGS \ - --build-arg UID=$BUILD_UID \ -t electrum-appimage-builder-img \ "$CONTRIB_APPIMAGE" diff --git a/contrib/build-linux/sdist/Dockerfile b/contrib/build-linux/sdist/Dockerfile index 3fe81e0b9..1a7a468a9 100644 --- a/contrib/build-linux/sdist/Dockerfile +++ b/contrib/build-linux/sdist/Dockerfile @@ -1,7 +1,5 @@ FROM debian:bullseye@sha256:43ef0c6c3585d5b406caa7a0f232ff5a19c1402aeb415f68bcd1cf9d10180af8 -ARG UID=1000 - ENV LC_ALL=C.UTF-8 LANG=C.UTF-8 ENV DEBIAN_FRONTEND=noninteractive @@ -20,6 +18,7 @@ RUN apt-get update -q && \ apt-get clean # create new user to avoid using root; but with sudo access and no password for convenience. +ARG UID=1000 ENV USER="user" ENV HOME_DIR="/home/${USER}" ENV WORK_DIR="${HOME_DIR}/wspace" \ diff --git a/contrib/build-linux/sdist/build.sh b/contrib/build-linux/sdist/build.sh index fe97ba0a7..af895b01b 100755 --- a/contrib/build-linux/sdist/build.sh +++ b/contrib/build-linux/sdist/build.sh @@ -22,10 +22,13 @@ if [ ! -z "$ELECBUILD_NOCACHE" ] ; then DOCKER_BUILD_FLAGS="--pull --no-cache" fi +if [ -z "$ELECBUILD_COMMIT" ] ; then # local dev build + DOCKER_BUILD_FLAGS="$DOCKER_BUILD_FLAGS --build-arg UID=$BUILD_UID" +fi + info "building docker image." docker build \ $DOCKER_BUILD_FLAGS \ - --build-arg UID=$BUILD_UID \ -t electrum-sdist-builder-img \ "$CONTRIB_SDIST" diff --git a/contrib/build-wine/Dockerfile b/contrib/build-wine/Dockerfile index 5703e81e6..8fb6acf5c 100644 --- a/contrib/build-wine/Dockerfile +++ b/contrib/build-wine/Dockerfile @@ -1,7 +1,5 @@ FROM debian:bullseye@sha256:43ef0c6c3585d5b406caa7a0f232ff5a19c1402aeb415f68bcd1cf9d10180af8 -ARG UID=1000 - # need ca-certificates before using snapshot packages RUN apt update -qq > /dev/null && apt install -qq --yes --no-install-recommends \ ca-certificates @@ -61,6 +59,7 @@ RUN wget -nc https://dl.winehq.org/wine-builds/Release.key && \ apt-get clean # create new user to avoid using root; but with sudo access and no password for convenience. +ARG UID=1000 ENV USER="user" ENV HOME_DIR="/home/${USER}" ENV WORK_DIR="${HOME_DIR}/wspace" \ diff --git a/contrib/build-wine/build.sh b/contrib/build-wine/build.sh index 09ff475d1..06b503e46 100755 --- a/contrib/build-wine/build.sh +++ b/contrib/build-wine/build.sh @@ -24,10 +24,13 @@ if [ ! -z "$ELECBUILD_NOCACHE" ] ; then DOCKER_BUILD_FLAGS="--pull --no-cache" fi +if [ -z "$ELECBUILD_COMMIT" ] ; then # local dev build + DOCKER_BUILD_FLAGS="$DOCKER_BUILD_FLAGS --build-arg UID=$BUILD_UID" +fi + info "building docker image." docker build \ $DOCKER_BUILD_FLAGS \ - --build-arg UID=$BUILD_UID \ -t electrum-wine-builder-img \ "$CONTRIB_WINE"