Joe*_*ruz 7 python django mariadb docker docker-compose
这已经被问到,但没有一个答案对我有帮助。这是我的配置。我使用两个服务运行 docker-compose,一个是 django 中的 Web 应用程序,另一个是 mariadb 中的数据库。我可以使用此确切配置正常连接到本地数据库,只需将 settings.py 中的主机更改为 localhost。当我运行时docker-compose up,Web 服务在尝试连接到数据库后立即停止,并返回此错误。
django.db.utils.OperationalError: (2002, "Can't connect to MySQL server on 'db' (115)")
文件
FROM python:3.7
RUN mkdir /app
COPY requierments.txt /app/
WORKDIR /app
RUN pip install -r requierments.txt
COPY . /app/
Run Code Online (Sandbox Code Playgroud)
docker-compose.yml
version: '3'
services:
db:
image: mariadb:10.2
expose:
- 3306
ports:
- "3306:3306"
environment:
MYSQL_DATABASE: 'django_backend'
MYSQL_USER: 'django'
MYSQL_PORT: '3306'
MYSQL_PASSWORD: 'mysql1234pass'
MYSQL_ROOT_PASSWORD: 'password'
web:
build: .
image: backendblockchain_web
volumes:
- .:/app
ports:
- "8000:8000"
depends_on:
- db
links:
- db
command:
- /bin/bash
- -c
- |
sleep 10
python3 manage.py migrate
python3 manage.py runserver 0.0.0.0:8000
Run Code Online (Sandbox Code Playgroud)
设置.py
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.mysql',
'NAME': 'django_backend',
'USER': 'django',
'PASSWORD': 'mysql1234pass',
'HOST': 'db',
'PORT': '3306'
}
}
Run Code Online (Sandbox Code Playgroud)
小智 3
确保您的 db docker 映像运行正常。检查正在运行的数据库容器的日志。我能够在我的 docker-compose 文件中成功使用 MariaDB:
db:
image: mariadb
ports:
- 3306:3306
environment:
MYSQL_USER: "****"
MYSQL_PASSWORD: "****"
MYSQL_DATABASE: "*****"
MYSQL_RANDOM_ROOT_PASSWORD: "yes"
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
5891 次 |
| 最近记录: |