Docker 및 Vagrant를 통해 MariaDB를 설치할 수 없습니다.
Docker 파일과 Vagrant를 통해 MariaDB를 설치할 때 다음과 같은 오류가 계속 나타납니다.
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)에서 발생합니다.
내 도커 파일:
# 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"]
가능한 해결책을 찾아 구글을 찾아봤지만, 아무런 해결책이 게시되지 않은 채 같은 문제를 겪고 있는 사람들만 발견할 수 있었습니다.
내 부랑자적 정의는 다음과 같습니다.
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
또한 MariaDB 대신 MySQL을 설치하려고 하면 작동합니다.그래서 여기서 제 생각은 MariaDB의 Root Password를 설정할 때 오류가 발생한다는 것입니다.그 생각이 드는 것은 이 오류가 라인 바로 뒤에 나타난다는 것입니다.New password for the MariaDB "root" user:
그리고 마지막에는 아직 구성되지 않았다고 말합니다.
그럼 Vagrant 파일에 문제가 있는 것은 아닐까요?그러나 env 변수 설정 방식을 변경하려고 했지만 문제가 해결되지 않았습니다 :(
누군가가 이것을 도와준다면 기쁠 것입니다.
업데이트: DockerFile 사용: https://github.com/docker-library/mariadb/blob/d06c367c4b199f91b36f5f6fabf8305282b8abac/10.0/Dockerfile (권한을 755로 수정했습니다)
이 솔루션은 가상 머신에 RAM을 더 추가하여 완전히 재창조하는 것이었습니다(가상 박스를 열고 boot2docker machine도 제거).(이것을 지적해주신 유저 2915097님께 감사드립니다!)
언급URL : https://stackoverflow.com/questions/28043349/can-not-install-mariadb-through-docker-and-vagrant
'programing' 카테고리의 다른 글
카르마가 단위 테스트를 실행하지 않음 (0) | 2023.09.19 |
---|---|
함수 포인터 - 자동 재참조 (0) | 2023.09.19 |
axios post request with json data (0) | 2023.09.19 |
WooCommerce - 랜덤 상품 보여주기 (0) | 2023.09.19 |
음의 부호와 가변 길이 숫자를 고려하기 위해 인쇄 f를 어떻게 패드에 넣습니까? (0) | 2023.09.14 |