Получение ошибок в соединении с базой данных часто в WordPress с помощью docker-compose - PullRequest
0 голосов
/ 17 ноября 2018

Я часто получаю сообщение об ошибке подключения к базе данных. Он отлично работает в течение дня или двух, но каждый раз, когда появляется эта ошибка, необходимо перезапускать docker-compose вручную.

может видеть что-либо существенное при запуске журналов docker-compose Что я делаю неправильно ? Здесь ..

DockerFile

FROM wordpress

COPY wp-config.php /var/www/html/

RUN echo "ServerName localhost" >> /etc/apache2/apache2.conf

EXPOSE 80

докер-Compose версия: '3.1'

services:

  wordpress_db:
    container_name: abcwordpressdb
    image: mariadb:latest
    restart: always
    volumes:
      - abcdb:/var/lib/mysql
    environment:
      MYSQL_USERNAME: root
      MYSQL_ROOT_PASSWORD: password
    ports:
      - "3306:3306"

  phpmyadmin:
    container_name: abcphpmyadmin
    image: phpmyadmin/phpmyadmin
    links:
        - wordpress_db:db
    ports:
        - "8181:80"
    environment:
      MYSQL_USERNAME: root
      MYSQL_ROOT_PASSWORD: password
      PMA_HOST: wordpress_db

  wordpress:
    build: ./wordpress
    container_name: abc_wordpress
    ports:
      - "80:80"
    volumes:
      - ./wp-content:/var/www/html/wp-content/
    restart: unless-stopped

volumes:
  abcdb:

Ответы [ 2 ]

0 голосов
/ 20 ноября 2018

Нашел решение здесь https://github.com/docker-library/mysql/issues/361

Просто запустите резервное копирование перед запуском

# Backup
docker exec CONTAINER /usr/bin/mysqldump -u root --password=root DATABASE > backup.sql

# Restore
cat backup.sql | docker exec -i CONTAINER /usr/bin/mysql -u root --password=root DATABASE

Затем

  1. docker-compose down
  2. Удаленные старые тома (если нет значимых данных) docker system prune --force --volumes
  3. Добавлен command: --disable-partition-engine-check в раздел mysql в docker-compose.yml
  4. Запустил его с docker-compose up -d для установкиэто в фоновом режиме.
0 голосов
/ 17 ноября 2018

Контейнеры базы данных время от времени требуют больше времени. Поэтому, когда ваш контейнер приложений «зависит» от соединения с базой данных. Приятно использовать опцию

depends_on:
  - wordpress_db

Это обеспечит запуск контейнера базы данных перед приложением

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...