Improved UID/GID Handling
authorAdam Dullage <redacted>
Wed, 25 Aug 2021 20:11:38 +0000 (21:11 +0100)
committerAdam Dullage <redacted>
Wed, 25 Aug 2021 20:11:38 +0000 (21:11 +0100)
Dockerfile

index 87aa1235987a96f2662a19689b76730e14a27161..b00563cd6d97bbb2d79ccbf57902bd6911620ffe 100644 (file)
@@ -5,36 +5,39 @@ ARG UID=1000
 ARG GID=1000
 
 ARG APP_DIR=/app
-
 ARG DATA_DIR=${APP_DIR}/data
+
 ENV FLATNOTES_PATH=${DATA_DIR}
 
 RUN addgroup \
     --gid $GID \
     ${USER} \
- && adduser \
+    || echo "Group '${GID}' already exists."
+
+RUN adduser \
     --disabled-password \
     --gecos "" \
-    --home ${APP_DIR} \
+    --no-create-home \
     --ingroup ${USER} \
     --uid ${UID} \
-    ${USER}
-
-RUN mkdir ${DATA_DIR} && chown ${UID}:${GID} ${DATA_DIR}
+    ${USER} \
+    || echo "User '${UID}' already exists."
 
 RUN apt update && apt install -y \
       npm \
  && rm -rf /var/lib/apt/lists/* \
  && pip install pipenv
 
-USER ${UID}
+RUN mkdir -p ${DATA_DIR}
 WORKDIR ${APP_DIR}
 
-COPY --chown=${UID}:${GID} LICENSE Pipfile Pipfile.lock package.json package-lock.json ./
-RUN pipenv install --system --deploy --ignore-pipfile \
- && npm ci
+COPY LICENSE Pipfile Pipfile.lock package.json package-lock.json ./
+RUN pipenv install --system --deploy --ignore-pipfile && npm ci
 
-COPY --chown=${UID}:${GID} flatnotes ./flatnotes
+COPY flatnotes ./flatnotes
 RUN npm run build
 
+RUN chown -R ${UID}:${GID} ${APP_DIR}
+USER ${UID}
+
 ENTRYPOINT [ "python", "-m", "uvicorn", "main:app", "--app-dir", "flatnotes", "--host", "0.0.0.0", "--port", "80" ]
git clone https://git.99rst.org/PROJECT