[英]How to setup Django with mysql on Docker?
我是 DevOps 的新手,我正在尝试 Dockerize 我的 Django-Mysql 连接。我的 Docker 文件如下所示:-
FROM python:3.6
ENV PYTHONUNBUFFERED 1
RUN mkdir /docker_dir
WORKDIR /docker_dir
ADD . /docker_dir/
RUN pip install -r requirements.txt
我的 docker-compose.yml 文件如下所示:-
version: '3'
services:
db:
image: mysql
restart: always
command: --default-authentication-plugin=mysql_native_password --mysqlx=0
environment:
- MYSQL_HOST=127.0.0.1
- MYSQL_PORT=3306 # cannot change this port to other number
- MYSQL_DATABASE=cgi_assignments # name you want for the database
- MYSQL_USER="root" # change to whatever username you want
- MYSQL_PASSWORD="root" #change to the password you want for user
- MYSQL_ROOT_PASSWORD="root" #change to good root password
ports:
- "3307:3306"
volumes:
- .setup.sql:/docker-entrypoint-initbd.d/setup.sql
web:
build: .
# command: python manage.py runserver 0.0.0.0:8000
command: python manage.py runserver 0.0.0.0:8000
container_name: docker_dir
volumes:
- .:/docker_dir
ports:
- "8000:8000"
depends_on:
- db
links:
- db
我在 Django 设置文件上的数据库如下所示:-
DATABASES = {
'default': {
'NAME': 'cgi_assignments',
'ENGINE': 'django.db.backends.mysql',
'USER': 'root',
'PASSWORD': 'root',
'HOST': 'db',
'PORT': 3306,
},
}
如果我使用端口:-“3307:3306” ,它会给我以下错误:-
django.db.utils.OperationalError: (1130, "Host '172.18.0.3' is not allowed to connect to this MySQL server")
我使用端口:-“3306:3306”它给了我以下错误:-
listen tcp 0.0.0.0:3306: bind: address already in use
删除卷配置对我有用。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.