개발 기록장

01. Docker에서 Superset 설치 방법 및 오류 해결(맥북 M1) 본문

데이터시각화/Superset

01. Docker에서 Superset 설치 방법 및 오류 해결(맥북 M1)

jxwxnk 2024. 5. 11. 19:47
반응형

Superset을 Docker위에 설치하기 위해 공식문서, 블로그 등 다양한 것을 참고하였다. 설치 가이드는 많지만 내가 마주한 오류를 해결하는 방법에 대한 글은 찾지 못해 해결에 오랜 시간이 걸렸다. 나와 같은 오류 상황에 처한 사람에게 이 글이 조금이나마 도움이 되길 바란다:)

1. Docker 설치

  • 운영체제에 맞는 Docker을 설치한다
    Docker 설치
  • Docker 설정
    • Superset은 꽤 무거운 프로그램으로 사양 설정이 매우 중요한 것 같다.

내가 설정한 세팅값(맥북 M1 기준)

2. Superset repo clone

  • 터미널을 켜고, superset repo를 clone한다.
    • 나는 빈 폴더를 하나 만들고 그 안에 clone 했다.(ex. 빈 폴더/superset...)
 git clone https://github.com/apache/superset.git

3. Docker에서 실행

성공편

  • Superset 폴더로 이동

      cd superset
  • 컨테이너 시작을 위해 필요한 이미지 다운로드

      docker-compose -f docker-compose-non-dev.yml pull
  • 컨테이너 시작

    • 아래와 같이 실행됨.

정상 작동

절망편

  • 첫번째 오류: docker-compose -f docker-compose-non-dev.yml up 명령 실행 후 오류 발생

    failed to solve: process "/bin/sh -c npm run ${BUILD_CMD}" did not complete successfully: exit code: 1
    • 버전 지정
      • master 브랜치 내용을 실행 시켰을 때 뭔가 내 맥북 상황과 맞지 않는 것 같음.따라서 아래와 같이 1.4.0 버전으로 진행함.
      • 처음에는 npm 오류인 줄 알고 삽질 엄청 함.
      • 아래 명령어로 버전 바꿔주고 위 성공편 처음부터 다시 진행
      • git checkout 1.4.0
  • 두번째 오류: SECRET_KEY 오류

    A Default SECRET_KEY was detected, please use superset_config.py to override it. superset_app | Use a strong complex alphanumeric string and use a tool to help you generate superset_app | a sufficiently random sequence, ex: openssl rand -base64 42 superset_app | -------------------------------------------------------------------------------- superset_app | -------------------------------------------------------------------------------- superset_app | Refusing to start due to insecure SECRET_KEY superset_app | Loaded your LOCAL configuration at [/app/docker/pythonpath_dev/superset_config.py]
    • 읽어보니 SECRET_KEY 보안 문제인 것 같음. 나만의 SECRET_KEY를 설정해줘야 함.

    • SECRET_KEY 생성

      • 터미널 창에 아래 명령어 입력하면, dL******** 이런 복잡한 형식의 시크릿 키가 생성됨.

        openssl rand -base64 42
    • superset_config.py 파일 찾기
      app/superset/docker/pythonpath_dev

    • cd docker/pythonpath_dev/

    • superset_config.py 수정

      • 터미널에서 파일 열기
       open superset_config.py
      • SECRET KEY 추가
       SECRET_KEY = '명령어를 통해 발급받은 시크릿 키'

      superset_config.py

  • 컨테이너 시작

    • docker-compose -f docker-compose-non-dev.yml up

4. 설치 완료 및 Superset 실행

  • Docker GUI
    • Running 되고 있음

Superset 실행 Docker GUI 화면

  • 웹에서 Superset 접속
  • 웹 UI 로그인
    • username: admin
    • password: admin
  • 완료
반응형