Не могу подключиться к dockerized mysql - PullRequest
0 голосов
/ 10 июля 2020

Я докерирую приложение adonis js + mysql. Я создал docker -compose и Dockerfile, и все работало нормально, но я хотел переместить все эти файлы в отдельный каталог. Сейчас создаются контейнеры docker, и все запускается, но я просто не могу подключиться к своему MySQL docker.

Когда я пытаюсь подключиться, он всегда говорит: «Доступ запрещен для пользователя'homestead'@'172.30 .0.1 '(используя пароль: ДА) ». Интересно то, что он всегда указывает, что 172.30.0.1 это было не так раньше, и всегда пытается подключиться к этому хосту, даже когда я специально говорю, чтобы подключиться к localhost.

Это мой docker-compose.yml

version: '3'

services:
  mysql:
    container_name: "${APP_NAME}-mysql"
    build: ./mysql
    ports:
      - "${DB_PORT}:3306"
    volumes:
      - mysqldata:/var/lib/mysql
    environment:
      - MYSQL_ROOT_PASSWORD=${DB_PASSWORD}
      - MYSQL_DATABASE=${DB_DATABASE}
      - MYSQL_USER=${DB_USER}
      - MYSQL_PASSWORD=${DB_PASSWORD}
    networks:
      - api-network
  api:
    container_name: "${APP_NAME}-api"
    build:
      context: ../.
      dockerfile: ./deploy/api/Dockerfile
    volumes:
      - ../.:/app
    environment:
      - HOST=0.0.0.0  # listen on all interfaces
      - SERVER_ENV=development
    ports:
      - "${PORT}:80"     # matches actual listener message
    depends_on:
      - mysql
    networks:
      - api-network

networks:
  api-network:

volumes:
  mysqldata:
    driver: "local"

Это Dockerfile для Mysql

FROM mysql:5.7

COPY custom.cnf /etc/mysql/conf.d/custom.cnf

CMD ["mysqld"]

EXPOSE 3306

Это мой custom.cnf

[mysqld]

open-files-limit        = 24000
key_buffer_size         = 16M
max_allowed_packet      = 1000M
thread_stack            = 192K
thread_cache_size       = 8

#
# * Query Cache Configuration
#
query_cache_limit       = 1M
query_cache_size        = 16M

#
# * InnoDB
#
# InnoDB is enabled by default with a 10MB datafile in /var/lib/mysql/.
# Read the manual for more InnoDB related options. There are many!

innodb_fast_shutdown                = 1
innodb_data_file_path               = ibdata1:10M:autoextend
innodb_file_per_table               = 1
innodb_buffer_pool_size             = 1G # The most important variable here
innodb_log_file_size                = 128M
innodb_log_buffer_size              = 32M
innodb_flush_log_at_trx_commit      = 2
innodb_lock_wait_timeout            = 50
innodb_flush_method                 = O_DIRECT
innodb_thread_concurrency           = 4
innodb_use_native_aio               = 0

Это API Dockerfile :

FROM node:12.18.2-alpine3.9

MAINTAINER Dan Rusnac <dan@genuino.world>

ENV HOME=/app
RUN mkdir /app

COPY . $HOME
COPY package.json $HOME

WORKDIR $HOME
RUN npm i -g @adonisjs/cli && npm install

EXPOSE 80

CMD ["npm", "start"]

Это результат docker ps:

dan@dan-Nitro-AN515-54:~/Documents/Tests/testProject$ docker ps
CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS              PORTS                               NAMES
4457681caf98        deploy_api          "docker-entrypoint.s…"   15 hours ago        Up 2 seconds        0.0.0.0:80->80/tcp                  testProject-api
6348bef9fc22        deploy_mysql        "docker-entrypoint.s…"   15 hours ago        Up 2 seconds        0.0.0.0:3306->3306/tcp, 33060/tcp   testProject-mysql

My .env

HOST=127.0.0.1
PORT=80
NODE_ENV=development
APP_URL=http://${HOST}:${PORT}
APP_NAME=testProject

CACHE_VIEWS=false
APP_KEY=

SESSION_DRIVER=cookie
HASH_DRIVER=bcrypt

DB_CONNECTION=mysql
DB_HOST=172.17.0.1
DB_PORT=3306
DB_USER=homestead
DB_PASSWORD=Secret1234
DB_DATABASE=homestead
DB_ROOT_PASSWORD=password
...