mariadb를 사용하여 Docker 컨테이너를 빌드하고 시작할 수 없습니다.

mariadb를 사용하여 Docker 컨테이너를 빌드하고 시작할 수 없습니다.

호스트 운영 체제: Ubuntu 16.04 x86_64

도커 운영 체제: Alpine Linux Edge

도커 버전: 1.11.0, 빌드 4dc5990

MariaDB 버전: 10.1.13

Dockerfile을 통해 MariaDB를 설치하고 진입점(startup.sh)에서 시작하려고 시도했지만 실패했습니다.

모든 파일(Dockerfile, my.cnf, start.sh) 및 docker build .로그는 여기에 있습니다.https://gist.github.com/rakshazi/1048c45ba7da181b9e87ed5ed4faef9b

내 구성에 어떤 문제가 있으며 어떻게 해결합니까?

답변1

Dockerfile의 각 RUN 라인은 컨테이너에서 고유한 프로세스로 실행됩니다. 실행 중인 명령 mysql_install_db --verbose && /usr/bin/mysqladmin -u root Password 'password'는 이미 실행 중인 mysql/mariadb 서버와 통신을 시도합니다. 이것이 컨테이너에서 실행되는 유일한 것이고 실행 중인 mysql 서비스가 없기 때문에 실패합니다.

일반적으로 이런 종류의 작업은 빌드 타임이 아닌 런타임에 ENTRYPOINT 스크립트에서 실행되어야 합니다. 이는 mysql/mariadb 파일을 계층적 파일 시스템이 아닌 볼륨에 저장하기를 원하기 때문입니다.

프로그래머@의 답변https://forums.docker.com/t/cant-build-container-with-mariadb/10256/2

관련 정보