feat: postgres => sqlite

This commit is contained in:
Felix Spöttel
2023-02-08 14:09:16 +01:00
parent e995b1f2ff
commit 18921d34c6
16 changed files with 148 additions and 159 deletions

View File

@@ -1,91 +0,0 @@
version: "3.8"
x-app-variables: &app-variables
API_SECRET: a_very_secret_token
DATABASE_URI: postgresql://postgres:postgres@postgres/whisperbox
ENVIRONMENT: development
BROKER_URL: redis://redis:6379/0
services:
postgres:
container_name: whisperbox_postgres
image: postgres:15-alpine
environment:
POSTGRES_USER: postgres
POSTGRES_PASSWORD: postgres
POSTGRES_DB: whisperbox
ports:
- "5432:5432"
networks:
- app
volumes:
- postgres-data:/var/lib/postgresql/data
healthcheck:
test: ["CMD-SHELL", "pg_isready -U postgres"]
interval: 5s
timeout: 5s
retries: 5
redis:
container_name: whisperbox_redis
image: redis:7-alpine
ports:
- 6379:6379
networks:
- app
app:
container_name: whisperbox_app
build:
context: ../
dockerfile: docker/app.dev.Dockerfile
environment: *app-variables
ports:
- "8000:80"
networks:
- app
volumes:
- ../:/code
depends_on:
postgres:
condition: service_healthy
postgres:
condition: service_healthy
redis:
condition: service_started
worker:
build:
context: ../
dockerfile: docker/worker.dev.Dockerfile
container_name: whisperbox_worker
volumes:
- ../:/code
environment: *app-variables
depends_on:
- redis
networks:
- app
healthcheck:
test: ["CMD-SHELL", "celery inspect ping -A app.worker.main.transcribe -d celery@$$HOSTNAME"]
interval: 5s
timeout: 5s
retries: 5
flower:
container_name: whisperbox_flower
image: mher/flower
command: celery --broker redis://redis:6379/0 flower --port=5555
ports:
- 5555:5555
depends_on:
- redis
networks:
- app
volumes:
postgres-data:
networks:
app:
driver: bridge

View File

@@ -0,0 +1,71 @@
version: "3.8"
x-app-variables: &app-variables
API_SECRET: a_very_secret_token
DATABASE_URI: sqlite:////whisperbox.sqlite
ENVIRONMENT: development
BROKER_URL: redis://redis:6379/0
WHISPER_MODEL: small
services:
redis:
container_name: whisperbox_redis_dev
image: redis:7-alpine
ports:
- 6379:6379
networks:
- app
resources:
limits:
memory: 128M
web:
container_name: whisperbox_web_dev
build:
context: ../../
dockerfile: docker/dev/web.Dockerfile
environment: *app-variables
ports:
- "8000:80"
networks:
- app
volumes:
- ../../:/code
depends_on:
redis:
condition: service_started
worker:
build:
context: ../../
dockerfile: docker/dev/worker.Dockerfile
args:
WHISPER_MODEL: small
container_name: whisperbox_worker_dev
volumes:
- ../../:/code
environment: *app-variables
depends_on:
- redis
networks:
- app
healthcheck:
test: ["CMD-SHELL", "celery inspect ping -A app.worker.main.transcribe -d celery@$$HOSTNAME"]
interval: 5s
timeout: 5s
retries: 5
flower:
container_name: whisperbox_flower_dev
image: mher/flower
command: celery --broker redis://redis:6379/0 flower --port=5555
ports:
- 5555:5555
depends_on:
- redis
networks:
- app
networks:
app:
driver: bridge

View File

@@ -5,8 +5,9 @@ WORKDIR /code
COPY pyproject.toml .
RUN pip install --no-cache-dir --user .[web]
ENV PYTHONIOENCODING=utf-8
ENV PYTHONDONTWRITEBYTECODE 1
ENV PYTHONUNBUFFERED 1
ENV PATH=/root/.local/bin:$PATH
ENTRYPOINT ["bash", "./app/web/start.sh"]
CMD alembic upgrade head && uvicorn app.web.main:app --reload --host ${HOST:-0.0.0.0} --port ${PORT:-80} --log-level info

View File

@@ -1,14 +1,17 @@
FROM python:3.10 AS compile-image
ARG WHISPER_MODEL
WORKDIR /code
RUN apt-get update && apt-get install -y --no-install-recommends ffmpeg
COPY --from=mwader/static-ffmpeg:5.1.2 /ffmpeg /usr/local/bin/
COPY --from=mwader/static-ffmpeg:5.1.2 /ffprobe /usr/local/bin/
COPY pyproject.toml .
RUN pip install --no-cache-dir --user .[worker,worker_dev]
COPY scripts/download_model.py .
RUN chmod +x download_model.py && python download_model.py small small.en
RUN chmod +x download_model.py && python download_model.py ${WHISPER_MODEL}
ENV PYTHONIOENCODING=utf-8
ENV PYTHONDONTWRITEBYTECODE 1