Theia를 이용하여 VS Code Powered의 개인 클라우드 IDE 환경 구축

4296 단어 DockerVSCodeTheia
2019/03/30 추가 댓글 역시 갈아탔습니다gitpod
환승 2019/03/13 리뷰 추가Coder

오프닝


저는 공사상 Chromebook을 사용하기 때문에 기본적으로 Chromebook의 클라우드 도구로 완성하고 싶지만 개발에 관해서는 로컬 API를 두드리는 electron 응용 프로그램을 시험적으로 제작할 필요가 있습니다. Visual Studio Code@Windows(electron)cloud9@chrome(Web/electron의 UI)Monaca@chrome(Cordova)를 분리하여 사용합니다.그 중에서 가장 좋아하는 것은 VSCode인데 electron 기반과 상관없이 온라인 버전이 없어서 VSCode로 환경을 통일할 수 있으면 좋겠다고 망설였는데 일부는 VSCodeTheia를 이용한다는 뉴스를 보고 환경을 구축해 보았습니다.
gitpod@Chromebook C101PA

단계


어떤 기계를 준비합니까


이를 위해, 우리는 ubuntu18.04의 EC2 실례를 세웠다.
(ECS를 쓰려고 했는데 익숙하지 않아서 설정이 힘들어서 이번에 포기했어요. 좋은 기사 써주시는 분이 꼭 있을 거예요!)

공식 문서에 따라 Docker 설치 및 테스트


이 일대의 공식 문서를 편집하는 빈도도 높기 때문에 본가를 추천합니다.오랜만에 해봤더니 달라졌어요.
install_ubuntu.sh

sudo apt-get install apt-transport-https ca-certificates curl gnupg-agent software-properties-common
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
sudo apt-key fingerprint 0EBFCD88
sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable"
sudo apt-get update
sudo apt-get install docker-ce docker-ce-cli containerd.io
sudo docker run hello-world
코피페입니다.그나저나 Docker는 처음 사용하기 때문에 검색 상위 사이트에 적힌 설치 방법으로 진행했는데 오래된 것을 설치한 것 같아서 한 시간을 낭비했다.문서는 먼저 공식 문서로 전화하세요.

프로젝트 폴더 만들기

  • 개발에 사용할 작업공간 폴더 만들기
  • mkdir myApp
    
    앞으로 여기에 무슨 소스를 넣을까요?
  • permission을 추가하고 이동(777이 아닐 수도 있음)
  • chmod 777 myApp
    cd myApp
    
  • Theia 컨테이너 시작
  • 공식 문서의 명령 직접 복사
    sudo docker run -it -p 3000:3000 -d -v "$(pwd):/home/project:cached" theiaide/theia:next
    
    참고로 Dockerhub에서 찾으면 몇 가지 용기를 찾을 수 있습니다.theiaide/theia는 정말 최소한의 것이기 때문에 진정으로 사용하려면 theiaide/theia-full가 필요할 수 있습니다.
    https://hub.docker.com/search?q=theiaide&type=image
    이렇게 되면 컨테이너http://hostname:3000를 방문하면 안전 운행을 알 수 있다.그래서 이대로 가면 인증이 없으니까 추가 인증을 하고 싶은데 여기 말한 바와 같이 Theia 자체가 인증 기능을 가질 계획이 없는 것 같고 앞에서 인증 기능을 가질 필요가 있는 것 같습니다.

    리버스 프록시 배치


    ALB 산하의 인스턴스이기 때문에 ALB의 인증 기능을 사용해 보려고 했지만 OCID 등 좋은 인증용으로 이 설정이 힘든 것 같아 기본 인증만 하는 리버스 에이전트를 잠시 두기로 했습니다.어렵기 때문에 이것도 도커로 해 보세요.
    ※ 호스트 이름은 호스트입니다.example.com.

    기본 인증 디렉토리 파일 만들기


    htpasswd용 디렉터리를 만들고apache2-utils로 htpasswd 형식 파일을 만듭니다.
    mkdir ~/htpasswd
    sudo apt-get install apache2-utils
    htpasswd -c -b ~/htpasswd/host.example.com ユーザ名 パスワード
    

    리버스 에이전트 및 Theia 컨테이너 시작


    방금 용기 일시kill (docker kill 프로세스)
    이후 컨테이너를 다시 가동한다.
    sudo docker run -d -p 80:80 -v /var/run/docker.sock:/tmp/docker.sock:ro \
      -v /home/ubuntu/htpasswd:/etc/nginx/htpasswd \
      jwilder/nginx-proxy
    sudo docker run -it -p 3000:3000 -d -v "/home/ubuntu/myApp:/home/project:cached" -e VIRTUAL_HOST=host.example.com theiaide/theia:next
    
    ※ 참고로 이후 포트 3000은 외부 액세스가 필요하지 않으므로 닫기
    이게 호스트야.example.com을 방문하면 기본 인증이 있는 Theia를 사용할 수 있습니다.업무용은 좀 더 잘 하는 게 좋을 것 같은데 개인용의 즐거움으로 이런 느낌을 설정해 봤어요.

    github에서 Theia를 시작할 수 있는 Gitpod에 대해서.


    번거롭게 처리하지 않는 프로젝트라면github에서 원본 코드Gitpod.io를 관리하면서 이용하는 것도 괜찮다.아무래도 서버의 보안을 유지하고 포트를 설정하는 것은 번거롭기 때문에 기분 좋게 계약하는 것도 추천합니다.

    좋은 웹페이지 즐겨찾기