호스트 운영 체제: 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