{"id":24803951,"url":"https://github.com/raonigabriel/coder-core","last_synced_at":"2025-10-13T05:31:08.554Z","repository":{"id":58718389,"uuid":"533055161","full_name":"raonigabriel/coder-core","owner":"raonigabriel","description":"An Alpine docker image powerful enough to run vscode remote containers or docker-based GitHub Actions","archived":false,"fork":false,"pushed_at":"2025-01-10T03:43:25.000Z","size":50,"stargazers_count":3,"open_issues_count":10,"forks_count":1,"subscribers_count":3,"default_branch":"master","last_synced_at":"2025-01-10T04:28:29.158Z","etag":null,"topics":["alpine","docker","gha","github-actions","lightweight","remote-containers"],"latest_commit_sha":null,"homepage":"","language":"Dockerfile","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/raonigabriel.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","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":"2022-09-05T20:46:25.000Z","updated_at":"2024-12-16T11:46:54.000Z","dependencies_parsed_at":"2023-02-16T23:10:18.125Z","dependency_job_id":"aa5f8020-611e-4976-ad3c-fefc44a5b97f","html_url":"https://github.com/raonigabriel/coder-core","commit_stats":null,"previous_names":[],"tags_count":9,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/raonigabriel%2Fcoder-core","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/raonigabriel%2Fcoder-core/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/raonigabriel%2Fcoder-core/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/raonigabriel%2Fcoder-core/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/raonigabriel","download_url":"https://codeload.github.com/raonigabriel/coder-core/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":236304097,"owners_count":19127438,"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":["alpine","docker","gha","github-actions","lightweight","remote-containers"],"created_at":"2025-01-30T06:14:07.902Z","updated_at":"2025-10-13T05:31:03.283Z","avatar_url":"https://github.com/raonigabriel.png","language":"Dockerfile","funding_links":[],"categories":[],"sub_categories":[],"readme":"# coder-core\n---\nThis is my opinionated attempt to build a \"lightweight\" docker image powerful enough to run [vscode remote containers](https://code.visualstudio.com/docs/remote/containers-tutorial) or to be used as a base image to create [docker container GitHub Actions](https://docs.github.com/en/actions/creating-actions/creating-a-docker-container-action). \n\nThe **not-that-lightweight** actually means that while [ubuntu:latest](https://hub.docker.com/_/ubuntu) is ~78MB, this image is ~90MB. Yes, this translates to **extra 12MB** compared to ubuntu, but the preinstalled tools are **by far** more comprehensive (see bellow).\n\n# Features\n\n1. Based on Alpine instead of Ubuntu. This translates to [musl being used instead of glib](https://wiki.musl-libc.org/functional-differences-from-glibc.html), but compatibility libraries are also preinstalled. \n2. Its is Alpine, but using **bash** instead of **ash**.\n3. By using **tini**, we ensure that child processes are correctly reaped.\n4. Default user **coder** and group **coder** using UID and GID = 1000, to ease volume-mapping permissions issues.\n5. Passwordless, **sudo** support: easily install extra packages with apk (e.g, ```sudo apk add docker-cli  jq```) \n7. Preinstalled node (v16.19.1) and npm (8.10.0) !!!\n8. Preinstalled tooling (git, curl, socat, openssh-client, nano, unzip, brotli, zstd, xz) !!!\n9. Image is hosted on [GitHub Container Registry](https://docs.github.com/en/packages/working-with-a-github-packages-registry/working-with-the-container-registry), hence we get fast pulls whenever using this image with GitHub Actions.\n\n# Guidelines that I follow\n - Whenever possible, install software directly from the Alpine repositories, i.e. use apk instead of downloading / manually installing them.\n - Keep it small: do not cross the 100MB image size boundary.\n- Multi arch (amd64 \u0026\u0026 arm64)\n # Usage\n\n```\n# docker run -it ghcr.io/raonigabriel/coder-core:latest\ncoder@65dc49a66e7c:~$\n```\n \n## Creating your own derived image (Java example)\n\n```Dockerfile\nFROM ghcr.io/raonigabriel/coder-core:latest\n# Installing Java and tools\nRUN sudo apk --no-cache add maven gradle\n# Setup env variables\nENV JAVA_HOME=/usr/lib/jvm/default-jvm \\\n    MAVEN_HOME=/usr/share/java/maven-3 \\\n    GRADLE_HOME=/usr/share/java/gradle\n```\n\nSee my [spring-qrcode-example](https://github.com/raonigabriel/spring-qrcode-example/tree/master/.devcontainer) for a full example on how to [setup a remote container](https://code.visualstudio.com/docs/remote/create-dev-container) for development.\n\n---\n## Licenses\n\n[Apache License 2.0](https://www.apache.org/licenses/LICENSE-2.0)\n\n---\n## Disclaimer\n* This code comes with no warranty. Use it at your own risk.\n* I don't like Apple. Fuck off, fan-boys.\n* I don't like left-winged snowflakes. Fuck off, code-covenant. \n* I will call my branches the old way. Long live **master**, fuck-off renaming.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fraonigabriel%2Fcoder-core","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fraonigabriel%2Fcoder-core","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fraonigabriel%2Fcoder-core/lists"}