ARG USER=flatnotes
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} \
--uid ${UID} \
${USER}
+RUN mkdir ${DATA_DIR} && chown ${UID}:${GID} ${DATA_DIR}
+
RUN apk add --update-cache \
libc-dev \
gcc \
&& pip install pipenv
USER ${UID}
-
WORKDIR ${APP_DIR}
-RUN mkdir data
-
-ENV FLATNOTES_PATH=${APP_DIR}/data
-
COPY --chown=${UID}:${GID} LICENSE Pipfile Pipfile.lock package.json package-lock.json ./
-
RUN pipenv install --system --deploy --ignore-pipfile \
&& npm ci
COPY --chown=${UID}:${GID} flatnotes ./flatnotes
-
RUN npm run build
ENTRYPOINT [ "python", "-m", "uvicorn", "main:app", "--app-dir", "flatnotes", "--host", "0.0.0.0", "--port", "80" ]
* [ ] Proof of Concept - Stage 2
* [x] View Note Content
* [x] Edit Note Content
- * [ ] Docker Deployment
+ * [x] Docker Deployment
* [ ] Password Authentication
* [ ] Proof of Concept - Stage 3
* [ ] Image Embedding
--- /dev/null
+version: "3"
+
+services:
+ flatnotes:
+ container_name: flatnotes
+ image: dullage/flatnotes:latest
+ build: .
+ volumes:
+ - "./data:/data"
+ ports:
+ - "80:80"
+ restart: unless-stopped