기존 docker compose
version: '3.8'
services:
db:
image: mysql:latest
container\_name: mysql
ports:
- 3306:3306
volumes:
- mysql-data:/var/lib/mysql
environment:
MYSQL\_ROOT\_PASSWORD: {PASSWORD}
MYSQL\_DATABASE: {DATABASE}
networks:
- django-network
app:
build:
context: .
ports:
- 8000:8000
container\_name: onestep\_alpha
environment:
MYSQL\_ROOT\_PASSWORD: {PASSWORD}
MYSQL\_HOST: db
depends\_on:
- db
networks:
- django-network
networks:
django-network:
volumes:
mysql-data:
에러내용
onestep\_alpha | Watching for file changes with StatReloader
mysql-earthyoung | 2024-07-05T13:32:51.644507Z 1 \[System\] \[MY-013577\] \[InnoDB\] InnoDB initialization has ended.
onestep\_alpha | Exception in thread django-main-thread:
onestep\_alpha | Traceback (most recent call last):
onestep\_alpha | File "/usr/local/lib/python3.12/site-packages/django/db/backends/base/base.py", line 275, in ensure\_connection
onestep\_alpha | self.connect()
onestep\_alpha | File "/usr/local/lib/python3.12/site-packages/django/utils/asyncio.py", line 26, in inner
onestep\_alpha | return func(\*args, \*\*kwargs)
onestep\_alpha | ^^^^^^^^^^^^^^^^^^^^^
onestep\_alpha | File "/usr/local/lib/python3.12/site-packages/django/db/backends/base/base.py", line 256, in connect
onestep\_alpha | self.connection = self.get\_new\_connection(conn\_params)
onestep\_alpha | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
onestep\_alpha | File "/usr/local/lib/python3.12/site-packages/django/utils/asyncio.py", line 26, in inner
onestep\_alpha | return func(\*args, \*\*kwargs)
onestep\_alpha | ^^^^^^^^^^^^^^^^^^^^^
onestep\_alpha | File "/usr/local/lib/python3.12/site-packages/django/db/backends/mysql/base.py", line 256, in get\_new\_connection
onestep\_alpha | connection = Database.connect(\*\*conn\_params)
onestep\_alpha | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
onestep\_alpha | File "/usr/local/lib/python3.12/site-packages/MySQLdb/\_\_init\_\_.py", line 121, in Connect
onestep\_alpha | return Connection(\*args, \*\*kwargs)
onestep\_alpha | ^^^^^^^^^^^^^^^^^^^^^^^^^^^
onestep\_alpha | File "/usr/local/lib/python3.12/site-packages/MySQLdb/connections.py", line 195, in \_\_init\_\_
onestep\_alpha | super().\_\_init\_\_(\*args, \*\*kwargs2)
onestep\_alpha | MySQLdb.OperationalError: (2002, "Can't connect to server on 'mysql-earthyoung' (115)")
onestep\_alpha |
onestep\_alpha | The above exception was the direct cause of the following exception:
onestep\_alpha |
onestep\_alpha | Traceback (most recent call last):
onestep\_alpha | File "/usr/local/lib/python3.12/threading.py", line 1073, in \_bootstrap\_inner
onestep\_alpha | self.run()
onestep\_alpha | File "/usr/local/lib/python3.12/threading.py", line 1010, in run
onestep\_alpha | self.\_target(\*self.\_args, \*\*self.\_kwargs)
onestep\_alpha | File "/usr/local/lib/python3.12/site-packages/django/utils/autoreload.py", line 64, in wrapper
onestep\_alpha | fn(\*args, \*\*kwargs)
onestep\_alpha | File "/usr/local/lib/python3.12/site-packages/django/core/management/commands/runserver.py", line 136, in inner\_run
onestep\_alpha | self.check\_migrations()
onestep\_alpha | File "/usr/local/lib/python3.12/site-packages/django/core/management/base.py", line 581, in check\_migrations
onestep\_alpha | executor = MigrationExecutor(connections\[DEFAULT\_DB\_ALIAS\])
onestep\_alpha | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
onestep\_alpha | File "/usr/local/lib/python3.12/site-packages/django/db/migrations/executor.py", line 18, in \_\_init\_\_
onestep\_alpha | self.loader = MigrationLoader(self.connection)
onestep\_alpha | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
onestep\_alpha | File "/usr/local/lib/python3.12/site-packages/django/db/migrations/loader.py", line 58, in \_\_init\_\_
onestep\_alpha | self.build\_graph()
onestep\_alpha | File "/usr/local/lib/python3.12/site-packages/django/db/migrations/loader.py", line 235, in build\_graph
onestep\_alpha | self.applied\_migrations = recorder.applied\_migrations()
onestep\_alpha | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
onestep\_alpha | File "/usr/local/lib/python3.12/site-packages/django/db/migrations/recorder.py", line 89, in applied\_migrations
onestep\_alpha | if self.has\_table():
onestep\_alpha | ^^^^^^^^^^^^^^^^
onestep\_alpha | File "/usr/local/lib/python3.12/site-packages/django/db/migrations/recorder.py", line 63, in has\_table
onestep\_alpha | with self.connection.cursor() as cursor:
onestep\_alpha | ^^^^^^^^^^^^^^^^^^^^^^^^
onestep\_alpha | File "/usr/local/lib/python3.12/site-packages/django/utils/asyncio.py", line 26, in inner
onestep\_alpha | return func(\*args, \*\*kwargs)
onestep\_alpha | ^^^^^^^^^^^^^^^^^^^^^
onestep\_alpha | File "/usr/local/lib/python3.12/site-packages/django/db/backends/base/base.py", line 316, in cursor
onestep\_alpha | return self.\_cursor()
onestep\_alpha | ^^^^^^^^^^^^^^
onestep\_alpha | File "/usr/local/lib/python3.12/site-packages/django/db/backends/base/base.py", line 292, in \_cursor
onestep\_alpha | self.ensure\_connection()
onestep\_alpha | File "/usr/local/lib/python3.12/site-packages/django/utils/asyncio.py", line 26, in inner
onestep\_alpha | return func(\*args, \*\*kwargs)
onestep\_alpha | ^^^^^^^^^^^^^^^^^^^^^
onestep\_alpha | File "/usr/local/lib/python3.12/site-packages/django/db/backends/base/base.py", line 274, in ensure\_connection
onestep\_alpha | with self.wrap\_database\_errors:
onestep\_alpha | File "/usr/local/lib/python3.12/site-packages/django/db/utils.py", line 91, in \_\_exit\_\_
onestep\_alpha | raise dj\_exc\_value.with\_traceback(traceback) from exc\_value
onestep\_alpha | File "/usr/local/lib/python3.12/site-packages/django/db/backends/base/base.py", line 275, in ensure\_connection
onestep\_alpha | self.connect()
onestep\_alpha | File "/usr/local/lib/python3.12/site-packages/django/utils/asyncio.py", line 26, in inner
onestep\_alpha | return func(\*args, \*\*kwargs)
onestep\_alpha | ^^^^^^^^^^^^^^^^^^^^^
onestep\_alpha | File "/usr/local/lib/python3.12/site-packages/django/db/backends/base/base.py", line 256, in connect
onestep\_alpha | self.connection = self.get\_new\_connection(conn\_params)
onestep\_alpha | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
onestep\_alpha | File "/usr/local/lib/python3.12/site-packages/django/utils/asyncio.py", line 26, in inner
onestep\_alpha | return func(\*args, \*\*kwargs)
onestep\_alpha | ^^^^^^^^^^^^^^^^^^^^^
onestep\_alpha | File "/usr/local/lib/python3.12/site-packages/django/db/backends/mysql/base.py", line 256, in get\_new\_connection
onestep\_alpha | connection = Database.connect(\*\*conn\_params)
onestep\_alpha | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
onestep\_alpha | File "/usr/local/lib/python3.12/site-packages/MySQLdb/\_\_init\_\_.py", line 121, in Connect
onestep\_alpha | return Connection(\*args, \*\*kwargs)
onestep\_alpha | ^^^^^^^^^^^^^^^^^^^^^^^^^^^
onestep\_alpha | File "/usr/local/lib/python3.12/site-packages/MySQLdb/connections.py", line 195, in \_\_init\_\_
onestep\_alpha | super().\_\_init\_\_(\*args, \*\*kwargs2)
onestep\_alpha | django.db.utils.OperationalError: (2002, "Can't connect to server on 'mysql-earthyoung' (115)")
DB에 연결이 안되서 오류가 발생한다는 내용이였다.
해결 참고 블로그 링크
Dockerizing a Django and MySQL Application: A Step-by-Step Guide
Docker has revolutionized the way we build, ship, and run applications. It provides a consistent and reliable environment for your…
medium.com
수정된 docker compose 파일
version: "3.8"
services:
db:
image: mysql:latest
container\_name: mysql
restart: always
volumes:
\- data:/var/lib/mysql
environment:
MYSQL\_ROOT\_PASSWORD: ${MYSQL\_ROOT\_PASSWORD}
MYSQL\_DATABASE: ${MYSQL\_DATABASE}
MYSQL\_USER: ${MYSQL\_USER}
MYSQL\_PASSWORD: ${MYSQL\_PASSWORD}
ports:
\- "3306:3306"
\# healthcheck:
\# test:
\# \[
\# "CMD",
\# "mysql",
\# "-h",
\# "localhost",
\# "-u",
\# "root",
\# "-p{MYSQL\_ROOT\_PASSWORD}",
\# "-e",
\# "SELECT 1",
\# \]
\# timeout: 5s
\# retries: 5
backend:
build:
context: .
dockerfile: Dockerfile
command: sh -c "python3 manage.py migrate --noinput && python manage.py runserver 0.0.0.0:8000"
restart: always
volumes:
\- .:/app
ports:
\- "8000:8000"
env\_file:
\- .env
depends\_on:
\- db
\# db:
\# \# condition: service\_healthy
volumes:
data:
해결되었다! healthcheck 가 너무 오랜 시간이 걸려서 그냥 주석처리 하고 해결했다!
'소프트웨어 마에스트로 > 개발' 카테고리의 다른 글
[개발관련] Lexorank 적용기 종장 (2) | 2024.07.28 |
---|---|
[개발관련] lexorank 적용기 3 (2) | 2024.07.24 |
[개발] lexorank 적용기 1.5 (1) | 2024.07.22 |
[개발 관련] lexorank 적용기.. (0) | 2024.07.18 |
[깃허브] organization 403 에러 + 동기화 및 암호화 관련 멘토링 (0) | 2024.07.11 |