docker: multiple updates

* Update Debian base image to 12
* Add --break-system-packages option to pip3 install command
* Remove chmod a+s from Dockerfile (newer versions of gosu in particular don't support this)
* Add sudo to relevant commands in entrypoint.sh
* Add UID_MIN key to adduser command (allows the container to run on MacOS)
* Formatting and spelling fixes
This commit is contained in:
Matthew Kobayashi 2024-05-11 04:15:36 +10:00 committed by GitHub
parent a2c982709a
commit 48fc429153
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
2 changed files with 14 additions and 18 deletions

View File

@ -1,7 +1,7 @@
# Must be run with --privileged flag # Must be run with --privileged flag
# Recommended to run the container with a volume mapped # Recommended to run the container with a volume mapped
# in order to easy exprort images built to "external" world # in order to easy exprort images built to "external" world
FROM debian:11 FROM debian:12
LABEL authors="VyOS Maintainers <maintainers@vyos.io>" LABEL authors="VyOS Maintainers <maintainers@vyos.io>"
ENV DEBIAN_FRONTEND noninteractive ENV DEBIAN_FRONTEND noninteractive
@ -27,16 +27,14 @@ RUN apt-get update && apt-get install -y \
curl \ curl \
dos2unix dos2unix
RUN pip3 install --break-system-packages \
Sphinx \
RUN pip3 install Sphinx sphinx-rtd-theme \
RUN pip3 install sphinx-rtd-theme sphinx-autobuild \
RUN pip3 install sphinx-autobuild sphinx-notfound-page \
RUN pip3 install sphinx-notfound-page lxml \
RUN pip3 install lxml myst-parser \
RUN pip3 install myst-parser sphinx_design
RUN pip3 install sphinx_design
# Cleanup # Cleanup
RUN rm -rf /var/lib/apt/lists/* RUN rm -rf /var/lib/apt/lists/*
@ -44,13 +42,11 @@ RUN rm -rf /var/lib/apt/lists/*
EXPOSE 8000 EXPOSE 8000
# Allow password-less 'sudo' for all users in group 'sudo' # Allow password-less 'sudo' for all users in group 'sudo'
RUN sed "s/^%sudo.*/%sudo\tALL=(ALL) NOPASSWD:ALL/g" -i /etc/sudoers && \ RUN sed "s/^%sudo.*/%sudo\tALL=(ALL) NOPASSWD:ALL/g" -i /etc/sudoers
chmod a+s /usr/sbin/useradd /usr/sbin/groupadd /usr/sbin/gosu /usr/sbin/usermod
COPY entrypoint.sh /usr/local/bin/entrypoint.sh COPY entrypoint.sh /usr/local/bin/entrypoint.sh
# we need to convert the entrypoint with appropriate line endings, else # We need to convert the entrypoint with appropriate line endings, else
# there will be an error: # there will be an error:
# standard_init_linux.go:175: exec user process caused # standard_init_linux.go:175: exec user process caused
# "no such file or directory" # "no such file or directory"

View File

@ -23,10 +23,10 @@ if ! grep -q $NEW_GID /etc/group; then
groupadd --gid $NEW_GID $USER_NAME groupadd --gid $NEW_GID $USER_NAME
fi fi
useradd --shell /bin/bash --uid $NEW_UID --gid $NEW_GID --non-unique --create-home $USER_NAME useradd --shell /bin/bash --uid $NEW_UID --gid $NEW_GID --non-unique --create-home $USER_NAME --key UID_MIN=500
usermod --append --groups sudo $USER_NAME usermod --append --groups sudo $USER_NAME
sudo chown $NEW_UID:$NEW_GID /home/$USER_NAME chown $NEW_UID:$NEW_GID /home/$USER_NAME
export HOME=/home/$USER_NAME export HOME=/home/$USER_NAME
# Execute process # Execute process
exec /usr/sbin/gosu $USER_NAME "$@" /usr/sbin/gosu $USER_NAME "$@"