2017-12-04 3 views
0

데이터베이스를 생성 한 다음 테이블을 생성하는 mysql 스크립트를 실행하는 고정 표시기 컨테이너를 만들려고합니다. 내 Dockerfile은 다음과 같습니다Docker를 통해 mysql 스크립트를 실행하는 중 오류가 발생 했습니까?

FROM mysql:latest 


WORKDIR/


ADD ./


EXPOSE 3306 

CMD mysql -u "root" -proot < "schema.sql" 

을하지만 내가 얻을 다음과 같은 오류 메시지를 실행할 때 : 내가 SQL 스크립트를 실행하면

mysql: [Warning] Using a password on the command line interface can be insecure. 
ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock' (2) 

난 단지 암호 오류가 발생합니다. 도와 주셔서 감사합니다!

답변

0

공식 도커 이미지의 대부분과 마찬가지로, 엔트리 포인트를 통해 컨테이너를 구성 할 수 있습니다.

mysql docker page에 설명되어 있습니다. MYSQL_ROOT_PASSWORD, MYSQL_DATABASE, MYSQL_USER, MYSQL_PASSWORD을 사용하여 mysql 인스턴스를 구성 할 수 있습니다.

이 변수는 -e 인 환경 변수를 docker 또는 environments 옵션을 사용하여 docker-compose.yml 파일에 설정합니다.

here에서 /docker-entrypoint-initdb.d/ image에 복사 된 파일 (.sh, .sql, .sql.gz)이 시작 중에 실행될 수 있습니다.

그래서 당신은 다음과 같이 Dockerfile을 작성할 수 있습니다

FROM mysql:latest 

COPY schema.sql /docker-entrypoint-initdb.d/ 
# No need to override CMD default command of mysql image 
관련 문제