{"id":18497151,"url":"https://github.com/bottlerocket-os/bottlerocket-bootstrap-container","last_synced_at":"2026-02-11T21:05:22.522Z","repository":{"id":251982964,"uuid":"836889820","full_name":"bottlerocket-os/bottlerocket-bootstrap-container","owner":"bottlerocket-os","description":null,"archived":false,"fork":false,"pushed_at":"2026-01-15T00:26:37.000Z","size":54,"stargazers_count":8,"open_issues_count":2,"forks_count":11,"subscribers_count":15,"default_branch":"develop","last_synced_at":"2026-01-18T12:24:44.079Z","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":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/bottlerocket-os.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE-APACHE","code_of_conduct":"CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":"SECURITY.md","support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2024-08-01T19:12:48.000Z","updated_at":"2026-01-17T07:38:32.000Z","dependencies_parsed_at":"2024-12-25T17:27:04.599Z","dependency_job_id":"ce8d6c90-41ff-46d8-b14a-82472c9b23c5","html_url":"https://github.com/bottlerocket-os/bottlerocket-bootstrap-container","commit_stats":null,"previous_names":["bottlerocket-os/bottlerocket-bootstrap-container"],"tags_count":17,"template":false,"template_full_name":"amazon-archives/__template_Apache-2.0","purl":"pkg:github/bottlerocket-os/bottlerocket-bootstrap-container","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bottlerocket-os%2Fbottlerocket-bootstrap-container","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bottlerocket-os%2Fbottlerocket-bootstrap-container/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bottlerocket-os%2Fbottlerocket-bootstrap-container/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bottlerocket-os%2Fbottlerocket-bootstrap-container/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/bottlerocket-os","download_url":"https://codeload.github.com/bottlerocket-os/bottlerocket-bootstrap-container/tar.gz/refs/heads/develop","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bottlerocket-os%2Fbottlerocket-bootstrap-container/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28885214,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-29T21:06:44.224Z","status":"ssl_error","status_checked_at":"2026-01-29T21:06:42.160Z","response_time":59,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"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-06T13:33:39.847Z","updated_at":"2026-01-29T21:13:14.029Z","avatar_url":"https://github.com/bottlerocket-os.png","language":"Shell","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Bottlerocket Bootstrap Container\n\nThis is the bootstrap container for the [Bottlerocket](https://github.com/bottlerocket-os/bottlerocket) operating system.\nThis container image allows the user to provide their own script to run bootstrap commands to setup their own configuration during runtime.\n\n## Using the Container Image\n\nFor more information on settings, please refer to the [Bottlerocket Documentation](https://bottlerocket.dev/) in order to configure your files.\nThe automatically updated bootstrap container source will be used by default, if source is not specified in the configuration.\nTo use default container image, create a TOML file with the following configurations.\n\n### Sample TOML configuration\n\n```toml\n[settings.bootstrap-containers.myscript]\nmode=\"once\"\nuser-data=\"user-base64-encoded-bootstrap-script\"\n```\n\nBelow is the configuration to use the custom source.\n\n```toml\n[settings.bootstrap-containers.myscript]\nsource=\"\u003cURI to ECR Repository for this Bootstrap Container\u003e\"\nmode=\"once\"\nuser-data=\"user-base64-encoded-bootstrap-script\"\n```\n\nAfterwards, create the Bottlerocket instance using the TOML file.\nThe settings that you changed within the user's bootstrap script should be seen within the bottlerocket instance.\n\n### Example Walkthrough\n\nThis example assumes that you have access to AWS services and the necessary permissions to create and manage EC2 instances.\n\nGiven a user data similar to the below:\n\n```sh\n#!/usr/bin/env sh\nset -euo pipefail\n\n# Create the directory\nmkdir -p /var/lib/my_directory\n\n# Set API client configurations\napiclient set --json '{\"settings\": {\"oci-defaults\": {\"resource-limits\": {\"max-open-files\": {\"soft-limit\": 4294967296, \"hard-limit\": 8589934592}}}}}'\n\n# Load kernel module\nif command -v modprobe \u003e /dev/null 2\u003e\u00261; then\n  modprobe dummy\nfi\n\necho \"User-data script executed.\"\n```\n\nThe user-data script needs to be base64 encoded. Encode the script in base64.\n\nNext, create a TOML file with the necessary settings to use the bootstrap container.\nReplace \u003cURI to ECR Repository for this Bootstrap Container\u003e with the actual URI of the ECR repository.\n\nFor example, the TOML file should look like the below if you base64 the given user-data:\n\n```toml\n[settings.bootstrap-containers.bear]\nmode = \"once\"\nuser-data = \"IyEvdXNyL2Jpbi9lbnYgc2gKc2V0IC1ldW8gcGlwZWZhaWwKCiMgQ3JlYXRlIHRoZSBkaXJlY3RvcnkKbWtkaXIgLXAgL3Zhci9saWIvbXlfZGlyZWN0b3J5CgojIFNldCBBUEkgY2xpZW50IGNvbmZpZ3VyYXRpb25zCmFwaWNsaWVudCBzZXQgLS1qc29uICd7InNldHRpbmdzIjogeyJvY2ktZGVmYXVsdHMiOiB7InJlc291cmNlLWxpbWl0cyI6IHsibWF4LW9wZW4tZmlsZXMiOiB7InNvZnQtbGltaXQiOiA0Mjk0OTY3Mjk2LCAiaGFyZC1saW1pdCI6IDg1ODk5MzQ1OTJ9fX19fScKCiMgTG9hZCBrZXJuZWwgbW9kdWxlCmlmIGNvbW1hbmQgLXYgbW9kcHJvYmUgPiAvZGV2L251bGwgMj4mMTsgdGhlbgogIG1vZHByb2JlIGR1bW15CmZpCgplY2hvICJVc2VyLWRhdGEgc2NyaXB0IGV4ZWN1dGVkLiIK\"\n```\n\nAfterwards, you can run the Bottlerocket instance using the TOML file and the user-data configurations will be applied.\nOnce the instance is up and running, you can verify that the bootstrap process completed successfully.\n\n#### Checking logs\n\nYou can check the logs of the bootstrap container using the apiclient tool from the admin container.\nTo check the logs of the `bear` container above, you can run the following commmand from the [control container](https://github.com/bottlerocket-os/bottlerocket-control-container) (assuming the [admin container](https://github.com/bottlerocket-os/bottlerocket-admin-container) is enabled):\n\n```bash\napiclient exec admin journalctl -D /.bottlerocket/rootfs/var/log/journal/ -u bootstrap-containers@bear\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbottlerocket-os%2Fbottlerocket-bootstrap-container","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fbottlerocket-os%2Fbottlerocket-bootstrap-container","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbottlerocket-os%2Fbottlerocket-bootstrap-container/lists"}