[英]Getting error : Unknown MySQL server host 'db' (-2) in django python for docker
我是 docker 的新手,我正在研究 django python。 当我尝试运行此命令时:
docker-compose run app sh -c "python app/manage.py migrate"
我收到错误Unknown MySQL server host 'db' (-2)
,任何人都可以帮我解决这个问题吗? 在这里,我添加了整个 dockerfile 和 db 连接:
文件
FROM python:3.7
ENV PYTHONUNBUFFERED 1
RUN apt-get update && apt-get install -y --no-install-recommends \
python-dev \
default-libmysqlclient-dev \
&& \
apt-get clean && \
rm -rf /var/lib/apt/lists/*
COPY requirements.txt /requirements.txt
RUN pip install -r /requirements.txt
RUN mkdir /app
COPY ./ /app
docker-compose.yml
version: "3"
services:
app:
build:
context: .
ports:
- "8000:8000"
volumes:
- ./:/app
command: >
sh -c "python app/manage.py runserver 0.0.0.0:8000"
# Services
db:
image: mysql:5.7
#restart: no
environment:
# Password for root access
MYSQL_ROOT_PASSWORD: '12345678'
MYSQL_DATABASE: 'trail_risk_inc_backend'
ports:
# <Port exposed> : < MySQL Port running inside container>
- '3306'
expose:
# Opens port 3306 on the container
- '3306'
# Where our data will be persisted
volumes:
- ./db-init:/docker-entrypoint-initdb.d
设置.py
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.mysql',
'NAME': 'trail_risk_inc_backend',
'USER': 'root',
'PASSWORD': '12345678',
'HOST': 'db', # Or an IP Address that your DB is hosted on
'PORT': '3306',
}
}
问题出在您的命令上:
docker-compose run app sh -c "python app/manage.py migrate"
这将只启动应用程序容器而不是数据库。
尝试以以下方式开始您的堆栈:
docker-compose up -d
然后运行你的命令:
docker exec -ti MY_APP_CON sh -c "python app/manage.py migrate"
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.