Mura CMS / Docker Compose Подключиться к базе данных

Я запускаю экземпляр Mura CMS с docker compose (используя config/docker/local-mysql/docker-compose.yml) и получаю следующую ошибку:

500 Error

Error Executing Database Query.

Datasource:nodatabase

SQL:SELECT IF('muradb' IN(SELECT SCHEMA_NAME FROM INFORMATION_SCHEMA.SCHEMATA), 1, 0) AS found 

Code:n/a

Type:Database

Timed out trying to establish connection

Вот копия моего Docker-compose.yml, который является стандартным yml-файлом, который Blue River распространяет вместе с Mura. Это не было изменено кроме изменения от порта 8080 до порта 80.

version: '2.1'

services:
  #Mura Server
  mura_mysql_cfml:
    image: ortussolutions/commandbox:latest
    environment:
      PORT: 80
      SSL_PORT: 8443
      CFENGINE: adobe@2016
      CFCONFIG_ADMINPASSWORD: NOT_SECURE_CHANGE
      MURA_ADMIN_USERNAME: admin
      MURA_ADMIN_PASSWORD: admin
      MURA_ADMINEMAIL: example@localhost.com
      MURA_APPRELOADKEY: appreload
      MURA_DATASOURCE: muradb
      MURA_DATABASE: muradb
      MURA_DBTYPE: mysql
      MURA_DBUSERNAME: root
      MURA_DBPASSWORD: NOT_SECURE_CHANGE
      MURA_DBHOST: mura_mysql
      MURA_DBPORT: 3306
      MURA_SITEIDINURLS: "false"
      MURA_INDEXFILEINURLS: "false"
      MURA_TESTBOX: "true"
    volumes:
        - ../../../:/app
    ports:
        - "80:80"

  #MySQL
  mura_mysql:
    image: mysql:latest
    environment:
        MYSQL_ROOT_PASSWORD: NOT_SECURE_CHANGE
        MYSQL_DATABASE: muradb
    volumes:
        - mura_mysql_data:/var/lib/mysql
    ports:
        - "55555:3306"

volumes:
    mura_mysql_data:

Есть идеи, что может пойти не так?

2 ответа

Решение

Ваша проблема, где вы изменили ports в вашем docker-compose.yml файл.

Левая сторона является host... или ваш local машина. Справа находится сетевой порт контейнера, который вы не должны менять. Итак, под mura_mysql_cfml сервис попробуйте:

ports:
    - "80:8080"

Кроме того, под environment: установка, я бы пропустил PORT: 80 переменная окружения в целом. Причина в том, что этот порт не отображается в базовом образе Docker.


РЕДАКТИРОВАТЬ:

Кроме того, я только что заметил, что вы не используете изображение по умолчанию. Это критично! Изображение, которое вы пытаетесь использовать, даже не имеет Mura CMS. Это означает, что вы должны будете поставить его или смонтировать как том в /app каталог.

По совпадению, я работаю над тем, чтобы собрать несколько примеров изображений, и docker-compose.yml файлы для пользователей, таких как вы. Это все еще работает, но я думаю, что вы все равно должны взглянуть на хранилище: https://github.com/blueriver/docker-muracms

Надеюсь это поможет!

По какой-то причине веб-сервер в вашем стеке Docker не может достичь сервера MySQL.

Как вы выполняете docker-compose? Получаете ли вы какой-либо другой результат, если вы пробуете другие файлы docker-compose в Mura?

Кроме того, вы пытались установить Kitematic? Он предоставляет много визуальных данных о ваших док-контейнерах и изображениях.

Другие вопросы по тегам