{"id":15155678,"url":"https://github.com/overneath/terraform","last_synced_at":"2025-04-07T12:42:16.769Z","repository":{"id":70781531,"uuid":"199051725","full_name":"overneath/terraform","owner":"overneath","description":"hashicorp/terraform `FROM scratch`","archived":false,"fork":false,"pushed_at":"2019-08-07T17:50:33.000Z","size":4,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-02-13T15:26:10.826Z","etag":null,"topics":["docker-image","dockerfile","hashicorp-terraform","infrastructure-as-code","terraform"],"latest_commit_sha":null,"homepage":"https://terraform.io","language":"Dockerfile","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/overneath.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":"2019-07-26T16:54:06.000Z","updated_at":"2023-09-28T17:22:22.000Z","dependencies_parsed_at":"2023-02-27T01:30:45.427Z","dependency_job_id":null,"html_url":"https://github.com/overneath/terraform","commit_stats":{"total_commits":2,"total_committers":1,"mean_commits":2.0,"dds":0.0,"last_synced_commit":"e805405b53868d92ad97e21254bab4cc482b6a2e"},"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/overneath%2Fterraform","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/overneath%2Fterraform/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/overneath%2Fterraform/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/overneath%2Fterraform/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/overneath","download_url":"https://codeload.github.com/overneath/terraform/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247655159,"owners_count":20974134,"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":["docker-image","dockerfile","hashicorp-terraform","infrastructure-as-code","terraform"],"created_at":"2024-09-26T18:42:07.233Z","updated_at":"2025-04-07T12:42:16.722Z","avatar_url":"https://github.com/overneath.png","language":"Dockerfile","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Nothin' but Terraform\n\n![Hashicorp Terraform][terraform-img]\n\n## But Why Though\n\nI needed a minimal installation of [hashicorp/terraform][terraform-src], downloaded and verified from the [official Terraform downloads][terraform-bin] page. This serves as a simple, containerized installation source.\n\n## Docker\n\nPlease notice that the examples below do not specify image tags which means the Docker client will assume `latest`.\n\n### Container\n\nThe Terraform executable is statically compiled and set as the image entry [`ENTRYPOINT`][dockerfile-entrypoint] with `help` as the default `CMD`:\n\n```bash\n# this container is not shipped with ca-certificates, so let's set those up.\n# (supporting version check, plugin discovery+download, provider api interactions ...)\ndocker container run --rm -it -v ca-certificates:/etc/ssl/certs alpine apk add --no-cache ca-certificates\n# now we can invoke terraform\ndocker container run --rm -it -v ca-certificates:/etc/ssl/certs -v /tmp -v $PWD:$PWD -w $PWD overneath/terraform # [init|plan|apply|destroy|...]\n```\n\n```console\nUsage: terraform [-version] [-help] \u003ccommand\u003e [args]\n\nThe available commands for execution are listed below.\nThe most common, useful commands are shown first, followed by\nless common or more advanced commands. If you're just getting\nstarted with Terraform, stick with the common commands. For the\nother commands, please read the help and docs before usage.\n\nCommon commands:\n    apply              Builds or changes infrastructure\n    console            Interactive console for Terraform interpolations\n    destroy            Destroy Terraform-managed infrastructure\n    env                Workspace management\n    fmt                Rewrites config files to canonical format\n    get                Download and install modules for the configuration\n    graph              Create a visual graph of Terraform resources\n    import             Import existing infrastructure into Terraform\n    init               Initialize a Terraform working directory\n    output             Read an output from a state file\n    plan               Generate and show an execution plan\n    providers          Prints a tree of the providers used in the configuration\n    refresh            Update local state file against real resources\n    show               Inspect Terraform state or plan\n    taint              Manually mark a resource for recreation\n    untaint            Manually unmark a resource as tainted\n    validate           Validates the Terraform files\n    version            Prints the Terraform version\n    workspace          Workspace management\n\nAll other commands:\n    0.12upgrade        Rewrites pre-0.12 module source code for v0.12\n    debug              Debug output management (experimental)\n    force-unlock       Manually unlock the terraform state\n    push               Obsolete command for Terraform Enterprise legacy (v1)\n    state              Advanced state management\n```\n\n```bash\ndocker container run --rm -it -v ca-certificates:/etc/ssl/certs -v /tmp overneath/terraform -version\n```\n\n```console\nTerraform v0.12.5\n```\n\nNote the `-v /tmp` is important because the current default behavior of Terraform is to `exec` itself to capture logs.\nRunning vanilla Terraform in a container lacking a `/tmp` directory will error, e.g.:\n\n```bash\ndocker container run --rm -it -v ca-certificates:/etc/ssl/certs overneath/terraform -version\n```\n\n```console\nCouldn't setup logging tempfile: open /tmp/terraform-log076603776: no such file or directory\n```\n\n### Dockerfile\n\nTo install into an image via `Dockerfile`:\n\n```dockerfile\nCOPY --from=overneath/terraform /opt/local/ /usr/local/\n```\n\n### Volume\n\nTo install into a container via `docker volume` leveraging (the default) [`nocopy=false`][docker-volume] behavior:\n\n```bash\n# this only works if the volume `terraform-files` does not already exist or it is empty\ndocker container run --rm --mount source=terraform-files,destination=/opt/local,volume-nocopy=false overneath/terraform\ndocker container run --rm -it --volume terraform-files:/usr/local alpine terraform help\n```\n\n---\n\n[terraform-img]: https://avatars1.githubusercontent.com/u/28900900?s=192 \"Hashicorp Terraform\"\n[terraform-bin]: https://www.terraform.io/downloads.html \"Terraform Downloads\"\n[terraform-src]: https://github.com/hashicorp/terraform \"Terraform on Github\"\n[docker-volume]: https://docs.docker.com/engine/reference/run/#volume-shared-filesystems \"Docker Volume (shared filesystems)\"\n[dockerfile-entrypoint]: https://docs.docker.com/engine/reference/builder/#entrypoint \"Dockerfile ENTRYPOINT\"\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Foverneath%2Fterraform","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Foverneath%2Fterraform","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Foverneath%2Fterraform/lists"}