{"id":17981063,"url":"https://github.com/nvidia/docker-swift","last_synced_at":"2025-07-19T05:06:17.377Z","repository":{"id":53538114,"uuid":"13476887","full_name":"NVIDIA/docker-swift","owner":"NVIDIA","description":"Docker image for Swift all-in-one demo deployment","archived":false,"fork":false,"pushed_at":"2023-09-12T19:37:31.000Z","size":72,"stargazers_count":84,"open_issues_count":9,"forks_count":39,"subscribers_count":44,"default_branch":"master","last_synced_at":"2025-07-18T12:53:07.370Z","etag":null,"topics":["docker-image","swift"],"latest_commit_sha":null,"homepage":"https://hub.docker.com/r/dockerswiftaio/docker-swift/","language":"Shell","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/NVIDIA.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":"2013-10-10T16:38:16.000Z","updated_at":"2025-04-18T17:34:31.000Z","dependencies_parsed_at":"2024-10-29T18:47:39.326Z","dependency_job_id":null,"html_url":"https://github.com/NVIDIA/docker-swift","commit_stats":null,"previous_names":[],"tags_count":10,"template":false,"template_full_name":null,"purl":"pkg:github/NVIDIA/docker-swift","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/NVIDIA%2Fdocker-swift","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/NVIDIA%2Fdocker-swift/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/NVIDIA%2Fdocker-swift/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/NVIDIA%2Fdocker-swift/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/NVIDIA","download_url":"https://codeload.github.com/NVIDIA/docker-swift/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/NVIDIA%2Fdocker-swift/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":265891973,"owners_count":23844941,"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","swift"],"created_at":"2024-10-29T18:07:35.199Z","updated_at":"2025-07-19T05:06:17.327Z","avatar_url":"https://github.com/NVIDIA.png","language":"Shell","funding_links":[],"categories":[],"sub_categories":[],"readme":"docker-swift\n============\n\n[![Docker Pulls](https://img.shields.io/docker/pulls/dockerswiftaio/docker-swift.svg)](https://hub.docker.com/r/dockerswiftaio/docker-swift/)\n\nDocker image for Swift all-in-one demo deployment\n\nThis is an attempt to dockerize the instructions for a [Swift All-in-one deployment](https://docs.openstack.org/swift/latest/development_saio.html).\n\n[Source code is available here](https://github.com/NVIDIA/docker-swift)\n\nSwift requires xattr to be enabled. With the overlay2 storage driver, Docker\nsupports extended attributes. However, if you're using the older AUFS storage\ndriver, it isn't possible for Swift to use storage within the Docker image.\nThe workaround for this is to mount a volume from a filesystem where xattr is\nenabled (e.g. ext4 or xfs).\n\nIf you'd like the data to be persistent, you should also store it in an external\nvolume.\n\nYou can pull the images from the DockerHub registry:\n```\ndocker pull dockerswiftaio/docker-swift:latest\n```\n\nIf you need a specific version of Swift, or would like to pin to a specific\nversion (recommended), you can pull the specific version like this:\n```\ndocker pull dockerswiftaio/docker-swift:2.24.0\n```\n\n## This works:\n\nThis uses Docker's storage:\n```\ndocker pull dockerswiftaio/docker-swift\ndocker run -P -t dockerswiftaio/docker-swift\ncurl -v -H 'X-Storage-User: test:tester' -H 'X-Storage-Pass: testing' http://127.0.0.1:\u003cport\u003e/auth/v1.0\ncurl -v -H 'X-Auth-Token: \u003ctoken-from-x-auth-token-above\u003e' \u003curl-from-x-storage-url-above\u003e\nswift -A http://127.0.0.1:\u003cport\u003e/auth/v1.0 -U test:tester -K testing stat\n```\n\nTo persist data, you can replace the `docker run` command with the following:\n```\ndocker run -P -v /path/to/data:/swift/nodes/1/node/sdb1 -t dockerswiftaio/docker-swift\n```\n\nIf you'd like to replace Swift configuration files, you can also bind mount\nthem. For example:\n```\ndocker run -P -v /path/to/proxy-server.conf:/etc/swift/proxy-server.conf -t dockerswiftaio/docker-swift\n```\n\nDiscover the port by running `docker ps`, which will give output like this:\n\n```\nCONTAINER ID   IMAGE                                COMMAND                  CREATED         STATUS         PORTS                     NAMES\n8f892e66b517   dockerswiftaio/docker-swift:2.24.0   \"/bin/bash /swift/bi…\"   7 seconds ago   Up 6 seconds   0.0.0.0:49177-\u003e8080/tcp   magical_bhaskara\n```\n\nYou want the port that is mapped to port 8080 within the Docker image, in this case 49176.\n\nGet an authorization token like this:\n\n```\ncurl -v -H 'X-Storage-User: test:tester' -H 'X-Storage-Pass: testing' http://127.0.0.1:\u003cport\u003e/auth/v1.0\n```\n\nResult:\n\n```\n* About to connect() to 127.0.0.1 port 8080 (#0)\n*   Trying 127.0.0.1... connected\n\u003e GET /auth/v1.0 HTTP/1.1\n\u003e User-Agent: curl/7.22.0 (x86_64-pc-linux-gnu) libcurl/7.22.0 OpenSSL/1.0.1 zlib/1.2.3.4 libidn/1.23 librtmp/2.3\n\u003e Host: 127.0.0.1:8080\n\u003e Accept: */*\n\u003e X-Storage-User: test:tester\n\u003e X-Storage-Pass: testing\n\u003e\n\u003c HTTP/1.1 200 OK\n\u003c X-Storage-Url: http://127.0.0.1:8080/v1/AUTH_test\n\u003c X-Auth-Token: AUTH_tk246b80e9b72a42e68a76e0ff2aaaf051\n\u003c Content-Type: text/html; charset=UTF-8\n\u003c X-Storage-Token: AUTH_tk246b80e9b72a42e68a76e0ff2aaaf051\n\u003c Content-Length: 0\n\u003c Date: Mon, 28 Oct 2013 22:48:51 GMT\n\u003c\n* Connection #0 to host 127.0.0.1 left intact\n* Closing connection #0\n```\n\nTo run the demo.sh script, store the X-Storage-Url and X-Auth-Token values in environment variables:\n\n```\nexport URL=http://127.0.0.1:8080/v1/AUTH_test\nexport TOKEN=AUTH_tk246b80e9b72a42e68a76e0ff2aaaf051\n```\n\nYou can then run demo.sh, which will execute a series of curl commands to create\na container, list various information, put itself into Swift as object\n\"testcontainer/testobject\", and retrieve itself again as \"retrieved_demo.sh\".\n\n## Notes\n\nUses [supervisord](http://supervisord.org/) to keep the image running. To get a shell on the container, you can use:\n\n```\ndocker exec -it \u003ccontainer name\u003e /bin/bash\n```\n\nTail /var/log/syslog to see what it's doing.\n\n## Notes on changes from Swift-AIO instructions\n\n- user and group ids are swift:swift\n- the instructions provide for using a separate partition or a loopback for\n  storage, presumably to allow the storage capacity to be strictly limited.\n  Neither of these was easy for a Docker n00b to implement, so I've just used\n  /swift, with symbolic links in /srv. The storage can be limited at the OS\n  level in the Docker image if it's a concern.\n- the Github sources are cloned to /usr/local/src\n\n## License\n\nCopyright (C) 2015 NVIDIA CORPORATION\n\nCopyright (C) 2015-2019 Bounce Storage\n\nCopyright (C) 2013-2015 Peter Binkley @pbinkley\n\nLicensed under the GNU General Public License, Version 2.0\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnvidia%2Fdocker-swift","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fnvidia%2Fdocker-swift","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnvidia%2Fdocker-swift/lists"}