From 2bf99387b4f1a6f0915247f9ad422bde77199082 Mon Sep 17 00:00:00 2001 From: Ben Evans Date: Wed, 21 Feb 2024 17:22:36 +0000 Subject: [PATCH] Revise useradd and further consolidation --- Dockerfile | 46 +++++++++++++++++++++++----------------------- 1 file changed, 23 insertions(+), 23 deletions(-) diff --git a/Dockerfile b/Dockerfile index 32e3c3a..00132f3 100644 --- a/Dockerfile +++ b/Dockerfile @@ -84,44 +84,44 @@ RUN update-alternatives --install /usr/bin/python python /usr/bin/python3 1 RUN update-alternatives --install /usr/bin/pip pip /usr/bin/pip3 1 # Create user and working directory for Chaste files +# Allow CHASTE_DIR to be set at build time if desired ARG USER="chaste" +ARG CHASTE_DIR="/home/${USER}" ENV USER=${USER} \ GROUP=${USER} \ - PASSWORD=${USER} -RUN useradd -ms /bin/bash ${USER} && echo "${USER}:${PASSWORD}" | chpasswd && adduser ${USER} sudo - -# Allow CHASTE_DIR to be set at build time if desired -ARG CHASTE_DIR="/home/${USER}" -ENV CHASTE_DIR=${CHASTE_DIR} -WORKDIR ${CHASTE_DIR} + PASSWORD=${USER} \ + CHASTE_DIR=${CHASTE_DIR} +# RUN useradd -ms /bin/bash ${USER} && echo "${USER}:${PASSWORD}" | chpasswd && adduser ${USER} sudo +RUN useradd -ms /bin/bash -d ${CHASTE_DIR} ${USER} -G users,sudo && \ + echo "${USER}:${PASSWORD}" | chpasswd # Add scripts -# COPY --chown=chaste:chaste scripts "${CHASTE_DIR}/scripts" COPY --chown=${USER}:${GROUP} scripts "${CHASTE_DIR}/scripts" + USER ${USER} +WORKDIR ${CHASTE_DIR} -RUN pip install --upgrade pip -# Install TextTest for regression testing (this requires pygtk) -RUN pip install texttest -ENV TEXTTEST_HOME /usr/local/bin/texttest -# Installed by CMake -RUN pip install chaste-codegen +# Install TextTest for regression testing (requires pygtk) and chaste-codegen +# NOTE: chaste-codegen is usually installed by CMake +RUN pip install --upgrade pip && \ + pip install texttest \ + chaste-codegen # Set environment variables -# RUN source /home/chaste/scripts/set_env_vars.sh -ENV PATH="${CHASTE_DIR}/scripts:${PATH}" \ - CHASTE_SOURCE_DIR="${CHASTE_DIR}/src" \ - CHASTE_BUILD_DIR="${CHASTE_DIR}/build" \ - CHASTE_PROJECTS_DIR="${CHASTE_DIR}/src/projects" \ - CHASTE_TEST_OUTPUT="${CHASTE_DIR}/output" \ - PYTHONPATH="${CHASTE_BUILD_DIR}/python:$PYTHONPATH" -# CMake environment variables ARG CMAKE_BUILD_TYPE="Debug" ARG Chaste_ERROR_ON_WARNING="ON" ARG Chaste_UPDATE_PROVENANCE="OFF" +# RUN source /home/chaste/scripts/set_env_vars.sh ENV CMAKE_BUILD_TYPE=${CMAKE_BUILD_TYPE} \ Chaste_ERROR_ON_WARNING=${Chaste_ERROR_ON_WARNING} \ - Chaste_UPDATE_PROVENANCE=${Chaste_UPDATE_PROVENANCE} + Chaste_UPDATE_PROVENANCE=${Chaste_UPDATE_PROVENANCE} \ + CHASTE_SOURCE_DIR="${CHASTE_DIR}/src" \ + CHASTE_BUILD_DIR="${CHASTE_DIR}/build" \ + CHASTE_PROJECTS_DIR="${CHASTE_DIR}/src/projects" \ + CHASTE_TEST_OUTPUT="${CHASTE_DIR}/output" \ + PATH="${CHASTE_DIR}/scripts:${PATH}" \ + PYTHONPATH="${CHASTE_BUILD_DIR}/python:$PYTHONPATH" \ + TEXTTEST_HOME=/usr/local/bin/texttest # Create Chaste build, projects and output folders RUN mkdir -p "${CHASTE_SOURCE_DIR}" "${CHASTE_BUILD_DIR}" "${CHASTE_TEST_OUTPUT}"