Код: Выделить всё
FROM python:3.11
RUN mkdir /booking
WORKDIR /booking
COPY requirements.txt .
RUN pip install -r requirements.txt
COPY . .
CMD [ "gunicorn", "app.main:app", "--workers", "4", "--worker-class", "uvicorn.workers.UvicornWorker", "--bind=0.0.0.0:8000" ]
Код: Выделить всё
services:
db:
image: postgres:16
container_name: booking_db
env_file:
- .env-non-dev
ports:
- 5432:5432
redis:
image: redis:7
container_name: redis
booking:
image: booking_image
build:
context: .
container_name: booking_app
env_file:
- .env-non-dev
depends_on:
- db
- redis
command: sh -c "alembic upgrade head && gunicorn app.main:app --workers 4 --worker-class uvicorn.workers.UvicornWorker --bind=0.0.0.0:8000"
ports:
- 8000:8000
celery:
build:
context: .
container_name: booking_celery
command: sh -c "celery --app=app.tasks.celery_app:celery worker -l INFO"
env_file:
- .env-non-dev
depends_on:
- redis
flower:
build:
context: .
container_name: booking_flower
command: sh -c "celery --app=app.tasks.celery_app:celery flower"
env_file:
- .env-non-dev
depends_on:
- redis
Код: Выделить всё
booking_db | 2024-10-10 21:30:22.665 UTC [1] LOG: database system is ready to accept connections
Код: Выделить всё
booking_app | File "/usr/local/lib/python3.11/site-packages/asyncpg/connection.py", line 2329, in connect
booking_app | return await connect_utils._connect(
booking_app | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
booking_app | File "/usr/local/lib/python3.11/site-packages/asyncpg/connect_utils.py", line 1017, in _connect
booking_app | raise last_error or exceptions.TargetServerAttributeNotMatched(
booking_app | File "/usr/local/lib/python3.11/site-packages/asyncpg/connect_utils.py", line 991, in _connect
booking_app | conn = await _connect_addr(
booking_app | ^^^^^^^^^^^^^^^^^^^^
booking_app | File "/usr/local/lib/python3.11/site-packages/asyncpg/connect_utils.py", line 828, in _connect_addr
booking_app | return await __connect_addr(params, True, *args)
booking_app | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
booking_app | File "/usr/local/lib/python3.11/site-packages/asyncpg/connect_utils.py", line 873, in __connect_addr
booking_app | tr, pr = await connector
booking_app | ^^^^^^^^^^^^^^^
booking_app | File "/usr/local/lib/python3.11/site-packages/asyncpg/connect_utils.py", line 744, in _create_ssl_connection
booking_app | tr, pr = await loop.create_connection(
booking_app | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
booking_app | File "/usr/local/lib/python3.11/asyncio/base_events.py", line 1094, in create_connection
booking_app | raise OSError('Multiple exceptions: {}'.format(
booking_app | OSError: Multiple exceptions: [Errno 111] Connect call failed ('::1', 5432, 0, 0), [Errno 111] Connect call failed ('127.0.0.1', 5432)
Код: Выделить всё
command: sh -c "gunicorn app.main:app --workers 4 --worker-class uvicorn.workers.UvicornWorker --bind=0.0.0.0:8000"
P.S. я добавил POSTGRES_DB, POSTGRES_USER, POSTGRES_PASSWORD в файл .env-non-dev
Я пытался запустить свое приложение без головки обновления перегонного куба code> и это сработало.
Пытался сделать это с помощью bash-скриптов, но мое приложение их тоже не увидело
Подробнее здесь: https://stackoverflow.com/questions/790 ... with-docke