development docker-compose.yml for database and stuff

This commit is contained in:
Jakub Kropáček 2024-08-19 22:39:09 +02:00
parent 2b30676431
commit 928b28845b
5 changed files with 55 additions and 5 deletions

View file

@ -2,3 +2,5 @@
.idea/
*.drawio
.ruff_cache/
*.sqlite3
*.db

View file

@ -4,11 +4,9 @@ FROM python:${PYTHON_VERSION}-alpine AS base
ENV PYTHONUNBUFFERED=1 \
PIP_DISABLE_PIP_VERSION_CHECK=on \
DEBIAN_FRONTEND=noninteractive \
POETRY_VIRTUALENVS_CREATE=false \
VENV=/root/.venv
RUN adduser --disabled-password --gecos "" django
FROM base AS poetry
@ -19,6 +17,8 @@ RUN : \
&& python -m venv ${VENV} \
&& . ${VENV}/bin/activate \
&& pip install poetry==${POETRY_VERSION} \
&& apk add gettext shadow \
&& apk -v cache clean \
&& :
ENV PATH="${VENV}/bin:${PATH}"
@ -33,11 +33,32 @@ RUN poetry install --no-interaction --no-ansi -vvv
COPY scripts/ /usr/local/tmp-bin
RUN chmod +x /usr/local/tmp-bin/* \
RUN : \
&& chmod +x /usr/local/tmp-bin/* \
&& mv /usr/local/tmp-bin/* /usr/local/bin \
&& rmdir /usr/local/tmp-bin
&& rmdir /usr/local/tmp-bin \
&& :
ENTRYPOINT ["entrypoint.sh"]
CMD ["run.sh"]
FROM deps AS development
WORKDIR /app
ARG GID=1000
ARG UID=1000
RUN : \
&& groupmod django -g $GID \
&& usermod django -u $UID -g $GID \
&& :
COPY --chown=django . .
USER django
CMD ["run-dev.sh"]
FROM deps AS production
@ -45,4 +66,9 @@ WORKDIR /app
COPY --chown=django . .
CMD ["run.sh"]
USER django
RUN : \
&& ./manage.py compilemessages \
&& ./manage.py collectstatic --noinput \
&& :

14
docker-compose.yml Normal file
View file

@ -0,0 +1,14 @@
services:
api:
image: facturio
build:
context: .
dockerfile: Dockerfile
args:
GID: ${GID:-1000}
UID: ${UID:-1000}
target: development
ports:
- "8000:8000"
volumes:
- .:/app:Z

4
scripts/run-dev.sh Normal file
View file

@ -0,0 +1,4 @@
#!/bin/sh
./manage.py migrate
./manage.py runserver 0.0.0.0:8000

View file

@ -1,5 +1,9 @@
#/bin/sh
echo "Migrating..."
./manage.py migrate >/dev/null
gunicorn \
--threads 2 \
--workers 4 \