From: Adam Dullage Date: Wed, 25 Aug 2021 20:11:38 +0000 (+0100) Subject: Improved UID/GID Handling X-Git-Url: http://git.99rst.org/?a=commitdiff_plain;h=f565b625c3c09d0ff6a8f23e7271bd240656dfe5;p=flatnotes.git Improved UID/GID Handling --- diff --git a/Dockerfile b/Dockerfile index 87aa123..b00563c 100644 --- a/Dockerfile +++ b/Dockerfile @@ -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" ]