{"id":20365912,"url":"https://github.com/cycoresystems/go-minimal","last_synced_at":"2025-06-11T01:07:55.432Z","repository":{"id":148363996,"uuid":"60184449","full_name":"CyCoreSystems/go-minimal","owner":"CyCoreSystems","description":"Minimal Docker image for executing dynamic Go binaries","archived":false,"fork":false,"pushed_at":"2017-12-20T17:46:27.000Z","size":3,"stargazers_count":4,"open_issues_count":1,"forks_count":2,"subscribers_count":3,"default_branch":"master","last_synced_at":"2025-06-06T02:15:51.140Z","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/CyCoreSystems.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,"zenodo":null}},"created_at":"2016-06-01T14:33:10.000Z","updated_at":"2023-01-20T20:40:39.000Z","dependencies_parsed_at":"2023-05-19T21:15:29.587Z","dependency_job_id":null,"html_url":"https://github.com/CyCoreSystems/go-minimal","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/CyCoreSystems%2Fgo-minimal","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/CyCoreSystems%2Fgo-minimal/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/CyCoreSystems%2Fgo-minimal/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/CyCoreSystems%2Fgo-minimal/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/CyCoreSystems","download_url":"https://codeload.github.com/CyCoreSystems/go-minimal/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/CyCoreSystems%2Fgo-minimal/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":259178498,"owners_count":22817387,"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-11-15T00:21:09.452Z","updated_at":"2025-06-11T01:07:55.410Z","avatar_url":"https://github.com/CyCoreSystems.png","language":"Shell","funding_links":[],"categories":[],"sub_categories":[],"readme":"# go-minimal\n\n`go-minimal` is a tiny Docker base image for running dynamic Go binaries.\n\nWeighing in at just under 4MB, this image is even smaller than Alpine.  More\nimportantly, though, it includes the standard glibc, so it will work with normal\ndynamic Go Linux-x64 binaries.\n\nIf possible, you should use a `FROM scratch` Docker images with a static Go\nbinary.  Unfortunately, sometimes that isn't possible or isn't practical. \n\nIn particular, these are are the cases covered by this package:\n\n  - TLS : for most TLS operations, Go still needs the public \"trusted\" TLS root\ncertificates.\n  - Timezones : for timezone translation (such as those provided by the `time`\n    package), we we need the timezone definitions.  These have a habit of being\n    updated relatively often, so it is probably better to bind-mount these from\n    a live system instead, if possible.\n  - cGo : C bindings for Go need the C libraries.\n\nThis image is for any of those cases.\n\n## Usage\n\nYou can use this image with two lines in your `Dockerfile`:\n\n```\n   FROM ulexus/go-minimal\n   COPY myCompiledGoBinary /app\n```\n\nThe entrypoint is configured to simply execute `/app`.  You are free, of course,\nto override this.\n\nOne of the common reasons for building dynamic Go binaries is to facilitate\n`cgo`-built binaries, where external dynalic libraries are linked in.  If such\nis the case, make sure you copy those libraries into the image, as well:\n\n```\n   FROM ulexus/go-minimal\n   COPY libm.so.6 /lib64/libm.so.6\n   COPY myLibmLinkedGoBinary /app\n```\n\nBecause Docker will not allow you to reference files from outside its build\ncontext, you will need to copy affiliated libaries into the build directory,\nfirst.  See the `build.sh` script for an example of how this may be\naccomplished.\n\nMake sure to check you Go binary to see what libraries it is linked against, if\nin doubt:\n\n```\n   ldd myGoBinary\n```\n\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcycoresystems%2Fgo-minimal","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fcycoresystems%2Fgo-minimal","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcycoresystems%2Fgo-minimal/lists"}