• 돌아가기
  • 아래로
  • 위로
  • 목록
  • 댓글

오픈소스 LMS의 최강자 Canvas

DarkAcid 827

1

4

안녕하세요~

흔히 Learning Management System이라고 불리우는 LMS는 많은 종류에 것들이 있는데요. 요즘 미국에서는 대부분 Canvas라고 하는 플랫폼을 씁니다. 하지만 저희는 서버 포럼이잖아요? Open Source의 재미란 홈 PC에 올리는거죠!

라고 발을 들여놨다 근 한달간 머리 박살날뻔 했습니다. Open Source의 단점인 제대로 정리되어있지 않은 설치 문서의 벽을 제가 너무 쉽게 봤습니다. 사실 아직 저 이게 제대로 되어있는지도 모르겠어요.....ㅠㅠ 그냥 접속이 되는 정도이고 도대체 어떤 볼륨이 매칭되어서 설정파일이 쓰이는지 등등........여러분들의 도움이 필요해서 설치라는 첫 발걸음만 땐 제 경험를 공유해보려합니다.

instructure/canvas-lms: The open LMS by Instructure, Inc. (github.com)

 

이 Canvas는 램을 많이 먹습니다...네 정말 무지하게 먹어요. 저는 4gb로 돌리고 있지만 공식 추천 시스템은 8기가에요. 이는 Ruby on Rail, postgres 그리고 passenger 때문인데요 전 매뉴얼로 설치하는건 포기한지 오래됬습니다. 우분투 22.04에서는 여기서 요구하는 루비는 지원도 안할뿐더러 튜토리얼이 작성된 버젼은 14.04와 16.04거든요....여기서 알아봤어야했습니다...:( 이게 얼마나 미친짓인지. 그렇게 열심히 미친짓을 하다가 발견한 docker compose 퐅더....공식wiki 그 어디에서도 어떻게 쓰는지 찾아볼 수 없었습니다.

 

그러다 우연히 발견한 doc이라는 한 폴더에 docker라는 폴더가있더군요 ㅠㅠ(미친놈들아 만들어놨으면 위키에 좀 올려!) 먼저 이야기하자면 docker로 올리는 방법도 사실은 쉽지 않았습니다. 그러나 어쩄던 매뉴얼로 설치할때 안되던 부분들이 많이 해소가 되었고 일단은 돌아갑니다.

 

도커 설치 이후 사용하시는 계정을 docker 그룹에 등록하지 않으셨다면 등록 추천드립니다. (로그아웃후 재접속 필요) 여기서는 도커의 컴포즈 플러그인이아니라 도커 컴포즈를 사용하겠습니다

 

1. 도커기 때문에 home directory에 git명령어로 해당 리포지토리를 클론...이던 wget으로던 다운 받겠습니다.

 git clone https://github.com/instructure/canvas-lms.git canvas

 

2. cd로 해당 디렉토리로 이동한 뒤 체크아웃한번 하겠습니다. (보통은 stable이지만 여기는 prod를 씁니다.)

git checkout prod

 

3. docker-compose.override.yml를 구성해주어야하지만 역시 불친절한 wiki는 어떤 구성 요소인지는 나와있지 않습니다. 그래서 스크립트를 돌리면 나오는걸 쓰겠습니다

 

4. 스크립트를 돌리기전 permission 세팅을 해줘야합니다. setfacl없으면 역시 설치해줘야합니다. 이후에 ssh다시 로그인해줘야 세팅이 잡힙니다.

setfacl -Rm u:9999:rwX,g:9999:rwX .
setfacl -dRm u:9999:rwX,g:9999:rwX .
sudo addgroup --gid 9999 docker-instructure
sudo usermod -a -G docker-instructure $USER

5. 프로파일에 캔버스가 호스트 UID로 설정을 건드리지 못하게 합니다. 

sudo nano ~/.bash_profile 파일에 아래 코드를 추가해줍니다.

export CANVAS_SKIP_DOCKER_USERMOD=1

 

5. 셋업 스크립트로 이미지를 빌드합니다

./script/docker_dev_setup.sh

 

6. 여기서 reverse proxy를 추천하는걸 쓸거냐고 묻는데 전 NPM을 쓰기 때문에 no라고 선택해주었습니다.

 

7. 도커 이미지 폴더에 config를 변경해주어야하는데요 cd /path_to_canvas/docker-compose/config에 들어가시면 domain.yml이 있습니다 그리고 outgoing mail도 설정이 가능한데요 이게 제대로 설정이 되어있어야 가입메일 및 비밀번호 찾기가 정상적으로 작동합니다.

 

8. 모든 작업이 끝나고 나면 docker-compose up -d을 실행하시면 서비스들이 올라옵니다.

 

여기서부터 제가 고생한 부분입니다.

 

앞단의 reverse proxy를 설정하지 않았기 때문에 web이 정상적으로 보이지 않습니다. 그래서 전 portainer를 사용해 canvas-lms_web의 80번포트를 매칭해줬습니다. 이렇게 하시면 ip를 통해서 정상작동이되고 domain.yml을 앞에서 제대로 잡아줬다면 정상적으로 접속가능합니다.

 

제가 폴더로되어있는 docker-compose를 처음 보기도 했지만 이런 방식으로 도커를 올리는게 처음이라 제대로 작동이 되고 있는지도 모르겠네요. 일단 수업 만들고 그런건 import export가 쉬워서 크게 문제가 없긴하지만 데이터가 어디 저장 되어있는지도 모르겠어요 :( 여러분도 한번 발을담그셔서 저 좀 도와주세요 ㅠㅠ

신고공유스크랩
4
profile image 1등
달소 2023.01.19. 11:35
오호... 신기한 플랫폼이네요.
https://www.instructure.com/canvas 이게 맞나요?? 깃허브에는 소개페이지가 별도로 있지는않군요

꽤 신기한데.. 어려워보입니다 ㅠㅠ
profile image 2등
Lamanus 2023.01.19. 12:22
내부적으로 업데이트와 배포관리를 위해 젠킨스를 사용하고 배포해야하는 컨테이너가 많은 거대한 시스템이네요. 오라클 arm에서는 시도조차 못해보겠습니다 ㅎㅎ
DarkAcid 글쓴이 2023.01.19. 13:16
Lamanus
ㅎㅎ 혹시 시간되셔서 시도 해보실 수 있으면 정보 공유해주세요!

댓글 쓰기 권한이 없습니다. 로그인

취소 댓글 등록

cmt alert

신고

"님의 댓글"

이 댓글을 신고하시겠습니까?

댓글 삭제

"님의 댓글"

삭제하시겠습니까?


목록

공유

facebooktwitterpinterestbandkakao story
번호 분류 제목 글쓴이 날짜 조회 추천
정보 서버포럼 가입인사겸 저의 홈서버를 소개합니다!! 9 툭툭이 9시간 전11:14 304 +7
잡담 가지고 놀기 좋은걸 찾았습니다. 8 주차장 2일 전17:47 452 +1
잡담 (DDClient docker) 변경 될 수 있는 유동 IP / cloudflare 자동 적용하기 5 purndal 24.03.16.15:15 217 +1
3776 정보
image
Razorbacks 2시간 전18:06 34 0
3775 질문
normal
맛밥 4시간 전15:34 89 0
3774 정보
image
툭툭이 9시간 전11:14 304 +7
3773 질문
normal
유니파트 22시간 전22:09 188 0
3772 질문
image
반투검스 1일 전12:46 65 0
3771 질문
normal
니즛 1일 전00:37 326 0
3770 잡담
image
주차장 2일 전17:47 452 +1
3769 질문
image
양미 2일 전11:16 212 0
3768 질문
normal
주차장 2일 전23:44 165 0
3767 질문
image
surno 3일 전00:56 119 0
3766 질문
image
TANG 4일 전19:14 392 0
3765 질문
image
게르노 4일 전23:55 457 0
3764 질문
normal
very 5일 전09:57 208 0
3763 질문
normal
ljr10 5일 전09:11 85 0
3762 질문
normal
very 6일 전18:04 240 0
3761 가이드
normal
minis 6일 전14:20 155 0
3760 잡담
normal
아나나나나다 24.03.21.12:58 369 0
3759 질문
normal
하핳 24.03.20.14:19 205 0
3758 질문
normal
세종나스 24.03.20.14:10 70 0
3757 잡담
image
빨간물약 24.03.20.14:09 283 0