Один из моих проектов имеет Python, PostgreSQL, Node зависимости. У меня есть следующий docker-compose.yaml
файл и в соответствии с каталогом сборки есть один Dockerfile
. Все отлично и работает на Linux машине. Но когда я работаю над своей мамой c, служба server
не работает. Но я могу запустить с Docker Desktop для ma c, а также с консоли, набрав docker-compose up --build server
. Но когда я пытаюсь собрать все с docker-compose up --build
. Это не работает на ма c.
Я нашел следующую ошибку на консоли:
return func(*args, **kwargs)
File "/usr/local/lib/python3.8/site-packages/django/db/backends/base/base.py", line 260, in cursor
return self._cursor()
File "/usr/local/lib/python3.8/site-packages/django/db/backends/base/base.py", line 236, in _cursor
self.ensure_connection()
File "/usr/local/lib/python3.8/site-packages/django/utils/asyncio.py", line 26, in inner
File "/usr/local/lib/python3.8/site-packages/django/db/backends/base/base.py", line 220, in ensure_connection
self.connect()
File "/usr/local/lib/python3.8/site-packages/django/db/utils.py", line 90, in __exit__
raise dj_exc_value.with_traceback(traceback) from exc_value
File "/usr/local/lib/python3.8/site-packages/django/db/backends/base/base.py", line 197, in connect
self.connection = self.get_new_connection(conn_params)
File "/usr/local/lib/python3.8/site-packages/django/db/backends/postgresql/base.py", line 185, in get_new_connection
connection = Database.connect(**conn_params)
File "/usr/local/lib/python3.8/site-packages/psycopg2/__init__.py", line 126, in connect
conn = _connect(dsn, connection_factory=connection_factory, **kwasync)
django.db.utils.OperationalError: could not connect to server: Connection refused
Is the server running on host "db" (172.19.0.2) and accepting
TCP/IP connections on port 5432?
Traceback (most recent call last):
psycopg2.OperationalError: could not connect to server: Connection refused
Is the server running on host "db" (172.19.0.3) and accepting
The above exception was the direct cause of the following exception:
File "/app/server/manage.py", line 15, in <module>
execute_from_command_line(sys.argv)
File "/usr/local/lib/python3.8/site-packages/django/core/management/__init__.py", line 401, in execute_from_command_line
utility.execute()
File "/usr/local/lib/python3.8/site-packages/django/core/management/__init__.py", line 395, in execute
self.fetch_command(subcommand).run_from_argv(self.argv)
File "/usr/local/lib/python3.8/site-packages/django/core/management/base.py", line 328, in run_from_argv
self.execute(*args, **cmd_options)
File "/usr/local/lib/python3.8/site-packages/django/core/management/base.py", line 369, in execute
output = self.handle(*args, **options)
File "/usr/local/lib/python3.8/site-packages/django/core/management/base.py", line 83, in wrapped
res = handle_func(*args, **kwargs)
File "/usr/local/lib/python3.8/site-packages/django/core/management/commands/migrate.py", line 86, in handle
executor = MigrationExecutor(connection, self.migration_progress_callback)
File "/usr/local/lib/python3.8/site-packages/django/db/migrations/executor.py", line 18, in __init__
self.loader = MigrationLoader(self.connection)
File "/usr/local/lib/python3.8/site-packages/django/db/migrations/loader.py", line 49, in __init__
self.build_graph()
File "/usr/local/lib/python3.8/site-packages/django/db/migrations/loader.py", line 212, in build_graph
self.applied_migrations = recorder.applied_migrations()
File "/usr/local/lib/python3.8/site-packages/django/db/migrations/recorder.py", line 76, in applied_migrations
if self.has_table():
File "/usr/local/lib/python3.8/site-packages/django/db/migrations/recorder.py", line 56, in has_table
return self.Migration._meta.db_table in self.connection.introspection.table_names(self.connection.cursor())
docker-compose.yaml
version: '3.7'
services:
db:
image: postgres:11.1-alpine
container_name: baraticn_db
ports:
- '5434:5432'
volumes:
- ./postgres_data:/var/lib/postgresql/data/
server:
build: ./server
container_name: baraticn_python
command: sh -c "python /app/server/manage.py migrate && python /app/server/manage.py runserver 0.0.0.0:8081"
working_dir: /app/server
environment:
- PYTHONDONTWRITEBYTECODE=1
- PYTHONUNBUFFERED=1
volumes:
- ./server:/app/server:cached
ports:
- '8081:8081'
depends_on:
- db
client:
build: ./client
container_name: baraticn_vuejs
command: sh -c "yarn install && yarn serve"
working_dir: /app/client
volumes:
- ./client:/app/client:cached
ports:
- '8080:8080'
server/Dockerfile
FROM python:3.8.1-alpine
RUN apk update && \
apk add --virtual build-deps gcc python-dev musl-dev && \
apk add postgresql-dev && \
apk add netcat-openbsd
WORKDIR /app/server
COPY requirements.txt /app/server
RUN pip3 install -r requirements.txt