source

조타 도표에서 /docker-entrypoint-initdb.d에 액세스하는 방법

manycodes 2023. 1. 15. 17:18
반응형

조타 도표에서 /docker-entrypoint-initdb.d에 액세스하는 방법

https://github.com/helm/charts/tree/master/stable/mariadb#initialize-a-fresh-instance의 공식 조타 차트를 사용하여 MariaDB의 새로운 인스턴스(/docker-entrypoint-initdb.d에 .sql 파일을 저장)를 초기화하려고 합니다.

하지만 설명서가 상당히 불분명합니다.

스크립트를 실행하려면 해당 스크립트가 차트 폴더 내에 있어야 합니다.files/docker-entrypoint-initdb.dConfigMap으로 사용할 수 있습니다.

제가 하는 일은 마리애드브 클러스터를 셋업하기 위해서helm install --name my-release stable/mariadb -f values-production.yaml나는 꽤 혼란스럽다.

이 폴더는 어디에 있습니까?


편집

https://github.com/helm/charts/tree/master/stable/mariadb을 다운로드하여 (폴더 전체를) 배치하고 SQL 파일을 저장했습니다.files/docker-entrypoint-initdb.d.

그리고 나서 나는helm package ./mariadb이어서helm install ./mariadb -f ./mariadb/values-production.yaml그러나 마스터 포드는 "CrashLoopBackOff" 상태로 되어 있습니다.

마스터 로그는 다음과 같습니다.

==> ** Starting MariaDB setup **
==> Validating settings in MYSQL_*/MARIADB_* env vars..
==> Initializing mariadb database...
==> Persisted data detected. Restoring...
==> Loading user's custom files from /docker-entrypoint-initdb.d ...
==> Stopping mariadb...

나도 이 방법을 시도했지만, db가 계속 다운되고 있어

kubectl create configmap db-scheme --from-file=db.sql
helm install --name db-test stable/mariadb -f .values-production.yml --set rootUser.password=ROOT_PASSWORD --set replication.password=REPLICATION_PASSWORD --set initdbScriptsConfigMap=db-scheme

로그는 다음과 같습니다.

이미지


편집 2

라는 이름의 폴더를 만들었습니다.files/docker-entrypoint-initdb.d

현재 디렉토리:

.
├── values-production.yml
│
├── files
│   └── docker-entrypoint-initdb.d
│       └── db.sql

현재 디렉토리에서 다음 명령을 실행합니다.

helm install --name test stable/mariadb -f .\values-production.yml --set rootUser.password=ROOT_PASSWORD --set replication.password=REPLICATION_PASSWORD

SQL 테이블이 없어도 MariaDB가 부팅됩니다.

제 문제는 생각보다 복잡합니다.https://github.com/bitnami/bitnami-docker-mariadb/issues/182

컨피규레이션맵을 작성하는 것은 이와는 별도로 기능합니다.

kubectl create configmap db-scheme --from-file=db.sql

helm install --name db-test stable/mariadb -f .values-production.yml --set rootUser.password=ROOT_PASSWORD --set replication.password=REPLICATION_PASSWORD --set initdbScriptsConfigMap=db-scheme

이 차트는 조금 어색하지만 설명하겠습니다.이 설정 맵은 (상대적인) 폴더 정보를 읽어낼 것입니다.values.yaml패스)

운을 위해 두 가지 대안을 더 제시하겠습니다.

  • 값에 삽입할 스크립트를 전달합니다.yaml (122행)
  • 스크립트를 사용하여 컨피규레이션맵을 작성하고 값의 이름을 참조합니다.yaml ( 129)

언급URL : https://stackoverflow.com/questions/55732061/accessing-docker-entrypoint-initdb-d-from-helm-chart

반응형