FROM python:3.8 AS base
-ARG UID=1000
-ARG GID=1000
-
RUN apt-get update && apt-get install -y \
git \
calibre \
django-debug-toolbar==3.2.2 \
python-bidi
-RUN addgroup --gid $GID app
-RUN adduser --gid $GID --home /app --uid $UID app
-
RUN apt-get install -y \
texlive-extra-utils \
texlive-lang-greek \
fonts-noto-core fonts-noto-extra
-USER app
-
# fonts
-RUN cp -a /usr/local/lib/python*/site-packages/librarian/fonts /app/.fonts
+RUN cp -a /usr/local/lib/python*/site-packages/librarian/fonts /usr/local/share/fonts
RUN fc-cache
WORKDIR /app/src
FROM base AS dev
#RUN pip install --no-cache-dir coverage
-USER app
FROM base AS prod
RUN pip install --no-cache-dir gunicorn
-USER app
COPY src /app/src
shell:
- UID=$(UID) GID=$(GID) docker-compose run --rm dev bash
+ UID=$(UID) GID=$(GID) docker compose run --rm dev bash
build:
- UID=$(UID) GID=$(GID) docker-compose build dev
+ docker compose build dev
build:
context: .
target: dev
- args:
- - "UID=${UID}"
- - "GID=${GID}"
+ user: "${UID}:${GID}"
volumes:
- ./src:/app/src
- ./var/media:/app/var/media
[ -z "$PORT" ] && PORT=8000
EXPOSED=127.0.0.1:"$PORT"
echo "expose as: $EXPOSED"
- exec docker-compose run --rm -p "$EXPOSED":"$PORT" dev python $PYARGS manage.py runserver 0.0.0.0:"$PORT"
+ exec docker compose run --rm -p "$EXPOSED":"$PORT" dev python $PYARGS manage.py runserver 0.0.0.0:"$PORT"
else
- exec docker-compose run --rm dev python $PYARGS manage.py "$@"
+ exec docker compose run --rm dev python $PYARGS manage.py "$@"
fi