윈도우에서 ICON 개발환경 구축하기-2
Pycharm PRO + Docker ToolBox 혹은 VSCode insider + Docker Desktop 구성으로 접근하기
작성자가 흘린 눈물의 온기가 남아있는 글 입니다.
목차
- Windows에서 Pycharm + Docker ToolBox 로 ICON 개발환경 만들기
- 망한것 수습하기 / 외않된데? /문제를 해결하기 위한 눈물의 삽질
- Windows에서 VSCode insider + Docker Desktop Windows 로 ICON 개발환경 만들기
저의 이전글 에서는 WSL을 활용한 윈도우 개발 환경 설정에 대해서 다루어보았습니다.
파이참을 WSL 내에 설치하고, 이를 윈도우에서 XWindow 로 실행하는 방법을 사용하였습니다.
지난글을 두 줄로 요약하자면,
장점 : Windows에서 ICON 개발환경을 구축할 수 있다.
단점: 사실 별거 아닌척 했지만 켤게 많고 굉장히 귀찮다.
Docker 켜야하지,
WSL 켜야하지,
Xming 켜야하지
파이참 켜야하지…
기본적으로 JDK를 설치해야하서, 설치하지 않았을경우에는 에러가 나기도 하고, (소중한 후기가 … )[링크]
파이참이 처음에 깔렸을때 인터프리터를 설정해 주어야 하는데, 이부분에서 갑갑한 경우도 있습니다.
그렇게 귀찮은 설정들을, 파이참 유료버전(프로페셔널)과 함께라면 간단하게 할 수 있습니다.
이번글은… 사실 회사에서 파이참을 사줘서… 가능했던 글 입니다.
왜 프로버전을 받고 난 다음에서야 글을 쓸 수 있었나?
프로가 아닌 커뮤니티 버전에서는 외부 인터프리터를 사용할 수 없습니다.
하지만, 프로버전에서는 외부 인터프리터를 통한 개발이 가능합니다.
파이참에서 Docker 의 인터프리터를 사용하기 위해서는,
1. Docker ToolBox설치
2. Windows Hyper-V 옵션 끄기 (재부팅하여야 합니다.)
사전작업을 진행해야 합니다.
Docker 페이지에 가서
Docker Tool Box를 다운로드 받습니다.[링크]
끄는 순서는 아래 순서대로 진행하시면됩니다.
- 시작 → “Windows 기능 켜기/끄기” 검색
- Hyper-V 체크해제
- 재부팅
- Hyper-V 옵션 꺼진것 확인(기능 켜기/끄기)
시작 → “Windows 기능 켜기/끄기” 검색
Hyper-V 체크해제
Hyper-V 옵션 꺼진것 확인(기능 켜기/끄기)
Docker 에서 ICON 에서 배포한 T-Bears이미지를 사용,
컨테이너를 띄웁니다.
명령어는
docker run -it --name tbears -p 9000:9000 -v /c/LOCAL_VOLUME:/CONTAINER_VOLUME iconloop/tbears:1.1.0.1
-v 옵션을 통해서 원하는 폴더를 컨테이너에 붙일 수 있습니다.
이를 통해 Docker 컨테이너에서 해당 폴더에 파일을 만들면,
로컬에서도 반영이 되고, 반대 상황 또한 같이 적용됩니다.
ICON에서 배포한 T-Bears 컨테이너는 지금(2019년 5월 8일)
기준 최신버전인 1.1.0.1버전을 받았습니다.
여기까지 아무 문제 없었으면,
Pycharm에서 Docker를 연결합니다.
문제가 있었으면… 나는 몰라요… 가 아니고 도와드립니다. 댓글남겨주세요.
그 다음 진행순서는 아래와 같습니다.
- Setting(Ctrl + Alt + S )에서 docker 탭에서 Docker 머신을 만들어줍니다.
- Setting(Ctrl + Alt + S )에서 interpreter 탭 → add 클릭합니다.
- Docker를 선택하고, 컨테이너 이름이 “tbears” 인 것을 확인하고 선택합니다.
- 결과를 확인합니다.
Setting(Ctrl + Alt + S )에서 docker 탭에서 Docker 머신을 만들어줍니다.
Setting(Ctrl + Alt + S )에서 interpreter 탭 → add 클릭합니다.
Docker를 선택하고, 이름이 “tbears” 인 것을 확인하고 선택합니다.
--name tbears
위와같은 옵션을 주었기때문에 tbears인 것을 확인했습니다. 만약에 컨테이너에 다른 이름을 설정하셨다면, 그 이름을 확인하시면 됩니다.
결과를 확인합니다.
이걸로 오늘의 글을 마칠수 있었습니다.
근데 잠깐 소리지를 일이 생겨서 소리좀 지르겠습니다.
위 가이드대로 설치가 완료되면,
자동완성 기능을 기본으로 사용할 수 있어야하는데,
자동완성도 되지 않거니와…. 필수적으로 사용해야할 iconsdk 모듈을 인식하지 못했습니다.
깔끔하게 끝날 줄 알았는데…
파이참 프로그레스바를 확인했더니….
위 사진과 같은 상태가 계속 유지되고있었습니다.
구글링 해 보니, 몇몇의 사람들이 겪는 문제였습니다.
문제를 해결하기 위한 눈물의 삽질
그냥 포기할 수는 없었습니다.
- 여러번 껐다가 켜기 → 어림도 없답니다…
2. Jetbrain에서 제공하는 Jetbrains ToolBox를 설치해서 최대 메모리 힙사이즈를 늘려보기(기본 750MB → 2048MB)
3. 다 될 때 까지 기다리기
30분 초과 → 그래, 그럴 수 있지
1시간 경과 → ??????? (30%도 진행되지 않았습니다.)
1시간1분 경과 → 이거 근데 도커 컨테이너 연결 할 때 마다 이래야 하는거 아닌가..?
글을 여기까지 쓸까… 하다가
다음 링크와 같은 내용을 찾아냈습니다.
VSCode insider 버전에서 Remote Development를 지원한다는 소식이 있었습니다.
일단, 위의 가이드대로 다시 진행하기로 합니다….
순서는 아래와 같습니다.
- Docker Desktop Windows 설치
- Docker Desktop Windows를 설치하기 전에,
Docker Toolbox 를 삭제해줘야합니다. ^^ - ICON T-Bears 이미지 다운로드 & 띄우기
- hyper-V 옵션 켜기
- VSCode insider 설치
- Plugin 설치
- 연결하기
Docker Desktop Windows 설치
위 링크에서 다운로드 받습니다.
insider 버전은 일반 VSCode와는 다르게, 로고가 초록색입니다.
Docker Desktop Windows를 설치하기 전에,
Docker Toolbox 를 삭제해줘야합니다. ^^
혹시, 이전 파이참 프로버전을 통한 설정을 진행하지 않으셨거나, Docker ToolBox를 설치하지 않으신분은 이 부분을 건너뛰어주세요.
삭제를 진행하고 나서도,
제대로 Docker Desktop Windows 설치 혹은 실행이 되지 않는 경우가 있습니다.
원문 출처 :
그럴때는
- 사용자의 환경변수 안에 있는 DOCKER_* 이라고 시작하는
환경변수를 모두 지워주세요
2. PowerShell을 열고, 아래 명령어를 실행해 주세요
[Environment]::SetEnvironmentVariable("DOCKER_CERT_PATH", $null, "User")
[Environment]::SetEnvironmentVariable("DOCKER_HOST", $null, "User")
[Environment]::SetEnvironmentVariable("DOCKER_MACHINE_NAME", $null, "User")
[Environment]::SetEnvironmentVariable("DOCKER_TLS_VERIFY", $null, "User")
[Environment]::SetEnvironmentVariable("DOCKER_TOOLBOX_INSTALL_PATH", $null, "User")
3. PowerShell을 껐다가 켜주세요(컴퓨터를 껐다가 켜는걸 추천합니다.)
ICON T-Bears 이미지 다운로드 & 띄우기
사용할 T-Bears 컨테이너를 띄워야겠죠?
위에서 이미 Docker ToolBox를 사용해서 컨테이너를 이미 띄우셨어도 똑같이 하셔야합니다. 우리 그거 지웠잖아요 ^___^
명령어는
docker run -it --name tbears -p 9000:9000 -v /c/LOCAL_VOLUME:/CONTAINER_VOLUME iconloop/tbears:1.1.0.1
hyper-V 옵션 켜기
위에 있는 끄기… 의 반대로 진행해 주시면 됩니다.
근데 얘도 컴퓨터를 껐다가 켜야합니다….
VSCode insider 설치
insider 버전을 설치해야합니다.
다시 한 번 말씀드리지만, insider 버전은 초록색입니다.
로고가 초록색입니다.
Plugin 설치
Remote Development Plugin을 Marketplace에서 설치합니다.
연결하기
왼쪽 맨 하단에 있는 녀석을 클릭해주면,
빨간 상자가 뜹니다.
Remote - Containers: Attach to Running Container...
를 클릭합니다.
T-Bears 컨테이너가 잘 돌아가고 있을 경우,
아래같이 뜨게됩니다.
성공적으로 연결하였으면 화면 하단 꺽쇠 옆에
Attached Container : *****
이라고 뜹니다.
여기서 Open Folder 를 클릭하게 되면
Docker 컨테이너 내부 위치에 접근 할 수 있습니다.
진짜 도커 컨테이너에 접근했는지,
아닌지 어떻게알아?
해보면알죠
검증하는 순서는 다음과 같습니다.
- Docker CLI로 SCORE 배포
- 배포한 SCORE의 Txhash 복사
- 복사한 Txhash 를 사용, VSCode IDE에서 Python SDK 를 통해 Txresult 조회
3번에서 만약, 서로 다른 환경이라면
VSCode 에서 Txresult 를 조회했을때 없는 트랜잭션 해시 라는 응답이 나와야합니다.
Docker CLI로 SCORE 배포, 배포한 SCORE의 Txhash 복사
복사한 Txhash 를 사용,
VSCode IDE에서 Python SDK 를 통해 Txresult 조회
복사한 Txhash는 0xfee52… 로 시작합니다.
Python code를 짜던 도중에, 자동완성을 보고 눈물흘릴뻔했습니다.
실행해 봅니다.
뭔가 많은데… 일단 이 창은 그대로 두고,
Docker CLI에서 Txresult 해 봅니다.
결과 비교
Txhash
Docker CLI =
0xfee52d6c57048df8323226e4d6f0dfde16e653975a706a4bb27097034c0f66c0
VSCode Python = 0xfee52d6c57048df8323226e4d6f0dfde16e653975a706a4bb27097034c0f66c0
Block height
Docker CLI = 0x153
VSCode Python = 339
0x153 은 16진수이므로, 10진수로 변환하면 339가 맞습니다.
둘이 같은 결과를 출력하는것을 확인할 수 있습니다.
울뻔했습니다.
그래도, 이전글에서 소개한 내용보다는 더 간단한 설정으로 사용 가능해졌습니다.
제가 겪은 문제의 원인은 저도 잘 모르고…
구글링해도 잘 나오질 않았습니다.
하지만, 저 말고 다른사람 컴퓨터에서는 문제없이 Pycharm pro 를 활용하는것을 확인했기 때문에
제가 처음에 소개드린 내용으로 설정하시되, 제가 겪은 문제사항이 없으시면 VSCode insider 버전을 굳이 사용하지 않으셔도 될 것 같습니다.
그 이유는…. 아직 정식 지원되는 IDE 버전이 아니기 때문에, 정책이 바뀌거나 버그가 있을 수 있기 때문입니다.
그럼 이만.. 즐거운 코딩되셔요
ICON과 관련된 추가적인 질문사항이 있는 경우, ICON의 공식 개발자포럼 혹은 페이스북 그룹에 질문하시면 답변을 얻으실 수 있습니다.
ICON 개발자 포럼
아이콘 페이스북 그룹
그리고, 마지막으로
ICON에 대한 정보를 얻을 수 있는 유투브 채널입니다.
Reference
짤생성기
짤생성기
44bit
Docker Desktop for Windows Stack Ocerflow