Я пытаюсь запустить 2 контейнера докеров, используя docker-compose и подключаю контейнер mysql к контейнеру приложения. Контейнер Mysql запущен, но контейнер приложения не запускается с ошибкой Ошибка: 2003: невозможно подключитесь к серверу MySQL на «127.0.0.1:3306» (111 Connection отказано) Кажется, что мой контейнер приложения пытается подключить мой mysql-узел вместо контейнера mysql.Docker скомпоновать соединение mysql
докер-compose.yml
version: '2'
services:
mysql:
image: mysql:5.7
container_name: database
environment:
MYSQL_ROOT_PASSWORD: root
MYSQL_DATABASE: malicious
MYSQL_USER: root
MYSQL_PASSWORD: root
app:
build: .
restart: unless-stopped
volumes:
- .:/Docker_compose_app #app directory
depends_on:
- "mysql"
command: [ "python", "database_update.py"]
restart: unless-restart
environment:
# Environment variables to configure the app on startup.
MYSQL_DATABASE: malicious
MYSQL_HOST: database
Dockerfile
FROM python:2.7
ADD . /Docker_compose_app
WORKDIR /Docker_compose_app
RUN apt-get update
RUN pip install --requirement requirement.txt
Это мой database_update.py файл.
def create_TB(cursor,connection):
query = '''CREATE TABLE {}(malicious VARCHAR(100) NOT NULL)'''.format("url_lookup")
cursor.execute(query)
connection.commit()
def connection():
try:
cnx = mysql.connector.connect(user="root",password = 'root',database=malicious)
cursor = cnx.cursor()
create_TB(cursor,cnx)
except mysql.connector.errors.Error as err:
data = {"There is an issue in connection to DB":"Error: {}".format(err)}
Может быть, mysql нужно какое-то время? Попробуйте спать 10-30 секунд, прежде чем начать соединение с вашим приложением – dmitryvim
, но оно не решит проблему, потому что даже после появления контейнера mysql контейнер приложения по-прежнему дает ту же ошибку. Я использовал реестр: за исключением перезапуска с приложением conatiner – guri