{"id":22188855,"url":"https://github.com/qwreey/code-docker","last_synced_at":"2026-02-26T18:16:12.850Z","repository":{"id":254336160,"uuid":"846125324","full_name":"qwreey/code-docker","owner":"qwreey","description":"run vscode server under docker","archived":false,"fork":false,"pushed_at":"2025-05-07T04:08:11.000Z","size":36,"stargazers_count":2,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-06-25T12:00:09.286Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Shell","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/qwreey.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2024-08-22T15:23:50.000Z","updated_at":"2025-05-07T04:08:15.000Z","dependencies_parsed_at":"2024-08-28T08:06:37.029Z","dependency_job_id":null,"html_url":"https://github.com/qwreey/code-docker","commit_stats":null,"previous_names":["qwreey/vsdocker"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/qwreey/code-docker","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/qwreey%2Fcode-docker","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/qwreey%2Fcode-docker/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/qwreey%2Fcode-docker/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/qwreey%2Fcode-docker/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/qwreey","download_url":"https://codeload.github.com/qwreey/code-docker/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/qwreey%2Fcode-docker/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":262022147,"owners_count":23246266,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-12-02T11:12:55.939Z","updated_at":"2026-02-26T18:16:12.475Z","avatar_url":"https://github.com/qwreey.png","language":"Shell","funding_links":[],"categories":[],"sub_categories":[],"readme":"# code-docker\n\n![image](https://github.com/user-attachments/assets/ebd212a9-e620-46c4-9cd0-dbcbf1a55b69)\n\n개인적인 목적의 code-server 도커 이미지입니다. qwreey/zsh 와 통합되어있습니다. 아래의 툴킷이 제공됩니다.\n\n - GCC: arch linux 의 base-devel, cmake 가 제공됩니다.\n - rust (rustup): qwreey/zsh 가 제공하는 그대로 제공됩니다.\n - nodejs (fnvm): qwreey/zsh 가 제공하는 그대로 제공됩니다.\n - python (pyenv): qwreey/zsh 가 제공하는 그대로 제공됩니다.\n\n예정:\n - java (javaenv): qwreey/zsh 가 제공하는 그대로 제공됩니다.\n - go (gvm): qwreey/zsh 가 제공하는 그대로 제공됩니다.\n\n기타 패키지: gdu btop bash zsh vim openssh less cloc\n필요한 경우 패키지를 임의로 추가할 수 있습니다 아래 커스터마이징을 확인하세요\n\n# 기본 사용법\n\n먼저 이 레포지토리를 적당한 폴더에 클론해야합니다. 아래 명령을 기호에 맞추어 수행하세요.\n```sh\nmkdir -p ~/code-docker/builds\ngit clone --recurse-submodules https://github.com/qwreey/code-docker.git ~/code-docker/builds/code-docker\ncd ~/code-docker\n```\n\n그런 다음 아래의 내용을 가진 `docker-compose.yml` 파일을 생성하세요\n```yaml\nservices:\n  code-docker:\n    container_name: code-docker\n    hostname: code-docker\n    restart: unless-stopped\n    build: ./builds/code-docker\n    volumes:\n      - ./yaeji-code:/code\n      - ./yaeji-code/.sshd:/etc/ssh\n    environment:\n      # PWA_NAME: \"qwreey-code\"\n      # 옵션과 패치 방법은 아래를 확인하세요\n\t# 80 http 포트를 리버스 프록시에 물려 외부에 노출하거나\n\t# 직접 노출하세요, *단 보안 설정에 유의하세요, 가능한 리버스 프록시와*\n\t# *forward proxy auth 를 적용하는것이 좋습니다, 이를 위해 caddy 와 같은*\n\t# *웹서버를 사용하세요*\n\t# ports:\n\t#   - \"8080:80\"\n```\n이제 `docker compose build` 를 수행하고 잘 빌드가 되는지 확인합니다.\n만약 빌드에 성공했다면 `docker compose up -d` 를 수행하세요.\n잘 구동된다면 성공입니다!\n\u003e Note: 시스템 패키지 업데이트를 위해 주기적으로 build 와 up 을 다시 수행해주세요.\n\u003e Note: code-docker 업데이트를 수행하려면 `git -C builds/code-docker pull origin master --recurse-submodules` 를 수행하세요\n\n# 커스터마이징\n\n각각의 config 폴더 안 파일들은 \\*.default.\\* 를 복사하여 \\*.override.\\* 로 바꾸어 원하는대로 작성할 수 있습니다. 예를들면 build.default.sh 를 build.override.sh 로 복사하여 원하는대로 변경할 수 있습니다.\n각 override 파일은 편집 후, 컨테이너 재빌드가 필요합니다. `docker compose build 컨테이너명 \u0026\u0026 docker compose up -d` 를 수행하세요\n\n## build.\\*.sh\n\n이미지 build 타임에 수행되는 스크립트입니다. pacman 으로 패키지를 설치하기 위해서 사용됩니다. 또한 이 스크립트는 캐시가 마운트된 상태에서 실행됩니다.\n\n## service.\\*.sh\n\ncode-server 서비스 엔트리포인트입니다. code-server 의 업데이트/설치와 초기 환경설정이 여기에서 이루워집니다. 동작 보장을 위해서 일반적으로 수정하지 말아야합니다. 환경변수를 설정하고 싶은경우 소싱되는 `editor-env.*.sh` 를 편집하세요. 또는 실행 방식을 바꾸려면 `code.*.sh` 를 수정하세요. code-server 의 설정은 `code-config.*.yaml` 이 초기값으로 복사됩니다.\n\n## code-config.\\*.yaml\n\n유저가 적절한 설정을 가지고 있지 않을 때(일반적으로 초기 설치에) 복사되는 기본 code-server 설정파일입니다. 이미 설정된 경우 /code/.server/config.yaml 를 수정해야합니다.\n\n여기의 각 요소는 /code/.server/code-server/bin/code-server --help 를 통해 확인해볼 수 있습니다. 각각의 인자 `--some=value` 는 `some: value` 로 작성할 수 있습니다.\n\n## editor-env.\\*.sh\n\n`service.*.sh` 가 code-server 를 실행하기전 소싱하는 파일입니다. 일반적으로 환경변수를 설정하는데 사용합니다.\n\n## code.\\*.sh\n\ncode-server 를 어떻게 수행할지 정의합니다. qwreey/code-server-autoinstall 이 제공하는 start.sh 의 래퍼이며 qwreey/zsh 가 제공하는 툴킷을 code-server 에 환경변수로써 알려주기 위해서 /code/.zsh/userenv 래퍼를 사용합니다.\n\n## supervisord.\\*.conf\n\nsupervisord 에 사용될 설정파일입니다.\n\n## user.\\*.sh\n\n유저 홈폴더 (/code) 가 처음 생성될 때 수행됩니다. 모든 동작은 /code 안에서 행해야합니다. 그렇지 않으면 컨테이너가 꺼질 때 작업이 저장되지 않습니다.\n\n# Patch\n\n폰트나 css, js 를 커스텀으로 로드하고 싶은 경우 `/code/.server/patch` 폴더를 만들어 안에 css, js 를 만들어줄 수 있습니다.\n\n![image](https://github.com/user-attachments/assets/1cd9f7ad-d510-4d89-aa64-15524f68b4c5)\n\nCSS 에서는 에셋을 상대 경로로 불러올 수 있습니다. 폰트를 불러오고싶은 경우 아래와 같은 코드를 작성하세요\n\n```css\n@font-face {\n\tfont-family: 'KawaiiMono';\n\tsrc: url('./fonts/KawaiiMonoRegular.ttf') format('truetype');\n\tfont-weight: 400;\n\tfont-style: normal;\n}\n```\n\n\u003e 주의사항: patch 바로 아래에 있는 css, js 만 바로 로드됩니다. patch 안에 폴더를 만들어 파일을 넣는 경우 에셋으로 취급됩니다.\n\ncss, js 를 변경한 경우 코드 터미널에서 restart 를 입력하고, 윈도우 리로드가 뜰 때 리로드를 해주면 적용된 code-server 를 보실 수 있습니다.\n\n## PWA 이름과 아이콘\n\npatch 디렉터리에 `icons/pwa-icon-512.png` 와 `icons/pwa-icon-192.png` 를 크기에 맞게 생성하세요.\n\nffmpeg 를 통해 특정 이미지를 크기를 변경하여 아이콘으로 적용하려면 다음을 수행하세요\n```sh\nIMAGE=./myimage.png\nPATCH_FOLDER=/code/.server/patch\n\nmkdir -p \"$PATCH_FOLDER/icons\"\nffmpeg -i \"$IMAGE\" -vf scale=512:512 \"$PATCH_FOLDER/icons/pwa-icon-512.png\"\nffmpeg -i \"$IMAGE\" -vf scale=192:192 \"$PATCH_FOLDER/icons/pwa-icon-192.png\"\n```\n\n## window-appicon.{png,webp,jpg,jpeg,gif}\n\n추가적으로, 만약 창 왼쪽 위의 타이틀바 아이콘을 변경하려면 `window-appicon.*` 파일을 patch 디렉터리에 생성하여 원하는 이미지로 변경할 수 있습니다.\n이미지 추가 예정\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fqwreey%2Fcode-docker","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fqwreey%2Fcode-docker","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fqwreey%2Fcode-docker/lists"}