From b66718a87b2599e34945000d2301959cce90152a Mon Sep 17 00:00:00 2001 From: Runar Borge Date: Tue, 1 Jan 2019 23:34:27 +0100 Subject: Added support for compiiling vyos-accel-ppp --- Dockerfile | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) (limited to 'Dockerfile') diff --git a/Dockerfile b/Dockerfile index b8ec8149..737fa5d6 100644 --- a/Dockerfile +++ b/Dockerfile @@ -113,9 +113,15 @@ RUN apt-get install -y \ libmnl-dev # Packages needed for kernel -RuN apt-get install -y \ +RUN apt-get install -y \ libelf-dev +# Packages needed for vyos-accel-ppp +RUN apt-get install -y \ + cdbs \ + cmake \ + liblua5.1-dev + # Update live-build RUN echo 'deb http://ftp.debian.org/debian stretch main' | tee -a /etc/apt/sources.list.d/stretch.list &&\ apt-get update &&\ -- cgit v1.2.3 From 3bd3fda4c03d020a62b9a43d50692ccee7996886 Mon Sep 17 00:00:00 2001 From: Christian Poessinger Date: Sun, 6 Jan 2019 11:11:12 +0100 Subject: Docker: update apt xdependencies for vyos-accel-ppp --- Dockerfile | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) (limited to 'Dockerfile') diff --git a/Dockerfile b/Dockerfile index 737fa5d6..b35997a9 100644 --- a/Dockerfile +++ b/Dockerfile @@ -4,8 +4,7 @@ FROM debian:jessie RUN echo 'deb http://ftp.debian.org/debian jessie-backports main' | tee -a /etc/apt/sources.list &&\ - apt-get update &&\ - apt-get install -y \ + apt-get update && apt-get install -y \ vim \ git \ make \ @@ -117,7 +116,7 @@ RUN apt-get install -y \ libelf-dev # Packages needed for vyos-accel-ppp -RUN apt-get install -y \ +RUN apt-get update && apt-get install -y \ cdbs \ cmake \ liblua5.1-dev -- cgit v1.2.3 From ed03c43b2a0f7d6d072bab3ae116e1fa0c217375 Mon Sep 17 00:00:00 2001 From: Runar Borge Date: Wed, 9 Jan 2019 13:26:32 +0100 Subject: Change user on docker image to the current owner of the volume directory (GOSU) Insted of hardcoding the user used to build inside the container it will now be auto configured to be the user UID that owns the vyos-build directory This is done with the gosu utillity and a entrypoint script --- Dockerfile | 13 ++++++++----- scripts/docker-entrypoint.sh | 17 +++++++++++++++++ 2 files changed, 25 insertions(+), 5 deletions(-) create mode 100755 scripts/docker-entrypoint.sh (limited to 'Dockerfile') diff --git a/Dockerfile b/Dockerfile index b35997a9..efa7e2bf 100644 --- a/Dockerfile +++ b/Dockerfile @@ -5,6 +5,7 @@ FROM debian:jessie RUN echo 'deb http://ftp.debian.org/debian jessie-backports main' | tee -a /etc/apt/sources.list &&\ apt-get update && apt-get install -y \ + gosu \ vim \ git \ make \ @@ -143,10 +144,12 @@ RUN export LATEST="$(curl -s https://checkpoint-api.hashicorp.com/v1/check/packe curl -K- | gzip -d > /usr/bin/packer && \ chmod +x /usr/bin/packer +COPY scripts/docker-entrypoint.sh /usr/local/bin/ # Create vyos_bld user account and enable sudo -RUN useradd -ms /bin/bash -u 1006 --gid users vyos_bld && \ - usermod -aG sudo vyos_bld && \ - echo "%sudo ALL=(ALL) NOPASSWD:ALL" >> /etc/sudoers +#RUN useradd -ms /bin/bash -u 1006 --gid users vyos_bld && \ +# usermod -aG sudo vyos_bld && \ +# echo "%sudo ALL=(ALL) NOPASSWD:ALL" >> /etc/sudoers -USER vyos_bld -WORKDIR /home/vyos_bld +#USER vyos_bld +#WORKDIR /home/vyos_bld +ENTRYPOINT ["docker-entrypoint.sh"] diff --git a/scripts/docker-entrypoint.sh b/scripts/docker-entrypoint.sh new file mode 100755 index 00000000..7520a8d9 --- /dev/null +++ b/scripts/docker-entrypoint.sh @@ -0,0 +1,17 @@ +#!/bin/bash + +set -e + +# Use GOSU_USER if its specified, else wirking dir user +if [ -n "$GOSU_USER" ]; then + ID=$GOSU_USER +else + ID=$(stat -c "%u:%g" .) +fi + +# Don't use GOSU if we are root +if [ ! "$ID" = "0:0" ]; then + exec gosu $ID "$@" +else + exec "$@" +fi -- cgit v1.2.3 From a021853d273129eed50a3db77a972cf6b47b5ef8 Mon Sep 17 00:00:00 2001 From: Runar Borge Date: Wed, 9 Jan 2019 13:30:54 +0100 Subject: Added apt-get update before any apt-get install commands. This fixes an issue where docker is using packages from cache that has an outdated apt-cache. --- Dockerfile | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) (limited to 'Dockerfile') diff --git a/Dockerfile b/Dockerfile index efa7e2bf..45704cb5 100644 --- a/Dockerfile +++ b/Dockerfile @@ -44,7 +44,7 @@ RUN echo 'deb http://ftp.debian.org/debian jessie-backports main' | tee -a /etc/ python3-coverage # Packages needed for building vyos-strongswan -RUN apt-get install -y -t jessie-backports \ +RUN apt-get update && apt-get install -y -t jessie-backports \ debhelper &&\ apt-get install -y \ dh-apparmor \ @@ -68,30 +68,30 @@ RUN apt-get install -y -t jessie-backports \ pkg-config # Package needed for mdns-repeater -RUN apt-get install -y -t jessie-backports \ +RUN apt-get update && apt-get install -y -t jessie-backports \ dh-systemd # Packages needed for vyatta-bash -RUN apt-get install -y \ +RUN apt-get update && apt-get install -y \ libncurses5-dev \ locales # Packages needed for vyatta-cfg -RUN apt-get install -y \ +RUN apt-get update &&apt-get install -y \ libboost-filesystem-dev # Packages needed for vyatta-iproute -RUN apt-get install -y \ +RUN apt-get update && apt-get install -y \ libatm1-dev \ libdb-dev # Packages needed for vyatta-webgui -RUN apt-get install -y \ +RUN apt-get update && apt-get install -y \ libexpat1-dev \ subversion # Packages needed for pmacct -RUN apt-get install -y \ +RUN apt-get update && apt-get install -y \ libpcap-dev \ libpq-dev \ libmysqlclient-dev \ @@ -102,18 +102,18 @@ RUN apt-get install -y \ libnetfilter-log-dev # Packages needed for vyos-keepalived -RUN apt-get install -y \ +RUN apt-get update && apt-get install -y \ libnl-3-dev \ libnl-genl-3-dev \ libpopt-dev \ libsnmp-dev # Pavkages needed for wireguard -RUN apt-get install -y \ +RUN apt-get update && apt-get install -y \ libmnl-dev # Packages needed for kernel -RUN apt-get install -y \ +RUN apt-get update && apt-get install -y \ libelf-dev # Packages needed for vyos-accel-ppp -- cgit v1.2.3 From 6f4d7061e0040f18fa4fca9a8a71fcdcfa83d7fd Mon Sep 17 00:00:00 2001 From: Runar Borge Date: Wed, 9 Jan 2019 13:36:30 +0100 Subject: Adding support for compiling vyos-frr package --- Dockerfile | 12 ++++++++++++ scripts/build-submodules | 1 + 2 files changed, 13 insertions(+) (limited to 'Dockerfile') diff --git a/Dockerfile b/Dockerfile index 45704cb5..4c66a15a 100644 --- a/Dockerfile +++ b/Dockerfile @@ -122,6 +122,18 @@ RUN apt-get update && apt-get install -y \ cmake \ liblua5.1-dev +# Packages needed for vyos-frr +RUN sudo apt-get update && sudo apt-get install -y \ + texinfo \ + imagemagick \ + groff \ + hardening-wrapper \ + gawk \ + chrpath \ + libjson0 \ + libjson0-dev \ + python-ipaddr + # Update live-build RUN echo 'deb http://ftp.debian.org/debian stretch main' | tee -a /etc/apt/sources.list.d/stretch.list &&\ apt-get update &&\ diff --git a/scripts/build-submodules b/scripts/build-submodules index ae9d131c..28175cf5 100755 --- a/scripts/build-submodules +++ b/scripts/build-submodules @@ -145,6 +145,7 @@ for PKG in mdns-repeater \ vyatta-wireless \ vyatta-wirelessmodem \ vyatta-zone \ + vyos-frr \ vyos-keepalived \ vyos-nhrp \ vyos-pppoe-server \ -- cgit v1.2.3 From 041bc80e71c3c700ff0c01702d9ffd0885d2b75b Mon Sep 17 00:00:00 2001 From: Christian Poessinger Date: Fri, 11 Jan 2019 07:31:05 +0100 Subject: CI/CD: Improve 'goso' handling for Docker and Jenkins * Inside the container user can call 'sudo' without password * Added Docker environment variables to controll the 'gosu' UID/GID --- Dockerfile | 13 +++++-------- Jenkinsfile | 5 ++--- scripts/docker-entrypoint.sh | 33 ++++++++++++++++++++++----------- 3 files changed, 29 insertions(+), 22 deletions(-) (limited to 'Dockerfile') diff --git a/Dockerfile b/Dockerfile index 4c66a15a..a76dc8b7 100644 --- a/Dockerfile +++ b/Dockerfile @@ -123,7 +123,7 @@ RUN apt-get update && apt-get install -y \ liblua5.1-dev # Packages needed for vyos-frr -RUN sudo apt-get update && sudo apt-get install -y \ +RUN apt-get update && apt-get install -y \ texinfo \ imagemagick \ groff \ @@ -156,12 +156,9 @@ RUN export LATEST="$(curl -s https://checkpoint-api.hashicorp.com/v1/check/packe curl -K- | gzip -d > /usr/bin/packer && \ chmod +x /usr/bin/packer -COPY scripts/docker-entrypoint.sh /usr/local/bin/ -# Create vyos_bld user account and enable sudo -#RUN useradd -ms /bin/bash -u 1006 --gid users vyos_bld && \ -# usermod -aG sudo vyos_bld && \ -# echo "%sudo ALL=(ALL) NOPASSWD:ALL" >> /etc/sudoers +# Allow password-less 'sudo' for all users in group 'sudo' +RUN sed "s/^%sudo.*/%sudo\tALL=(ALL) NOPASSWD:ALL/g" -i /etc/sudoers && \ + chmod a+s /usr/sbin/useradd /usr/sbin/gosu /usr/sbin/usermod -#USER vyos_bld -#WORKDIR /home/vyos_bld +COPY scripts/docker-entrypoint.sh /usr/local/bin/ ENTRYPOINT ["docker-entrypoint.sh"] diff --git a/Jenkinsfile b/Jenkinsfile index 611777cc..3406e606 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -21,7 +21,7 @@ pipeline { dockerfile { filename 'Dockerfile' label 'jessie-amd64' - args '--privileged --sysctl net.ipv6.conf.lo.disable_ipv6=0' + args '--privileged --sysctl net.ipv6.conf.lo.disable_ipv6=0 -e GOSU_UID=1006 -e GOSU_GID=1006' } } @@ -44,8 +44,7 @@ pipeline { sh ''' #!/bin/sh ./configure --build-by="autobuild@vyos.net" --debian-mirror="http://ftp.us.debian.org/debian/" - ls -al - ls -al packages + ls -al packages/*.deb sudo make iso ''' } diff --git a/scripts/docker-entrypoint.sh b/scripts/docker-entrypoint.sh index 7520a8d9..845cb2ff 100755 --- a/scripts/docker-entrypoint.sh +++ b/scripts/docker-entrypoint.sh @@ -1,17 +1,28 @@ #!/bin/bash - set -e -# Use GOSU_USER if its specified, else wirking dir user -if [ -n "$GOSU_USER" ]; then - ID=$GOSU_USER -else - ID=$(stat -c "%u:%g" .) +USER_NAME="vyos_bld" +NEW_UID=$(stat -c "%u" .) +NEW_GID=$(stat -c "%g" .) + +# Change effective UID to the one specified via "-e GOSU_UID=`id -u $USER`" +if [ -n "$GOSU_UID" ]; then + NEW_UID=$GOSU_UID fi -# Don't use GOSU if we are root -if [ ! "$ID" = "0:0" ]; then - exec gosu $ID "$@" -else - exec "$@" +# Change effective UID to the one specified via "-e GOSU_GID=`id -g $USER`" +if [ -n "$GOSU_GID" ]; then + NEW_GID=$GOSU_GID fi + +# Notify user about selected UID/GID +echo "Current UID/GID: $NEW_UID/$NEW_GID" + +# Create user called "docker" with selected UID +useradd --shell /bin/bash -u $NEW_UID -g $NEW_GID -o -m $USER_NAME +usermod -aG sudo $USER_NAME +sudo chown $NEW_UID:$NEW_GID /home/$USER_NAME +export HOME=/home/$USER_NAME + +# Execute process +exec /usr/sbin/gosu $USER_NAME "$@" -- cgit v1.2.3 From 4004496e89d2a27cfb4cc3a87253dd9dac54e160 Mon Sep 17 00:00:00 2001 From: Christian Poessinger Date: Fri, 11 Jan 2019 09:15:33 +0100 Subject: Docker build files for entrypoint and UIDs --- Dockerfile | 164 ------------------------------------------- Jenkinsfile | 1 + docker/Dockerfile | 164 +++++++++++++++++++++++++++++++++++++++++++ docker/entrypoint.sh | 27 +++++++ scripts/docker-entrypoint.sh | 28 -------- 5 files changed, 192 insertions(+), 192 deletions(-) delete mode 100644 Dockerfile create mode 100644 docker/Dockerfile create mode 100755 docker/entrypoint.sh delete mode 100755 scripts/docker-entrypoint.sh (limited to 'Dockerfile') diff --git a/Dockerfile b/Dockerfile deleted file mode 100644 index a76dc8b7..00000000 --- a/Dockerfile +++ /dev/null @@ -1,164 +0,0 @@ -# Must be run with --privileged flag -# Recommended to run the container with a volume mapped -# in order to easy exprort images built to "external" world -FROM debian:jessie - -RUN echo 'deb http://ftp.debian.org/debian jessie-backports main' | tee -a /etc/apt/sources.list &&\ - apt-get update && apt-get install -y \ - gosu \ - vim \ - git \ - make \ - sudo \ - locales \ - live-build \ - pbuilder \ - devscripts \ - python3-pystache \ - squashfs-tools \ - autoconf \ - dpkg-dev \ - syslinux \ - genisoimage \ - lsb-release \ - fakechroot \ - kernel-package \ - libtool \ - libglib2.0-dev \ - libboost-filesystem-dev \ - libapt-pkg-dev \ - flex \ - bison \ - libperl-dev \ - libnfnetlink-dev \ - python3-git \ - parted \ - kpartx \ - jq \ - qemu-system-x86 \ - qemu-utils \ - quilt \ - python3-lxml \ - python3-setuptools \ - python3-nose \ - python3-coverage - -# Packages needed for building vyos-strongswan -RUN apt-get update && apt-get install -y -t jessie-backports \ - debhelper &&\ - apt-get install -y \ - dh-apparmor \ - gperf \ - iptables-dev \ - libcap-dev \ - libgcrypt20-dev \ - libgmp3-dev \ - libldap2-dev \ - libpam0g-dev \ - libsystemd-dev \ - libgmp-dev \ - iptables \ - xl2tpd \ - libcurl4-openssl-dev \ - libcurl4-openssl-dev \ - libkrb5-dev \ - libsqlite3-dev \ - libssl-dev \ - libxml2-dev \ - pkg-config - -# Package needed for mdns-repeater -RUN apt-get update && apt-get install -y -t jessie-backports \ - dh-systemd - -# Packages needed for vyatta-bash -RUN apt-get update && apt-get install -y \ - libncurses5-dev \ - locales - -# Packages needed for vyatta-cfg -RUN apt-get update &&apt-get install -y \ - libboost-filesystem-dev - -# Packages needed for vyatta-iproute -RUN apt-get update && apt-get install -y \ - libatm1-dev \ - libdb-dev - -# Packages needed for vyatta-webgui -RUN apt-get update && apt-get install -y \ - libexpat1-dev \ - subversion - -# Packages needed for pmacct -RUN apt-get update && apt-get install -y \ - libpcap-dev \ - libpq-dev \ - libmysqlclient-dev \ - libgeoip-dev \ - librabbitmq-dev \ - libjansson-dev \ - librdkafka-dev \ - libnetfilter-log-dev - -# Packages needed for vyos-keepalived -RUN apt-get update && apt-get install -y \ - libnl-3-dev \ - libnl-genl-3-dev \ - libpopt-dev \ - libsnmp-dev - -# Pavkages needed for wireguard -RUN apt-get update && apt-get install -y \ - libmnl-dev - -# Packages needed for kernel -RUN apt-get update && apt-get install -y \ - libelf-dev - -# Packages needed for vyos-accel-ppp -RUN apt-get update && apt-get install -y \ - cdbs \ - cmake \ - liblua5.1-dev - -# Packages needed for vyos-frr -RUN apt-get update && apt-get install -y \ - texinfo \ - imagemagick \ - groff \ - hardening-wrapper \ - gawk \ - chrpath \ - libjson0 \ - libjson0-dev \ - python-ipaddr - -# Update live-build -RUN echo 'deb http://ftp.debian.org/debian stretch main' | tee -a /etc/apt/sources.list.d/stretch.list &&\ - apt-get update &&\ - apt-get install -y -t stretch live-build &&\ - rm -f /etc/apt/sources.list.d/stretch.list &&\ - apt-get update &&\ - rm -rf /var/lib/apt/lists/* - -# Standard shell should be bash not dash -RUN echo "dash dash/sh boolean false" | debconf-set-selections && \ - DEBIAN_FRONTEND=noninteractive dpkg-reconfigure dash - -RUN echo "en_US.UTF-8 UTF-8" > /etc/locale.gen && locale-gen -ENV LANG en_US.utf8 - -# Install packer -RUN export LATEST="$(curl -s https://checkpoint-api.hashicorp.com/v1/check/packer | \ - jq -r -M '.current_version')"; \ - echo "url https://releases.hashicorp.com/packer/"$LATEST"/packer_"$LATEST"_linux_amd64.zip" |\ - curl -K- | gzip -d > /usr/bin/packer && \ - chmod +x /usr/bin/packer - -# Allow password-less 'sudo' for all users in group 'sudo' -RUN sed "s/^%sudo.*/%sudo\tALL=(ALL) NOPASSWD:ALL/g" -i /etc/sudoers && \ - chmod a+s /usr/sbin/useradd /usr/sbin/gosu /usr/sbin/usermod - -COPY scripts/docker-entrypoint.sh /usr/local/bin/ -ENTRYPOINT ["docker-entrypoint.sh"] diff --git a/Jenkinsfile b/Jenkinsfile index 3406e606..7a780286 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -21,6 +21,7 @@ pipeline { dockerfile { filename 'Dockerfile' label 'jessie-amd64' + dir 'docker' args '--privileged --sysctl net.ipv6.conf.lo.disable_ipv6=0 -e GOSU_UID=1006 -e GOSU_GID=1006' } } diff --git a/docker/Dockerfile b/docker/Dockerfile new file mode 100644 index 00000000..2744d291 --- /dev/null +++ b/docker/Dockerfile @@ -0,0 +1,164 @@ +# Must be run with --privileged flag +# Recommended to run the container with a volume mapped +# in order to easy exprort images built to "external" world +FROM debian:jessie + +RUN echo 'deb http://ftp.debian.org/debian jessie-backports main' | tee -a /etc/apt/sources.list &&\ + apt-get update && apt-get install -y \ + gosu \ + vim \ + git \ + make \ + sudo \ + locales \ + live-build \ + pbuilder \ + devscripts \ + python3-pystache \ + squashfs-tools \ + autoconf \ + dpkg-dev \ + syslinux \ + genisoimage \ + lsb-release \ + fakechroot \ + kernel-package \ + libtool \ + libglib2.0-dev \ + libboost-filesystem-dev \ + libapt-pkg-dev \ + flex \ + bison \ + libperl-dev \ + libnfnetlink-dev \ + python3-git \ + parted \ + kpartx \ + jq \ + qemu-system-x86 \ + qemu-utils \ + quilt \ + python3-lxml \ + python3-setuptools \ + python3-nose \ + python3-coverage + +# Packages needed for building vyos-strongswan +RUN apt-get update && apt-get install -y -t jessie-backports \ + debhelper &&\ + apt-get install -y \ + dh-apparmor \ + gperf \ + iptables-dev \ + libcap-dev \ + libgcrypt20-dev \ + libgmp3-dev \ + libldap2-dev \ + libpam0g-dev \ + libsystemd-dev \ + libgmp-dev \ + iptables \ + xl2tpd \ + libcurl4-openssl-dev \ + libcurl4-openssl-dev \ + libkrb5-dev \ + libsqlite3-dev \ + libssl-dev \ + libxml2-dev \ + pkg-config + +# Package needed for mdns-repeater +RUN apt-get update && apt-get install -y -t jessie-backports \ + dh-systemd + +# Packages needed for vyatta-bash +RUN apt-get update && apt-get install -y \ + libncurses5-dev \ + locales + +# Packages needed for vyatta-cfg +RUN apt-get update &&apt-get install -y \ + libboost-filesystem-dev + +# Packages needed for vyatta-iproute +RUN apt-get update && apt-get install -y \ + libatm1-dev \ + libdb-dev + +# Packages needed for vyatta-webgui +RUN apt-get update && apt-get install -y \ + libexpat1-dev \ + subversion + +# Packages needed for pmacct +RUN apt-get update && apt-get install -y \ + libpcap-dev \ + libpq-dev \ + libmysqlclient-dev \ + libgeoip-dev \ + librabbitmq-dev \ + libjansson-dev \ + librdkafka-dev \ + libnetfilter-log-dev + +# Packages needed for vyos-keepalived +RUN apt-get update && apt-get install -y \ + libnl-3-dev \ + libnl-genl-3-dev \ + libpopt-dev \ + libsnmp-dev + +# Pavkages needed for wireguard +RUN apt-get update && apt-get install -y \ + libmnl-dev + +# Packages needed for kernel +RUN apt-get update && apt-get install -y \ + libelf-dev + +# Packages needed for vyos-accel-ppp +RUN apt-get update && apt-get install -y \ + cdbs \ + cmake \ + liblua5.1-dev + +# Packages needed for vyos-frr +RUN apt-get update && apt-get install -y \ + texinfo \ + imagemagick \ + groff \ + hardening-wrapper \ + gawk \ + chrpath \ + libjson0 \ + libjson0-dev \ + python-ipaddr + +# Update live-build +RUN echo 'deb http://ftp.debian.org/debian stretch main' | tee -a /etc/apt/sources.list.d/stretch.list &&\ + apt-get update &&\ + apt-get install -y -t stretch live-build &&\ + rm -f /etc/apt/sources.list.d/stretch.list &&\ + apt-get update &&\ + rm -rf /var/lib/apt/lists/* + +# Standard shell should be bash not dash +RUN echo "dash dash/sh boolean false" | debconf-set-selections && \ + DEBIAN_FRONTEND=noninteractive dpkg-reconfigure dash + +RUN echo "en_US.UTF-8 UTF-8" > /etc/locale.gen && locale-gen +ENV LANG en_US.utf8 + +# Install packer +RUN export LATEST="$(curl -s https://checkpoint-api.hashicorp.com/v1/check/packer | \ + jq -r -M '.current_version')"; \ + echo "url https://releases.hashicorp.com/packer/"$LATEST"/packer_"$LATEST"_linux_amd64.zip" |\ + curl -K- | gzip -d > /usr/bin/packer && \ + chmod +x /usr/bin/packer + +# Allow password-less 'sudo' for all users in group 'sudo' +RUN sed "s/^%sudo.*/%sudo\tALL=(ALL) NOPASSWD:ALL/g" -i /etc/sudoers && \ + chmod a+s /usr/sbin/useradd /usr/sbin/gosu /usr/sbin/usermod + +COPY entrypoint.sh /usr/local/bin/entrypoint.sh +ENTRYPOINT ["/usr/local/bin/entrypoint.sh"] diff --git a/docker/entrypoint.sh b/docker/entrypoint.sh new file mode 100755 index 00000000..00e1e139 --- /dev/null +++ b/docker/entrypoint.sh @@ -0,0 +1,27 @@ +#!/bin/bash +set -e + +USER_NAME="vyos_bld" +NEW_UID=$(stat -c "%u" .) +NEW_GID=$(stat -c "%g" .) + +# Change effective UID to the one specified via "-e GOSU_UID=`id -u $USER`" +if [ -n "$GOSU_UID" ]; then + NEW_UID=$GOSU_UID +fi + +# Change effective UID to the one specified via "-e GOSU_GID=`id -g $USER`" +if [ -n "$GOSU_GID" ]; then + NEW_GID=$GOSU_GID +fi + +# Notify user about selected UID/GID +echo "Current UID/GID: $NEW_UID/$NEW_GID" + +useradd --shell /bin/bash -u $NEW_UID -g $NEW_GID -o -m $USER_NAME +usermod -aG sudo $USER_NAME +sudo chown $NEW_UID:$NEW_GID /home/$USER_NAME +export HOME=/home/$USER_NAME + +# Execute process +exec /usr/sbin/gosu $USER_NAME "$@" diff --git a/scripts/docker-entrypoint.sh b/scripts/docker-entrypoint.sh deleted file mode 100755 index 845cb2ff..00000000 --- a/scripts/docker-entrypoint.sh +++ /dev/null @@ -1,28 +0,0 @@ -#!/bin/bash -set -e - -USER_NAME="vyos_bld" -NEW_UID=$(stat -c "%u" .) -NEW_GID=$(stat -c "%g" .) - -# Change effective UID to the one specified via "-e GOSU_UID=`id -u $USER`" -if [ -n "$GOSU_UID" ]; then - NEW_UID=$GOSU_UID -fi - -# Change effective UID to the one specified via "-e GOSU_GID=`id -g $USER`" -if [ -n "$GOSU_GID" ]; then - NEW_GID=$GOSU_GID -fi - -# Notify user about selected UID/GID -echo "Current UID/GID: $NEW_UID/$NEW_GID" - -# Create user called "docker" with selected UID -useradd --shell /bin/bash -u $NEW_UID -g $NEW_GID -o -m $USER_NAME -usermod -aG sudo $USER_NAME -sudo chown $NEW_UID:$NEW_GID /home/$USER_NAME -export HOME=/home/$USER_NAME - -# Execute process -exec /usr/sbin/gosu $USER_NAME "$@" -- cgit v1.2.3