簡體   English   中英

構建 docker-compose 鏡像時無法連接到 MySQL

[英]Can't connect to MySQL while building docker-compose image

我有一個 docker-compose 配置,在構建數據庫步驟中,django 管理拋出一個錯誤:

django.db.utils.OperationalError: (2002, “無法連接到'127.0.0.1' (115) 上的 MySQL 服務器”)

我認為 - 碼頭工人拒絕連接。

類似的套接字配置不起作用(說error connection by socket

Docker 撰寫文件

version: '3'
services:
  db:
    image: mariadb:5.5
    restart: always
    environment:
      MYSQL_ROOT_PASSWORD: "root"
      MYSQL_DATABASE: "bh"
      MYSQL_USER: "root"
      MYSQL_PASSWORD: "root"
    ports:
      - "3302:3306"


  behealthy_dev:
    build: .
    container_name: behealthy_dev
    expose:
      - "86"
    command: python manage.py runserver 0.0.0.0:80
    volumes:
      - /behealthy_dev/
    ports:
      - "86:86"
    depends_on:
      - db

文件

FROM python:3.6
ENV PYTHONUNBUFFERED 1
RUN mkdir /behealthy_dev
WORKDIR /behealthy_dev
ADD requirements.txt /behealthy_dev/
RUN pip install -r requirements.txt
ADD . /behealthy_dev/
RUN python manage.py makemigrations
RUN python manage.py migrate
RUN python manage.py collectstatic --noinput

數據庫設置(設置)

DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.mysql',
        'NAME': 'bh',
        'HOST': '127.0.0.1',
        'PORT': '3306',
        'USER': 'root',
        'PASSWORD': 'root',
        'OPTIONS': {
            'sql_mode': 'traditional',
            'init_command': 'SET innodb_strict_mode=1',
            'charset': 'utf8mb4',
        },

    },
}

有什么解決辦法嗎? 我試圖從其他堆棧答案中解決,但它對我不起作用。

在您的服務behealthy_dev將MySQL主機從

'HOST': '127.0.0.1'

'HOST': 'db',

編輯:還將MYSQL_ROOT_PASSWORD: "root"更改為:

`MYSQL_ROOT_PASSWORD: "rootpassword"`

和您的數據庫設置為:

'PASSWORD': 'rootpassword',

但是我的mysql服務器配置良好,可以用於root用戶。 docker conf問題

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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