{"id":16182425,"url":"https://github.com/monder/goofys-docker","last_synced_at":"2025-03-19T02:30:39.046Z","repository":{"id":57607041,"uuid":"59001512","full_name":"monder/goofys-docker","owner":"monder","description":"S3 volume for docker based on goofys","archived":false,"fork":false,"pushed_at":"2016-06-29T06:41:13.000Z","size":10,"stargazers_count":20,"open_issues_count":2,"forks_count":9,"subscribers_count":3,"default_branch":"master","last_synced_at":"2025-02-28T14:06:39.259Z","etag":null,"topics":["aws","docker","s3","volume","volume-plugin"],"latest_commit_sha":null,"homepage":null,"language":"Go","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/monder.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}},"created_at":"2016-05-17T07:48:04.000Z","updated_at":"2024-04-04T01:21:24.000Z","dependencies_parsed_at":"2022-08-30T05:21:35.152Z","dependency_job_id":null,"html_url":"https://github.com/monder/goofys-docker","commit_stats":null,"previous_names":[],"tags_count":1,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/monder%2Fgoofys-docker","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/monder%2Fgoofys-docker/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/monder%2Fgoofys-docker/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/monder%2Fgoofys-docker/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/monder","download_url":"https://codeload.github.com/monder/goofys-docker/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":243960436,"owners_count":20375101,"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":["aws","docker","s3","volume","volume-plugin"],"created_at":"2024-10-10T06:31:37.926Z","updated_at":"2025-03-19T02:30:38.787Z","avatar_url":"https://github.com/monder.png","language":"Go","funding_links":[],"categories":[],"sub_categories":[],"readme":"[![license](https://img.shields.io/github/license/monder/goofys-docker.svg?maxAge=2592000\u0026style=flat-square)]()\n[![GitHub tag](https://img.shields.io/github/tag/monder/goofys-docker.svg?style=flat-square)]()\n\ngoofys-docker is a docker [volume plugin] wrapper for S3\n\n## Overview\n\nThe inital idea behind mounting s3 buckets as docker volumes is to provide store for configs and secrets. The volume as per [goofys] does not have features like randow-write support, unix permissions, caching.\n\n## Getting started\n\n### Requirements\n\nThe docker host should have [FUSE] support with `fusermount` cli utility in `$PATH`\n\n### Building\n\nThere are prebuilt binaries availble [here][download]. If you need to build it yourself there is a helper file `build.sh` that will run a container that builds the application using go 1.5. Version 1.5 is used to workaround https://github.com/docker/docker/issues/20865\n\n### Configuration\n\nCurrently there is no support for configuration options, but the defaults are reasonable for most of the cases.\nThe most simple way to configure aws credentials is to use [IAM roles] to access the bucket for the machine, [aws configuration file][AWS auth] or [ENV variables][AWS auth]. The credentials will be used for all buckets mounted by `goofys-docker`.\n\n### Running\n\n```\n./goofys-docker\n```\nThe socket `/run/docker/plugins/goofys.sock` will be created to interact with docker. Ownership of the file is `root:wheel`\n\n### Using with docker\n\nCreate a new volume by issueing a docker volume command:\n```\ndocker volume create --name=test-docker-goofys --driver=goofys\n```\nThat will create a volume connected to `test-docker-goofys` bucket. The region of the bucket will be autodetected.\n\nNothing is mounted yet.\n\nLaunch the container with `test-docker-goofys` volume mounted in `/home` inside the container\n```\ndocker run -v test-docker-goofys:/home:ro -it busybox sh\n/ # cat /home/test\ntest file content\n/ # ^D\n```\n\nIt is also possible to mount a subfolder:\n```\ndocker volume create --name=test-docker-goofys/folder --driver=goofys\ndocker run docker run -v test-docker-goofys/folder:/home:ro -it busybox sh\n/ # cat /home/test\ntest file content from folder\n/ # ^D\n```\n\nIf multiple folders are mounted for the single bucket on the same machine, only 1 fuse mount will be created. The mount will be shared by docker containers. It will be unmouned when there be no containers to use it.\n\n## License\nMIT\n\n[goofys]: https://github.com/kahing/goofys\n[volume plugin]: https://docs.docker.com/engine/extend/plugins_volume/\n[FUSE]: https://github.com/libfuse/libfuse\n[download]: https://github.com/monder/goofys-docker/releases\n[AWS auth]: http://docs.aws.amazon.com/sdk-for-go/api/#Configuring_Credentials\n[IAM roles]: http://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_use_switch-role-ec2.html\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmonder%2Fgoofys-docker","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmonder%2Fgoofys-docker","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmonder%2Fgoofys-docker/lists"}