This is an automated email from the ASF dual-hosted git repository. gnodet pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/maven-mvnd.git
The following commit(s) were added to refs/heads/master by this push: new 6a15280 Use the easier --user option of docker (#628, #639) 6a15280 is described below commit 6a1528071dd536bdba7a91f350e03f99432d15c6 Author: Guillaume Nodet <gno...@gmail.com> AuthorDate: Wed May 4 14:03:23 2022 +0200 Use the easier --user option of docker (#628, #639) --- native/Makefile | 62 ++++++++++++----------------- native/docker/crossbuild-uid/Dockerfile | 11 ----- native/docker/crossbuild-uid/crossbuild-uid | 31 --------------- 3 files changed, 26 insertions(+), 78 deletions(-) diff --git a/native/Makefile b/native/Makefile index 3172294..e59e714 100644 --- a/native/Makefile +++ b/native/Makefile @@ -17,7 +17,7 @@ include Makefile.common -.PHONY: all package native native-all deploy crossbuild crossbuild-uid ducible clean-native +.PHONY: all package native native-all deploy crossbuild ducible clean-native all: package @@ -42,9 +42,6 @@ crossbuild: target git -C target/crossbuild reset --hard d06cdc31fce0c85ad78408b44794366dafd59554 docker build target/crossbuild -t multiarch/crossbuild -crossbuild-uid: crossbuild - docker build docker/crossbuild-uid -t maven-mvnd/crossbuild - ducible: target test -d target/ducible || git clone --branch v1.2.2 https://github.com/jasonwhite/ducible.git target/ducible make --directory=target/ducible ducible CROSS_PREFIX= CXX=g++ CC=gcc @@ -87,33 +84,28 @@ $(NATIVE_DLL): $(MVNDNATIVE_OUT)/$(LIBNAME) linux-x86: download-includes ./docker/dockcross-linux-x86 bash -c 'make clean-native native OS_NAME=Linux OS_ARCH=x86' -linux-x86_64: download-includes crossbuild-uid - docker run -it --rm -v $$PWD:/workdir \ - -e BUILDER_UID=$$( id -u ) -e BUILDER_GID=$$( id -g ) -e BUILDER_USER=$$( id -un ) -e BUILDER_GROUP=$$( id -gn ) \ - -e CROSS_TRIPLE=x86_64-linux-gnu maven-mvnd/crossbuild make clean-native native OS_NAME=Linux OS_ARCH=x86_64 +linux-x86_64: download-includes + docker run -it --rm -v $$PWD:/workdir --user $$(id -u):$$(id -g) \ + -e CROSS_TRIPLE=x86_64-linux-gnu multiarch/crossbuild make clean-native native OS_NAME=Linux OS_ARCH=x86_64 -linux-arm: download-includes crossbuild-uid - docker run -it --rm -v $$PWD:/workdir \ - -e BUILDER_UID=$$( id -u ) -e BUILDER_GID=$$( id -g ) -e BUILDER_USER=$$( id -un ) -e BUILDER_GROUP=$$( id -gn ) \ - -e CROSS_TRIPLE=arm-linux-gnueabi maven-mvnd/crossbuild make clean-native native OS_NAME=Linux OS_ARCH=arm +linux-arm: download-includes + docker run -it --rm -v $$PWD:/workdir --user $$(id -u):$$(id -g) \ + -e CROSS_TRIPLE=arm-linux-gnueabi multiarch/crossbuild make clean-native native OS_NAME=Linux OS_ARCH=arm linux-armv6: ./docker/dockcross-linux-armv6 bash -c 'make clean-native native CROSS_PREFIX=armv6-unknown-linux-gnueabihf- OS_NAME=Linux OS_ARCH=armv6' -linux-armv7: download-includes crossbuild-uid - docker run -it --rm -v $$PWD:/workdir \ - -e BUILDER_UID=$$( id -u ) -e BUILDER_GID=$$( id -g ) -e BUILDER_USER=$$( id -un ) -e BUILDER_GROUP=$$( id -gn ) \ - -e CROSS_TRIPLE=arm-linux-gnueabihf maven-mvnd/crossbuild make clean-native native OS_NAME=Linux OS_ARCH=armv7 +linux-armv7: download-includes + docker run -it --rm -v $$PWD:/workdir --user $$(id -u):$$(id -g) \ + -e CROSS_TRIPLE=arm-linux-gnueabihf multiarch/crossbuild make clean-native native OS_NAME=Linux OS_ARCH=armv7 -linux-arm64: download-includes crossbuild-uid - docker run -it --rm -v $$PWD:/workdir \ - -e BUILDER_UID=$$( id -u ) -e BUILDER_GID=$$( id -g ) -e BUILDER_USER=$$( id -un ) -e BUILDER_GROUP=$$( id -gn ) \ - -e CROSS_TRIPLE=aarch64-linux-gnu maven-mvnd/crossbuild make clean-native native OS_NAME=Linux OS_ARCH=arm64 +linux-arm64: download-includes + docker run -it --rm -v $$PWD:/workdir --user $$(id -u):$$(id -g) \ + -e CROSS_TRIPLE=aarch64-linux-gnu multiarch/crossbuild make clean-native native OS_NAME=Linux OS_ARCH=arm64 -linux-ppc64: download-includes crossbuild-uid - docker run -it --rm -v $$PWD:/workdir \ - -e BUILDER_UID=$$( id -u ) -e BUILDER_GID=$$( id -g ) -e BUILDER_USER=$$( id -un ) -e BUILDER_GROUP=$$( id -gn ) \ - -e CROSS_TRIPLE=powerpc64le-linux-gnu maven-mvnd/crossbuild make clean-native native OS_NAME=Linux OS_ARCH=ppc64 +linux-ppc64: download-includes + docker run -it --rm -v $$PWD:/workdir --user $$(id -u):$$(id -g) \ + -e CROSS_TRIPLE=powerpc64le-linux-gnu multiarch/crossbuild make clean-native native OS_NAME=Linux OS_ARCH=ppc64 win-x86: download-includes ./docker/dockcross-windows-static-x86 bash -c 'make clean-native native CROSS_PREFIX=i686-w64-mingw32.static- OS_NAME=Windows OS_ARCH=x86' @@ -121,26 +113,24 @@ win-x86: download-includes win-x86_64: download-includes ./docker/dockcross-windows-static-x64 bash -c 'make clean-native native CROSS_PREFIX=x86_64-w64-mingw32.static- OS_NAME=Windows OS_ARCH=x86_64' -mac-x86: download-includes crossbuild-uid - docker run -it --rm -v $$PWD:/workdir \ - -e BUILDER_UID=$$( id -u ) -e BUILDER_GID=$$( id -g ) -e BUILDER_USER=$$( id -un ) -e BUILDER_GROUP=$$( id -gn ) \ - -e CROSS_TRIPLE=i386-apple-darwin maven-mvnd/crossbuild make clean-native native OS_NAME=Mac OS_ARCH=x86 +mac-x86: download-includes + docker run -it --rm -v $$PWD:/workdir --user $$(id -u):$$(id -g) \ + -e CROSS_TRIPLE=i386-apple-darwin multiarch/crossbuild make clean-native native OS_NAME=Mac OS_ARCH=x86 -mac-x86_64: download-includes crossbuild-uid - docker run -it --rm -v $$PWD:/workdir \ - -e BUILDER_UID=$$( id -u ) -e BUILDER_GID=$$( id -g ) -e BUILDER_USER=$$( id -un ) -e BUILDER_GROUP=$$( id -gn ) \ - -e CROSS_TRIPLE=x86_64-apple-darwin maven-mvnd/crossbuild make clean-native native OS_NAME=Mac OS_ARCH=x86_64 +mac-x86_64: download-includes + docker run -it --rm -v $$PWD:/workdir --user $$(id -u):$$(id -g) \ + -e CROSS_TRIPLE=x86_64-apple-darwin multiarch/crossbuild make clean-native native OS_NAME=Mac OS_ARCH=x86_64 -mac-arm64: download-includes crossbuild-uid - docker run -it --rm -v $$PWD:/src \ +mac-arm64: download-includes + docker run -it --rm -v $$PWD:/src --user $$(id -u):$$(id -g) \ -e TARGET=arm64-apple-darwin mcandre/snek:darwin sh -c "make clean-native native CROSS_PREFIX=arm64-apple-darwin20.4- OS_NAME=Mac OS_ARCH=arm64" freebsd-x86: download-includes - docker run -it --rm -v $$PWD:/workdir \ + docker run -it --rm -v $$PWD:/workdir --user $$(id -u):$$(id -g) \ empterdose/freebsd-cross-build:9.3 make clean-native native CROSS_PREFIX=i386-freebsd9- OS_NAME=FreeBSD OS_ARCH=x86 freebsd-x86_64: download-includes - docker run -it --rm -v $$PWD:/workdir \ + docker run -it --rm -v $$PWD:/workdir --user $$(id -u):$$(id -g) \ empterdose/freebsd-cross-build:9.3 make clean-native native CROSS_PREFIX=x86_64-freebsd9- OS_NAME=FreeBSD OS_ARCH=x86_64 #sparcv9: diff --git a/native/docker/crossbuild-uid/Dockerfile b/native/docker/crossbuild-uid/Dockerfile deleted file mode 100644 index ce18c9e..0000000 --- a/native/docker/crossbuild-uid/Dockerfile +++ /dev/null @@ -1,11 +0,0 @@ -FROM multiarch/crossbuild -RUN cd /tmp; \ - git clone https://github.com/ncopa/su-exec.git; \ - cd /tmp/su-exec; \ - make; \ - cp su-exec /usr/bin; \ - rm -Rf /tmp/su-exec -ENTRYPOINT [ "/usr/bin/crossbuild-uid", "/usr/bin/crossbuild" ] -CMD ["/bin/bash"] -WORKDIR /workdir -COPY crossbuild-uid /usr/bin/crossbuild-uid diff --git a/native/docker/crossbuild-uid/crossbuild-uid b/native/docker/crossbuild-uid/crossbuild-uid deleted file mode 100755 index 0fdab91..0000000 --- a/native/docker/crossbuild-uid/crossbuild-uid +++ /dev/null @@ -1,31 +0,0 @@ -#!/usr/bin/env bash - -# This is the entrypoint script for the dockerfile. Executed in the -# container at runtime. - -export PATH_ORIGIN=$PATH -export LD_LIBRARY_PATH_ORIGIN=$LD_LIBRARY_PATH - -# If we are running docker natively, we want to create a user in the container -# with the same UID and GID as the user on the host machine, so that any files -# created are owned by that user. Without this they are all owned by root. -# The dockcross script sets the BUILDER_UID and BUILDER_GID vars. -if [[ -n $BUILDER_UID ]] && [[ -n $BUILDER_GID ]]; then - - groupadd -o -g $BUILDER_GID $BUILDER_GROUP 2> /dev/null - useradd -o -m -g $BUILDER_GID -u $BUILDER_UID $BUILDER_USER 2> /dev/null - export HOME=/home/${BUILDER_USER} - shopt -s dotglob - cp -r /root/* $HOME/ - chown -R $BUILDER_UID:$BUILDER_GID $HOME - - # Enable passwordless sudo capabilities for the user - chown root:$BUILDER_GID $(which su-exec) - chmod +s $(which su-exec); sync - - # Run the command as the specified user/group. - exec su-exec $BUILDER_UID:$BUILDER_GID "$@" -else - # Just run the command as root. - exec "$@" -fi