New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Add infinit. #919
Add infinit. #919
Conversation
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Looks generally OK, just a few notes so far. 👍
infinit/content.md
Outdated
|
||
On UNIX-based systems, Infinit uses `FUSE` to provide mount points. Hence, for UNIX-based containers, you need `FUSE` installed on your host (see Infinit's [get-started page](https://infinit.sh/get-started#installation)) and run Docker in privileged mode (`--privileged`). | ||
|
||
docker run --privileged -e INFINIT_USER=$USER -v ~/.local/share/infinit:/root/.local/share/infinit --rm infinit # volume mount --name <VOLUME> --mountpoint <DIRECTORY> |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
For using FUSE inside a container, I think --privileged
is a bit overkill (since it essentially allows all privileges of the host, instead of the strictly-necessary subset). Can we trim this down to just the subset necessary? I'd imagine something like --cap-add SYS_ADMIN --device /dev/fuse
is probably pretty close to the actual set required.
infinit/content.md
Outdated
|
||
##### Others (object, block, etc.) | ||
|
||
At current version (0,7.3), the single logic exposed is the distributed file system but more logics will be added in the upcoming releases, such as an object storage logic, a block device logic and various interfaces for them. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Minor typo: 0,7.3
vs 0.7.3
infinit/github-repo
Outdated
@@ -0,0 +1 @@ | |||
http://github.com/infinit/infinit-docker |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Can you swap this to use https
please? (it'll redirect, but better to be explicit IMO)
@@ -0,0 +1 @@ | |||
View [license information](https://www.infinit.sh/licenses/infinit.txt) for the software contained in this image. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Waiting for the website to be deployed.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Fixed.
@@ -0,0 +1,67 @@ | |||
Infinit’s storage platform transforms commodity servers into multiple flexible, scalable, secure and fault-tolerant storage logics tailored to your applications. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
You probably want to include an h1
header above this, something like # Infinit
or # What is Infinit?
(similar to other images) or else this block will combine with the block in the template above it. If you run ./update.sh infinit
it should generate infinit/README.md
which you can then use to get an idea for how your generated content is going to flow (just don't commit that generated file -- we've got a bot that'll update it automatically after merge).
Also, that logo.png
that's included here will only show up if %%LOGO%%
is used somewhere here in the body. In other descriptions, we usually put it right after this initial "what is XYZ?" paragraph, but some maintainers prefer to list it either earlier or later -- it's really up to you. 👍
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Requesting a few clarifications.
|
||
### Using your user | ||
|
||
By default, Infinit uses the current user, `root` when running on a container. If you want to use your local user name, you can set the INFINIT_USER environment variable. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This line is a bit confusing. Does infinit use "the current user" or is it "root
" "when running on a container"?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
What does the INFINIT_USER
environment variable do? If I pass in my linux username, it is not going to mean anything inside the container since it does not have my /etc/passwd
to get a user id.
|
||
On UNIX-based systems, Infinit uses `FUSE` to provide mount points. Hence, for UNIX-based containers, you need `FUSE` installed on your host (see Infinit's [get-started page](https://infinit.sh/get-started#installation)) and run Docker with specific options (`--cap-add SYS_ADMIN --device /dev/fuse`). | ||
|
||
docker run --cap-add SYS_ADMIN --device /dev/fuse -e INFINIT_USER=$USER -v ~/.local/share/infinit:/root/.local/share/infinit --rm infinit volume mount --name <VOLUME> --mountpoint <DIRECTORY> |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
It looks like this docker run
would use a share that was already created (--name
) and mount it at --mountpoint
; would this be available only for that container or is the mount point relative to the host mount namespace?
How would someone relate this to using infinit
as a volume plugin: https://infinit.sh/documentation/docker/volume-plugin? I anticipate that this is what most people will want to use the image for, so it would be nice if there was a clear step-by-step process to go from "nothing" to "my swarm has access to share volumes via infinit".
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Maybe it would need to mention where the silos are stored (/var/storage/infinit/
) so that the inifinit plugin container will use the same local directory (-v /path/to/storage/:/var/storage/infinit/
)?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
It looks like this docker run would use a share that was already created (--name) and mount it at --mountpoint; would this be available only for that container or is the mount point relative to the host mount namespace?
The example uses a configuration folder (<blabl>/share/infinit
) shared between the host and the container but the mountpoint will be available only for the container (but actually accessible somewhere hidden on the host like /run/user/0/infinit/filesystem/mnt/<xxx>
). However everybody mounting the same volume elsewhere will have access to the same 'volume' and share data with the container.
[...] "my swarm has access to share volumes via infinit".
About swarm, because some options (privileged
, add-cap
, etc.) available for docker run
are not available for docker service
, this is not possible (yet?) to create fuse mount points in a swarm.
However, I guess I can write something about the infinit deamon
in a container used by other containers.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I guess what I meant was making it a volume plugin on Docker and did not realize that plugins didn't work on swarm... until this next release!
So, it looks like volume plugins will work on swarm:
- PR: Plugins on swarm moby/moby#33575
- merge commit moby/moby@05c7c31
- commit in docker-ce: docker/docker-ce@0887a18
So, 17.07.0-ce-rc1 and above will work for running this as a volume plugin on a swarm. And I think an example or link to getting it to work as a plugin on a single docker would help users immensely.
Thanks!
Great!
I'll give it a try and write a comprehensive plugin integration example.
…On Thu, Aug 10, 2017 at 8:27 PM, yosifkit ***@***.***> wrote:
***@***.**** commented on this pull request.
------------------------------
In infinit/content.md
<#919 (comment)>:
> +
+### Using your user
+
+By default, Infinit uses the current user, `root` when running on a container. If you want to use your local user name, you can set the INFINIT_USER environment variable.
+
+ docker run -e INFINIT_USER=$USER -v ~/.local/share/infinit:/root/.local/share/infinit --rm infinit
+
+### Accessing storage logics
+
+For now, the only logic available is a distributed file system.
+
+#### File system
+
+On UNIX-based systems, Infinit uses `FUSE` to provide mount points. Hence, for UNIX-based containers, you need `FUSE` installed on your host (see Infinit's [get-started page](https://infinit.sh/get-started#installation)) and run Docker with specific options (`--cap-add SYS_ADMIN --device /dev/fuse`).
+
+ docker run --cap-add SYS_ADMIN --device /dev/fuse -e INFINIT_USER=$USER -v ~/.local/share/infinit:/root/.local/share/infinit --rm infinit volume mount --name <VOLUME> --mountpoint <DIRECTORY>
I guess what I meant was making it a volume plugin on Docker and did not
realize that plugins didn't work on swarm... until this next release!
So, it looks like volume plugins will work on swarm:
- PR: moby/moby#33575 <moby/moby#33575>
- merge commit ***@***.***
<moby/moby@05c7c31>
- commit in docker-ce: ***@***.***
<docker/docker-ce@0887a18>
So, 17.07.0-ce-rc1 and above will work for running this as a volume plugin
on a swarm. And I think an example or link to getting it to work as a
plugin on a single docker would help users immensely.
Thanks!
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
<#919 (comment)>,
or mute the thread
<https://github.com/notifications/unsubscribe-auth/ADNCkKebElvk1bUTad5LNHqhs6AdVhmxks5sW0uBgaJpZM4NtA3U>
.
|
Any update on the comments here? 🙏 ❤️ |
Closing since image PR is closed: docker-library/official-images#3005 |
Add infinit documentation to the official images documentation (see docker-library/official-images#3005)