【发布时间】:2018-12-31 05:51:05
【问题描述】:
我有一个使用 Python 2.7.10 和 Django 1.10.3 的 Django 应用程序。我的 Dockerfile 包含以下内容:
FROM python:2.7.10
ENV PYTHONUNBUFFERED 1
RUN mkdir /code
WORKDIR /code
ADD requirements.txt /code/
RUN pip install -r requirements.txt
ADD . /code/
我的 requirements.txt 包含以下内容:
Django>=1.10,<2.0
Mysql-python
我的 docker-compose.yml 包含以下内容:
version: '2'
services:
localhost:
image: mysql
restart: always
environment:
MYSQL_DATABASE: 'test'
MYSQL_USER: 'test'
MYSQL_PASSWORD: 'password'
web:
build: .
command: python manage.py runserver 0.0.0.0:8000
volumes:
- .:/code
ports:
- "8000:8000"
depends_on:
- localhost
settings.py 包含数据库的以下内容:
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.mysql',
'NAME': 'test',
'USER': 'test',
'PASSWORD': 'password',
'HOST': 'localhost',
'PORT': '3306',
}
我首先执行“% docker-compose build”,然后执行“% docker-compose up”并得到以下错误:
web_1 | django.db.utils.OperationalError:(2002,“无法连接 通过套接字'/var/run/mysqld/mysqld.sock'到本地MySQL服务器
我已经查看并尝试了 Stackoverflow 上可用的解决方案,但没有成功。任何帮助将不胜感激。
【问题讨论】:
-
你的 settings.py 中有什么?
-
你需要链接mysql容器和django容器:stackoverflow.com/questions/31035887/…
-
MySQL 并没有在容器中运行。 MySQL 是否也必须 dockerized 才能与 dockerized Django 应用程序一起使用?
-
我已经从 settings.py 添加了用于数据库设置的 sn-p。
标签: python mysql django docker docker-compose