【发布时间】:2018-11-03 07:18:25
【问题描述】:
我已经将我现有的使用 MySQL 数据库的 Django Rest 项目 dockerized。
Dockefile
FROM python:3.6
ENV PYTHONUNBUFFERED 1
RUN mkdir /code
WORKDIR /code
COPY . /code/
RUN pip install -r requirements.txt
requirements.txt
django
djongo
django-rest-framework
轮子
枕头
mysql客户端
django-cors-headers
docker-compose.yml
version: '3'
volumes:
portainer:
services:
db:
image: mysql
environment:
MYSQL_ROOT_PASSWORD: docker
MYSQL_DATABASE: docker
MYSQL_USER: docker
MYSQL_PASSWORD: docker
ports:
- "3306:3306"
web:
build: .
command: bash -c "python manage.py makemigrations && python manage.py migrate && python manage.py runserver 0.0.0.0:8000 "
volumes:
- .:/code
ports:
- "8000:8000"
links:
- db
portainer:
image: portainer/portainer
ports:
- "9000:9000"
volumes:
- /var/run/docker.sock:/var/run/docker.sock
- portainer:/data
setting.py
'ENGINE': 'django.db.backends.mysql', #django.db.backends.mysql
'NAME': 'docker', #local: libraries #server:
'USER': 'docker', #root #root
'PASSWORD': 'docker', #local: root #server:
'HOST': 'db', #local: localhost #server:
'PORT': '3306',
我的命令 'docker-compose up -d --build' 成功,但 restapp 容器未启动,因此在检查日志时显示此错误 django.db.utils.OperationalError: (2003, 'Can\'t connect to MySQL server on \'db\' (111 "Connection refused")')。
【问题讨论】:
-
同样的代码对我有用。但我遇到了另一个问题,即
django.db.utils.OperationalError: (2059, "Authentication plugin 'caching_sha2_password' cannot be loaded,这与这个问题无关
标签: python mysql django docker django-rest-framework