2015-01-20 3 views
1

При установке MariaDB через Dockerfile и Vagrant я получаю эту ошибку:Не удается установить MariaDB через Докер и Vagrant

New password for the MariaDB "root" user: 
Use of uninitialized value $_[1] in join or string at /usr/share/perl5/Debconf/DbDriver/Stack.pm line 111. 
invoke-rc.d: policy-rc.d denied execution of stop. 
Use of uninitialized value $val in substitution (s///) at /usr/share/perl5/Debconf/Format/822.pm line 83, <GEN6> line 1. 
Use of uninitialized value $val in concatenation (.) or string at /usr/share/perl5/Debconf/Format/822.pm line 84, <GEN6> line 1. 
dpkg: error processing mariadb-server-10.0 (--configure): 
subprocess installed post-installation script returned error exit status 1 
Setting up libhtml-template-perl (2.91-1) ... 
dpkg: dependency problems prevent configuration of mariadb-server: 
mariadb-server depends on mariadb-server-10.0 (= 10.0.15+maria-1~wheezy); however: 
    Package mariadb-server-10.0 is not configured yet. 

dpkg: error processing mariadb-server (--configure): 
dependency problems - leaving unconfigured 
Errors were encountered while processing: 
mariadb-server-10.0 
mariadb-server 
E: Sub-process /usr/bin/dpkg returned an error code (1) 

Это происходит с каждым MariaDB, что я попытался (10.0.15, 10.1.2) ,

Мои DockerFile:

# vim:set ft=dockerfile: 
FROM debian:wheezy 

# add our user and group first to make sure their IDs get assigned consistently, regardless of whatever dependencies get added 
RUN groupadd -r mysql && useradd -r -g mysql mysql 

# grab gosu for easy step-down from root 
RUN gpg --keyserver pool.sks-keyservers.net --recv-keys B42F6819007F00F88E364FD4036A9C25BF357DD4 
RUN apt-get update && apt-get install -y curl && rm -rf /var/lib/apt/lists/* \ 
    && curl -o /usr/local/bin/gosu -SL "https://github.com/tianon/gosu/releases/download/1.2/gosu-$(dpkg --print-architecture)" \ 
    && curl -o /usr/local/bin/gosu.asc -SL "https://github.com/tianon/gosu/releases/download/1.2/gosu-$(dpkg --print-architecture).asc" \ 
    && gpg --verify /usr/local/bin/gosu.asc \ 
    && rm /usr/local/bin/gosu.asc \ 
    && chmod +x /usr/local/bin/gosu \ 
    && apt-get purge -y --auto-remove curl 

RUN apt-key adv --keyserver pool.sks-keyservers.net --recv-keys 199369E5404BD5FC7D2FE43BCBCB082A1BB943DB 

ENV MARIADB_MAJOR 10.0 
ENV MARIADB_VERSION 10.0.15+maria-1~wheezy 

RUN echo "deb http://ftp.osuosl.org/pub/mariadb/repo/$MARIADB_MAJOR/debian wheezy main" > /etc/apt/sources.list.d/mariadb.list 

RUN apt-get update \ 
    && apt-get install -y \ 
     mariadb-server=$MARIADB_VERSION \ 
    && rm -rf /var/lib/apt/lists/* \ 
    && rm -rf /var/lib/mysql \ 
    && mkdir /var/lib/mysql \ 
    && sed -ri 's/^(bind-address|skip-networking)/;\1/' /etc/mysql/my.cnf 

VOLUME /var/lib/mysql 

COPY docker-entrypoint.sh/

ENTRYPOINT ["/docker-entrypoint.sh"] 

EXPOSE 3306 
CMD ["mysqld"] 

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

Мой бродяга определение выглядит следующим образом:

Vagrant.configure(VAGRANTFILE_API_VERSION) do |config| 
    config.vm.define "mariadb" do |v| 
     v.vm.provider "docker" do |d| 
      d.build_dir = "./docker/mariadb" 
      d.name = "mariadb" 
      d.ports = ["3306:3306"] 
      d.vagrant_vagrantfile = "#{DOCKER_HOST_VAGRANTFILE}" 
      d.env = { 
       MYSQL_ROOT_PASSWORD: "root", 
       MYSQL_USER: "root", 
       MYSQL_PASS: "root" 
      } 
     end 
    end 
end 

Кроме того, когда я пытаюсь установить MySQL вместо MariaDB то он работает. Поэтому моя идея заключается в том, что при настройке Root Passwords для MariaDB возникает ошибка. То, что заставляет меня думать, что эта ошибка появляется сразу после строки New password for the MariaDB "root" user:, и в конце она говорит, что она еще не настроена.

Возможно, проблема в VagrantFile? Однако я попытался изменить способ переменные Env были установлены и не фиксированная моя проблема :(

Я бы рад, если кто-то может помочь мне с этим

Update:. DockerFile используется: https://github.com/docker-library/mariadb/blob/d06c367c4b199f91b36f5f6fabf8305282b8abac/10.0/Dockerfile (I исправили разрешения на 755)

+0

вы можете разместите ссылку на файл докеров, который вы использовали для установки MariaDB, как я вижу 203 на https://registry.hub.docker.com/search?q=mariadb&searchfield= – user2915097

+0

Вместо того, чтобы использовать бродягу, можете ли вы ssh в контейнер MariaDB? Я замечаю https://github.com/mitchellh/vagrant/issues/5075 – user2915097

+0

Я добавил DockerFile, как и спросил, также я не могу использовать SSH в контейнере, даже не добавляя d.has_ssh = true. Возможно, это связано с тем, что я даже не могу его установить. Появляется такая же проблема. –

ответ

1

раствора добавляющего больше оперативной память в мою виртуальную машину и полностью воссоздает его (так что открытие VirtualBox и удаление boot2docker машины тоже). (Благодаря user2915097 для точки этого!)