2
2
# to take effect)
3
3
ARG DEBIAN_FRONTEND=noninteractive
4
4
ARG UBUNTU_VERSION=noble
5
+ ARG USER=fans
5
6
6
7
# ###############################################################################
7
8
8
9
FROM ubuntu:${UBUNTU_VERSION} AS fans_base
9
10
ARG DEBIAN_FRONTEND
11
+ ARG USER
10
12
11
13
# Context: https://askubuntu.com/questions/1513927/ubuntu-24-04-docker-images-now-includes-user-ubuntu-with-uid-gid-1000
12
14
RUN bash -c 'if id "ubuntu" &>/dev/null; then \
@@ -16,6 +18,9 @@ RUN bash -c 'if id "ubuntu" &>/dev/null; then \
16
18
echo "Deleted user ubuntu."; \
17
19
fi'
18
20
21
+ # Create a non-root user
22
+ RUN useradd -m -s /bin/bash ${USER}
23
+
19
24
# ###############################################################################
20
25
21
26
FROM fans_base AS fans_ci
@@ -44,6 +49,8 @@ RUN apt-get update -qq && apt-get install -y --no-install-recommends \
44
49
45
50
FROM fans_ci AS fans_dev
46
51
ARG DEBIAN_FRONTEND
52
+ ARG USER
53
+ ARG FANS_venv=FANS_venv
47
54
48
55
RUN apt-get update -qq && apt-get install -y --no-install-recommends \
49
56
# Packages required for setting up the non-root user
@@ -63,32 +70,20 @@ RUN apt-get update -qq && apt-get install -y --no-install-recommends \
63
70
&& apt-get autoremove --purge -y \
64
71
&& rm -rf /var/lib/apt/lists/*
65
72
66
- # Create a non-root user
67
- ENV USER=develop
68
- ENV UID=1000
69
- ENV GID=100
70
- ENV HOME=/home/${USER}
71
- RUN adduser --disabled-password \
72
- --gecos "Non-root user" \
73
- --uid ${UID} \
74
- --gid ${GID} \
75
- --home ${HOME} \
76
- ${USER} \
77
- #
78
- && echo ${USER} ALL=\( root\) NOPASSWD:ALL > /etc/sudoers.d/${USER} \
79
- && chmod 0440 /etc/sudoers.d/${USER}
80
-
81
73
# Create a python venv for test/h52xdmf.py script
82
74
USER ${USER}
83
75
84
- ARG FANS_venv=FANS_venv
85
76
RUN python -m venv /home/${USER}/venvs/${FANS_venv} && \
86
77
echo "\n source /home/${USER}/venvs/${FANS_venv}/bin/activate\n " >> /home/${USER}/.bashrc && \
87
78
. /home/${USER}/venvs/${FANS_venv}/bin/activate && \
88
79
python -m pip install --no-cache-dir h5py lxml
89
80
90
81
USER root
91
82
83
+ # Add fans user to sudoers
84
+ RUN echo ${USER} ALL=\( root\) NOPASSWD:ALL > /etc/sudoers.d/${USER} \
85
+ && chmod 440 /etc/sudoers.d/${USER}
86
+
92
87
# Entrypoint script changes UID and GID to match given host UID and GID
93
88
COPY --chmod=755 docker/Dockerfile_user_env_entrypoint.sh /entrypoint.sh
94
89
ENTRYPOINT ["/entrypoint.sh" ]
0 commit comments