簡體   English   中英

如何在 Docker 上使用 mysql 設置 Django?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM