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