Dockerfile: add support for arbritary uid
This change adds the uid_entrypoint script to support arbitrary uid as documented in: https://github.com/RHsyseng/container-rhel-examples/tree/master/starter-arbitrary-uid Change-Id: I857308fa1f2363d2b4bc257e86963c36ce1d49e2
This commit is contained in:
parent
4b29a89d57
commit
da2701e0b1
10
Dockerfile
10
Dockerfile
@ -22,6 +22,16 @@ FROM opendevorg/python-base as nodepool
|
||||
|
||||
COPY --from=builder /output/ /output
|
||||
RUN /output/install-from-bindep
|
||||
|
||||
### Containers should NOT run as root as a good practice
|
||||
RUN chmod g=u /etc/passwd
|
||||
ENV APP_ROOT=/var/lib/nodepool
|
||||
ENV HOME=${APP_ROOT}
|
||||
ENV USER_NAME=nodepool
|
||||
USER 10001
|
||||
COPY tools/uid_entrypoint.sh /uid_entrypoint
|
||||
ENTRYPOINT ["/uid_entrypoint"]
|
||||
|
||||
CMD ["/usr/local/bin/nodepool"]
|
||||
|
||||
FROM nodepool as nodepool-launcher
|
||||
|
22
tools/uid_entrypoint.sh
Executable file
22
tools/uid_entrypoint.sh
Executable file
@ -0,0 +1,22 @@
|
||||
#!/bin/sh
|
||||
# Copyright 2019 Red Hat, Inc.
|
||||
#
|
||||
# Licensed under the Apache License, Version 2.0 (the "License");
|
||||
# you may not use this file except in compliance with the License.
|
||||
# You may obtain a copy of the License at
|
||||
#
|
||||
# http://www.apache.org/licenses/LICENSE-2.0
|
||||
#
|
||||
# Unless required by applicable law or agreed to in writing, software
|
||||
# distributed under the License is distributed on an "AS IS" BASIS,
|
||||
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
|
||||
# implied.
|
||||
# See the License for the specific language governing permissions and
|
||||
# limitations under the License.
|
||||
|
||||
if ! whoami 2>&1 /dev/null; then
|
||||
if [ -w /etc/passwd ]; then
|
||||
echo "${USER_NAME:-default}:x:$(id -u):0:${USER_NAME:-default} user:${HOME}:/sbin/nologin" >> /etc/passwd
|
||||
fi
|
||||
fi
|
||||
exec dumb-init "$@"
|
Loading…
x
Reference in New Issue
Block a user