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" ]