我是Docker的新手,我正在尝试使用MySQL为Django App构建一个图像。我遇到的问题是,在运行我的图像后,我收到以下错误: django.db.utils.OperationalError:(2002,“无法通过套接字连接到本地MySQL服务器”/ var / run / mysqld /mysqld.sock'(111)“)。作为我使用xpath
的图像的基础,我使用以下命令安装了服务器:
FROM django:python2
RUN echo "mysql-server mysql-server/root_password password X" | debconf-set-selections
RUN echo "mysql-server mysql-server/root_password_again password X" | debconf-set-selections
为了解决这个问题,我尝试了多种解决方案,我在互联网上找到了这些解决方案:
RUN apt-get update && apt-get install -y mysql-server
RUN touch /var/run/mysqld/mysqld.sock
RUN chmod -R 755 /var/run/mysqld/mysqld.sock
答案 0 :(得分:2)
这是一个非常有效的示例配置。
Dockerfile
FROM python:3.5
ENV PYTHONUNBUFFERED 1
RUN mkdir /code
WORKDIR /code
ADD . /code/
RUN pip install -r requirements.txt
确保更改requirements.txt
文件的路径(如果存在。)
搬运工-compose.yml
db:
image: mysql
web:
build: .
environment:
- PYTHONPATH=/code/server/
- DJANGO_SETTINGS_MODULE=path.to.your.settings.file
command: python server/manage.py runserver 0.0.0.0:8000
volumes:
- .:/code
ports:
- "8000:8000"
links:
- db
确保使用设置文件的正确虚线路径替换DJANGO_SETTINGS_MODULE
的路径。
docker-compose build
然后
docker-compose up
修改强>
如果您使用此配置,请在settings.py
中将HOST
的值更改为db