diff --git a/.dockerignore b/.dockerignore new file mode 100644 index 0000000..7970847 --- /dev/null +++ b/.dockerignore @@ -0,0 +1,6 @@ +.venv +venv +.idea +.gitignore +.git +__pycache__ diff --git a/docker/Dockerfile_back b/docker/Dockerfile_back new file mode 100644 index 0000000..0b45151 --- /dev/null +++ b/docker/Dockerfile_back @@ -0,0 +1,30 @@ +FROM quay.io/urec56/python312 + +RUN addgroup --system app && adduser --system --group app + +ENV APP_HOME=/home/app + +WORKDIR $APP_HOME + +RUN apt-get update \ + && apt-get -y install curl gcc libpq-dev \ + && apt-get clean + + +RUN pip install --upgrade pip setuptools + +COPY requirements.txt . + +RUN pip config set global.trusted-host "pypi.python.org pypi.org files.pythonhosted.org" && \ + pip install \ + --proxy= \ + -r requirements.txt + +COPY . . + +RUN chown -R app:app $APP_HOME + +USER app + +CMD ["gunicorn", "app.main:app", "--workers", "1", "--worker-class", "uvicorn.workers.UvicornWorker", "--bind=0.0.0.0:8000"] + diff --git a/docker/Dockerfile_celery b/docker/Dockerfile_celery new file mode 100644 index 0000000..c802138 --- /dev/null +++ b/docker/Dockerfile_celery @@ -0,0 +1,30 @@ +FROM quay.io/urec56/python312 + +RUN addgroup --system app && adduser --system --group app + +ENV APP_HOME=/home/app + +WORKDIR $APP_HOME + +RUN apt-get update \ + && apt-get -y install curl gcc libpq-dev \ + && apt-get clean + + +RUN pip install --upgrade pip setuptools + +COPY requirements.txt . + +RUN pip config set global.trusted-host "pypi.python.org pypi.org files.pythonhosted.org" && \ + pip install \ + --proxy= \ + -r requirements.txt + +COPY . . + +RUN chown -R app:app $APP_HOME + +USER app + +CMD ["celery", "-A", "app.tasks.celery:celery", "worker", "--loglevel=INFO"] + diff --git a/docker/docker-compose.yml b/docker/docker-compose.yml new file mode 100644 index 0000000..3b48d75 --- /dev/null +++ b/docker/docker-compose.yml @@ -0,0 +1,25 @@ +version: '3.8' +services: + chat_back: + image: chat_back + container_name: chat_back + ports: + - "9000:8000" + build: + context: .. + dockerfile: docker/Dockerfile_back + env_file: + - ../.env + restart: always + depends_on: + - celery + + celery: + image: celery + container_name: celery + build: + context: .. + dockerfile: docker/Dockerfile_celery + env_file: + - ../.env + restart: always