code-server의 기본 이미지에는 라이브러리가 들어있지 않습니다. 그래서 이전 글처럼 구축만 한 상태에서는 어떠한 테스트도 하기 어렵습니다. 단순한 HTML 작성이나 yaml, xml 파일 등 마크 업 파일들만 다룰 수 있게 됩니다.
하지만, code-server 제작자가 이러한 문제를 해결하기 위해 'DOCKER_MODS'라고 하여 플러그인 개념이 있습니다. 이를 통해 node, jdk, git, docker 등 여러 라이브러리를 설치할 수 있습니다.
Docker Image는 불변성을 갖고 있는데 어떻게 작동하는 것인가 싶어서 구조를 봐봤는데요.
이번 글에서는 아래 라이브러리를 다루어보겠습니다.
공통적으로 적용하기 위해서는 Docker Image 주소를 Environment Value의 'DOCKER_MODS'에 넣으면 됩니다. 만일 적용할 MOD가 여러 개라면, '|'로 구분하여 넣으면 됩니다.
Node의 경우 code-server에서 제공하는 기본 버전이 14이며, 공식 MOD만 사용할 경우에는 아직 16 버전으로 사용할 방법이 없습니다.
14 버전을 사용하실려면, code-server에서 제공하는 14 버전의 경우 환경 변수에 linuxserver/mods:code-server-nodejs
를 넣고 컨테이너를 시작하면 됩니다.
16 버전 또는 기타 버전을 사용하실려면, 제가 code-server에서 제공하는 기본 MOD를 포크하여 작업한 것이 있습니다. 이 MOD를 사용하면, 환경 변수 'NODE_VERSION'에 메이저 버전을 넣어두면 이에 맞추어서 해당 메이저 버전의 최신 버전을 설치하게 됩니다. 만일, 환경 변수를 지정하지 않는다면 기본 값은 '16'입니다.
EX) Node 15 버전을 설치하고자 하는 경우, NODE_VERSION에 15를 넣으시면 됩니다.
이 모드를 사용하고 싶으시다면, 환경 변수에 DOCKER_MODS=ghcr.io/shin6949/codeserver-mods:code-server-nodejs
를 설정합니다.
공식 MOD의 경우 환경 변수를 DOCKER_MODS=linuxserver/mods:universal-git
로 설정하시면 됩니다.
제가 포크한 MOD의 경우, 환경 변수 GIT_USERNAME
, GIT_EMAIL
에 정보를 등록하면, 자동으로 git config --global
명령어를 통해 git config를 동록합니다. 공식 문서의 경우 수동으로 등록하라고 기재되어 있습니다.
이 MOD를 사용하고 싶으시면 환경 변수를 DOCKER_MODS=ghcr.io/shin6949/codeserver-mods:universal-git
로 설정하시면 됩니다.
공식 MOD의 경우 apt-get install openjdk-11-jdk
명령어를 수행합니다. 이를 사용하고 싶으신 경우 환경 변수를 DOCKER_MODS=linuxserver/mods:code-server-java11
로 설정하시면 됩니다.
저 같은 경우에는 MS에서 만든 OpenJDK 11을 사용하고 있어서 MOD를 포크하여 따로 제작하였습니다. 이를 사용하고 싶으시다면 환경 변수를 DOCKER_MODS=ghcr.io/shin6949/codeserver-mods:code-server-msopenjdk11
로 지정하시면 됩니다.
기타 MOD를 찾고 계시다면 공식 홈페이지를 참고하여 적용하시면 됩니다.
이전 글보고 코드서버 잘 구축했습니다
질문이있는데 jdk를 적용후에 코드서버에서 적용을 어떻게 해야 자바 컴파일을 할수있나요