#mysql #django #docker #docker-compose
#mysql #django #docker #docker-compose
Вопрос:
У меня есть docker-compose, как показано ниже:
version: '3'
services:
mysql:
image: mysql
ports:
- 3306:3306
env_file: ./src/.environment
volumes:
- mysql_data:/var/lib/mysql
web:
build:
context: ./src
dockerfile: Dockerfile
command: bash -c "python manage.py collectstatic --no-input amp;amp; python manage.py makemigrations --no-input amp;amp; python manage.py migrate --no-input"
env_file: ./src/.environment
ports:
- 8001:8001
depends_on:
- mysql
volumes:
- ./src:/var/www/project/src
- staticfiles:/var/www/project/src/statics
. содержимое среды следующим образом:
DATABASE_MYSQL_NAME=dataCollection
DATABASE_MYSQL_HOST=mysql
DATABASE_MYSQL_USER=user1
DATABASE_MYSQL_PASSWORD=user123456
DATABASE_MYSQL_PORT=3306
Затем в настройках django я должен следовать конфигурации базы данных:
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.mysql',
'NAME': os.getenv('DATABASE_MYSQL_NAME'),
'HOST': os.getenv('DATABASE_MYSQL_HOST'),
'USER': os.getenv('DATABASE_MYSQL_USER'),
'PASSWORD': os.getenv('DATABASE_MYSQL_PASSWORD'),
'PORT': os.getenv('DATABASE_MYSQL_PORT'),
}
}
Но при запуске docker-comose up
он выдает следующую ошибку:
MySQLdb._exceptions.OperationalError: (2002, "Can't connect to MySQL server on 'mysql' (115)")
Я не знаю, в чем проблема?
Комментарии:
1. Если вы запустите
docker-compose up -d
, подождите 30-60 секунд и снова запустите ту же команду, сработает ли она во второй раз? Есть ли другие интересные вещи в журналах создания?2. @DavidMaze Когда я запускаю
docker-compose down
, а затемdocker-compose up
выдает эту ошибку в первый раз. Но после этого я нажимаюCtrl c
, и тогдаdocker-compose up
это работает. это странно!!3. @DavidMaze не имеете ни малейшего представления?